Purpose
To scale a symmetric N-by-N matrix A using the row and column scaling factors stored in the vector D.Specification
SUBROUTINE MB01SS( JOBS, UPLO, N, A, LDA, D )
C .. Scalar Arguments ..
CHARACTER JOBS, UPLO
INTEGER LDA, N
C .. Array Arguments ..
DOUBLE PRECISION A(LDA,*), D(*)
Arguments
Mode Parameters
JOBS CHARACTER*1
Specifies the scaling operation to be done, as follows:
= 'D': row and column scaling with D, i.e., A will be
transformed to diag(D)*A*diag(D);
= 'I': row and column scaling with inv(D), i.e., A will
be transformed to inv(diag(D))*A*inv(diag(D)).
UPLO CHARACTER*1
Specifies which triangle of the matrix A is stored, as
follows:
= 'U': Upper triangle is stored;
= 'L': Lower triangle is stored.
Input/Output Parameters
N (input) INTEGER
The order of the matrix A. N >= 0.
A (input/output) DOUBLE PRECISION array, dimension (LDA,N)
On entry, the leading N-by-N upper triangular part
(if UPLO = 'U') or lower triangular part (if UPLO = 'L')
of this array must contain the upper triangular part or
lower triangular part, respectively, of the symmetric
matrix A.
On exit, the leading N-by-N upper triangular part
(if UPLO = 'U') or lower triangular part (if UPLO = 'L')
of this array contains the corresponding triangular part
of the matrix diag(D)*A*diag(D), if JOBS = 'D', or of the
matrix inv(diag(D))*A*inv(diag(D)), JOBS = 'I'.
The stricly lower triangular part (if UPLO = 'U') or
stricly upper triangular part (if UPLO = 'L') is not
referenced.
LDA INTEGER
The leading dimension of the array A. LDA >= max(1,M).
D (input) DOUBLE PRECISION array, dimension (N)
The diagonal elements of the diagonal matrix D.
Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None