# p?lauum

Computes the product `U*U'` or `L'*L`, where U and L are upper or lower triangular matrices.

## Syntax

call pslauum(uplo, n, a, ia, ja, desca)

call pdlauum(uplo, n, a, ia, ja, desca)

call pclauum(uplo, n, a, ia, ja, desca)

call pzlauum(uplo, n, a, ia, ja, desca)

## Description

This routine computes the product U*U' or L'*L, where the triangular factor U or L is stored in the upper or lower triangular part of the matrix sub`(A)= A(ia:ia+n-1, ja:ja+n-1)`.

If uplo = 'U' or 'u', then the upper triangle of the result is stored, overwriting the factor U in sub(A). If uplo = 'L' or 'l', then the lower triangle of the result is stored, overwriting the factor L in sub(A).

This is the blocked form of the algorithm, calling Level 3 PBLAS.

## Input Parameters

uplo

  (global) CHARACTER*1.

  Specifies whether the triangular factor stored in the matrix sub(A) is upper or lower triangular:

  = 'U': upper triangular

  = 'L': lower triangular.

n

  (global) INTEGER.

  The number of rows and columns to be operated on, that is, the order of the triangular factor U or L. `n ≥ 0`.

a

  (local)

  REAL for pslauum

  DOUBLE PRECISION for pdlauum

  COMPLEX for pclauum

  COMPLEX*16 for pzlauum.

  Pointer into the local memory to an array of DIMENSION`(lld_a, LOCc(ja+n-1)`. On entry, the local pieces of the triangular factor U or L.

ia

  (global) INTEGER.

  The row index in the global array A indicating the first row of sub(A).

ja

  (global) INTEGER.

  The column index in the global array A indicating the first column of sub(A).

desca

  (global and local) INTEGER array of DIMENSION (dlen_). The array descriptor for the distributed matrix A.

## Output Parameters

a

  (local)

  On exit, if `uplo = 'U'`, the upper triangle of the distributed matrix sub(A) is overwritten with the upper triangle of the product U*U' ; if `uplo = 'L'`, the lower triangle of sub(A) is overwritten with the lower triangle of the product `L'*L`.

Parent topic: Auxiliary Routines