1 SUBROUTINE ZLASCL2 ( 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( * )
18 COMPLEX*16 X( LDX, * )
19 * ..
20 *
21 * Purpose
22 * =======
23 *
24 * ZLASCL2 performs a diagonal scaling on a vector:
25 * x <-- D * x
26 * where the DOUBLE PRECISION diagonal matrix D is stored as a vector.
27 *
28 * Eventually to be replaced by BLAS_zge_diag_scale in the new BLAS
29 * standard.
30 *
31 * Arguments
32 * =========
33 *
34 * M (input) INTEGER
35 * The number of rows of D and X. M >= 0.
36 *
37 * N (input) INTEGER
38 * The number of columns of D and X. N >= 0.
39 *
40 * D (input) DOUBLE PRECISION array, length M
41 * Diagonal matrix D, stored as a vector of length M.
42 *
43 * X (input/output) COMPLEX*16 array, dimension (LDX,N)
44 * On entry, the vector X to be scaled by D.
45 * On exit, the scaled vector.
46 *
47 * LDX (input) INTEGER
48 * The leading dimension of the vector X. LDX >= 0.
49 *
50 * =====================================================================
51 *
52 * .. Local Scalars ..
53 INTEGER I, J
54 * ..
55 * .. Executable Statements ..
56 *
57 DO J = 1, N
58 DO I = 1, M
59 X( I, J ) = X( I, J ) * D( I )
60 END DO
61 END DO
62
63 RETURN
64 END
65
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( * )
18 COMPLEX*16 X( LDX, * )
19 * ..
20 *
21 * Purpose
22 * =======
23 *
24 * ZLASCL2 performs a diagonal scaling on a vector:
25 * x <-- D * x
26 * where the DOUBLE PRECISION diagonal matrix D is stored as a vector.
27 *
28 * Eventually to be replaced by BLAS_zge_diag_scale in the new BLAS
29 * standard.
30 *
31 * Arguments
32 * =========
33 *
34 * M (input) INTEGER
35 * The number of rows of D and X. M >= 0.
36 *
37 * N (input) INTEGER
38 * The number of columns of D and X. N >= 0.
39 *
40 * D (input) DOUBLE PRECISION array, length M
41 * Diagonal matrix D, stored as a vector of length M.
42 *
43 * X (input/output) COMPLEX*16 array, dimension (LDX,N)
44 * On entry, the vector X to be scaled by D.
45 * On exit, the scaled vector.
46 *
47 * LDX (input) INTEGER
48 * The leading dimension of the vector X. LDX >= 0.
49 *
50 * =====================================================================
51 *
52 * .. Local Scalars ..
53 INTEGER I, J
54 * ..
55 * .. Executable Statements ..
56 *
57 DO J = 1, N
58 DO I = 1, M
59 X( I, J ) = X( I, J ) * D( I )
60 END DO
61 END DO
62
63 RETURN
64 END
65