## MB01SS

### Symmetric scaling of a symmetric matrix

[Specification] [Arguments] [Method] [References] [Comments] [Example]

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

      None

Example

Program Text

      None

Program Data

      None

Program Results

      None

Return to Supporting Routines index