# p?lauu2

Computes the product `U*U'` or `L'*L`, where U and L are upper or lower triangular matrices (local unblocked algorithm).

## Syntax

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

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

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

call pzlauu2(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 distributed 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 unblocked form of the algorithm, calling BLAS Level 2 Routines. No communication is performed by this routine, the matrix to operate on should be strictly local to one process.

## 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 pslauu2

  DOUBLE PRECISION for pdlauu2

  COMPLEX for pclauu2

  COMPLEX*16 for pzlauu2.

  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