1 SUBROUTINE DLASCL2 ( M, N, D, X, LDX )
2 *
3 * -- LAPACK routine (version 3.2.1) --
4 * -- Contributed by James Demmel, Deaglan Halligan, Yozo Hida and --
5 * -- Jason Riedy of Univ. of California Berkeley. --
6 * -- April 2009 --
7 *
8 * -- LAPACK is a software package provided by Univ. of Tennessee, --
9 * -- Univ. of California Berkeley and NAG Ltd. --
10 *
11 IMPLICIT NONE
12 * ..
13 * .. Scalar Arguments ..
14 INTEGER M, N, LDX
15 * ..
16 * .. Array Arguments ..
17 DOUBLE PRECISION D( * ), X( LDX, * )
18 * ..
19 *
20 * Purpose
21 * =======
22 *
23 * DLASCL2 performs a diagonal scaling on a vector:
24 * x <-- D * x
25 * where the diagonal matrix D is stored as a vector.
26 *
27 * Eventually to be replaced by BLAS_dge_diag_scale in the new BLAS
28 * standard.
29 *
30 * Arguments
31 * =========
32 *
33 * M (input) INTEGER
34 * The number of rows of D and X. M >= 0.
35 *
36 * N (input) INTEGER
37 * The number of columns of D and X. N >= 0.
38 *
39 * D (input) DOUBLE PRECISION array, length M
40 * Diagonal matrix D, stored as a vector of length M.
41 *
42 * X (input/output) DOUBLE PRECISION array, dimension (LDX,N)
43 * On entry, the vector X to be scaled by D.
44 * On exit, the scaled vector.
45 *
46 * LDX (input) INTEGER
47 * The leading dimension of the vector X. LDX >= 0.
48 *
49 * =====================================================================
50 *
51 * .. Local Scalars ..
52 INTEGER I, J
53 * ..
54 * .. Executable Statements ..
55 *
56 DO J = 1, N
57 DO I = 1, M
58 X( I, J ) = X( I, J ) * D( I )
59 END DO
60 END DO
61
62 RETURN
63 END
2 *
3 * -- LAPACK routine (version 3.2.1) --
4 * -- Contributed by James Demmel, Deaglan Halligan, Yozo Hida and --
5 * -- Jason Riedy of Univ. of California Berkeley. --
6 * -- April 2009 --
7 *
8 * -- LAPACK is a software package provided by Univ. of Tennessee, --
9 * -- Univ. of California Berkeley and NAG Ltd. --
10 *
11 IMPLICIT NONE
12 * ..
13 * .. Scalar Arguments ..
14 INTEGER M, N, LDX
15 * ..
16 * .. Array Arguments ..
17 DOUBLE PRECISION D( * ), X( LDX, * )
18 * ..
19 *
20 * Purpose
21 * =======
22 *
23 * DLASCL2 performs a diagonal scaling on a vector:
24 * x <-- D * x
25 * where the diagonal matrix D is stored as a vector.
26 *
27 * Eventually to be replaced by BLAS_dge_diag_scale in the new BLAS
28 * standard.
29 *
30 * Arguments
31 * =========
32 *
33 * M (input) INTEGER
34 * The number of rows of D and X. M >= 0.
35 *
36 * N (input) INTEGER
37 * The number of columns of D and X. N >= 0.
38 *
39 * D (input) DOUBLE PRECISION array, length M
40 * Diagonal matrix D, stored as a vector of length M.
41 *
42 * X (input/output) DOUBLE PRECISION array, dimension (LDX,N)
43 * On entry, the vector X to be scaled by D.
44 * On exit, the scaled vector.
45 *
46 * LDX (input) INTEGER
47 * The leading dimension of the vector X. LDX >= 0.
48 *
49 * =====================================================================
50 *
51 * .. Local Scalars ..
52 INTEGER I, J
53 * ..
54 * .. Executable Statements ..
55 *
56 DO J = 1, N
57 DO I = 1, M
58 X( I, J ) = X( I, J ) * D( I )
59 END DO
60 END DO
61
62 RETURN
63 END