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:
CVSweb interface <joel.bertrand@systella.fr>