Purpose
To compute the matrix product U' * U or L * L', where U and L are upper and lower triangular matrices, respectively, stored in the corresponding upper or lower triangular part of the array A. If UPLO = 'U' then the upper triangle of the result is stored, overwriting the matrix U in A. If UPLO = 'L' then the lower triangle of the result is stored, overwriting the matrix L in A.Specification
      SUBROUTINE MB01XD( UPLO, N, A, LDA, INFO )
C     .. Scalar Arguments ..
      CHARACTER          UPLO
      INTEGER            INFO, LDA, N
C     .. Array Arguments ..
      DOUBLE PRECISION   A( LDA, * )
Arguments
Mode Parameters
  UPLO    CHARACTER*1
          Specifies which triangle (U or L) is given in the array A,
          as follows:
          = 'U':  the upper triangular part U is given;
          = 'L':  the lower triangular part L is given.
Input/Output Parameters
  N       (input) INTEGER
          The order of the triangular matrices U or L.  N >= 0.
  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
          On entry, if UPLO = 'U', the leading N-by-N upper
          triangular part of this array must contain the upper
          triangular matrix U.
          On entry, if UPLO = 'L', the leading N-by-N lower
          triangular part of this array must contain the lower
          triangular matrix L.
          On exit, if UPLO = 'U', the leading N-by-N upper
          triangular part of this array contains the upper
          triangular part of the product U' * U. The strictly lower
          triangular part is not referenced.
          On exit, if UPLO = 'L', the leading N-by-N lower
          triangular part of this array contains the lower
          triangular part of the product L * L'. The strictly upper
          triangular part is not referenced.
  LDA     INTEGER
          The leading dimension of array A.  LDA >= max(1,N).
Error Indicator
  INFO    INTEGER
          = 0:  successful exit;
          < 0:  if INFO = -i, the i-th argument had an illegal
                value.
Method
The matrix product U' * U or L * L' is computed using BLAS 3 operations as much as possible (a block algorithm).Further Comments
This routine is a counterpart of LAPACK Library routine DLAUUM, which computes the matrix product U * U' or L' * L.Example
Program Text
NoneProgram Data
NoneProgram Results
None
Click here to get a compressed (gzip) tar file containing the source code of the routine, the example program, data, documentation, and related files.
Return to index