Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 10/31/2024
Public
Document Table of Contents

p?trtri

Computes the inverse of a triangular distributed matrix.

Syntax

void pstrtri (char *uplo , char *diag , MKL_INT *n , float *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , MKL_INT *info );

void pdtrtri (char *uplo , char *diag , MKL_INT *n , double *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , MKL_INT *info );

void pctrtri (char *uplo , char *diag , MKL_INT *n , MKL_Complex8 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , MKL_INT *info );

void pztrtri (char *uplo , char *diag , MKL_INT *n , MKL_Complex16 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , MKL_INT *info );

Include Files

  • mkl_scalapack.h

Description

The p?trtrifunction computes the inverse of a real or complex upper or lower triangular distributed matrix sub(A) = A(ia:ia+n-1, ja:ja+n-1).

Input Parameters

uplo

(global) Must be 'U' or 'L'.

Specifies whether the distributed matrix sub(A) is upper or lower triangular.

If uplo = 'U', sub(A) is upper triangular.

If uplo = 'L', sub(A) is lower triangular.

diag

Must be 'N' or 'U'.

Specifies whether or not the distributed matrix sub(A) is unit triangular.

If diag = 'N', then sub(A) is non-unit triangular.

If diag = 'U', then sub(A) is unit triangular.

n

(global) The number of rows and columns to be operated on, that is, the order of the distributed matrix sub(A) (n0).

a

(local)

Pointer into the local memory to an array of local size lld_a*LOCc(ja+n-1).

The array a contains the local pieces of the triangular distributed matrix sub(A).

If uplo = 'U', the leading n-by-n upper triangular part of sub(A) contains the upper triangular matrix to be inverted, and the strictly lower triangular part of sub(A) is not referenced.

If uplo = 'L', the leading n-by-n lower triangular part of sub(A) contains the lower triangular matrix, and the strictly upper triangular part of sub(A) is not referenced.

ia, ja

(global) The row and column indices in the global matrix A indicating the first row and the first column of the matrix sub(A), respectively.

desca

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

Output Parameters

a

On exit, overwritten by the (triangular) inverse of the original matrix.

info

(global) If info=0, the execution is successful.

info < 0:

If the i-th argument is an array and the j-th entry, indexed j - 1, had an illegal value, then info = -(i*100+j); if the i-th argument is a scalar and had an illegal value, then info = -i.

info> 0:

If info = k, the matrix element A(ia+k-1, ja+k-1) is exactly zero. The triangular matrix sub(A) is singular and its inverse cannot be computed.

See Also