# p?lauu2

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

## Syntax

FORTRAN:

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)

C:

void pslauu2 (char *uplo , MKL_INT *n , float *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca );

void pdlauu2 (char *uplo , MKL_INT *n , double *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca );

void pclauu2 (char *uplo , MKL_INT *n , MKL_Complex8 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca );

void pzlauu2 (char *uplo , MKL_INT *n , MKL_Complex16 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca );

## Include Files

• C: mkl_scalapack.h

## Description

The p?lauu2 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 size`(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 size (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.

For more complete information about compiler optimizations, see our Optimization Notice.