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

## Syntax

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

• mkl_scalapack.h

## Description

The p?lauu2function 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 function, the matrix to operate on should be strictly local to one process.

## Input Parameters

uplo

(global)

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

= U: upper triangular

= L: lower triangular.

n

(global)

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)

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)

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

ja

(global)

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

desca

(global and local) 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.