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