###
Computing U' U or L L', with U and L upper and lower triangular matrices (block algorithm)

**[Specification]**
**[Arguments]**
**[Method]**
**[References]**
**[Comments]**
**[Example]**
**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**

None

**Program Data**
None

**Program Results**
None

**Return to index**