Developer Reference for Intel® oneAPI Math Kernel Library for C

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

p?potrs

Solves a system of linear equations with a Cholesky-factored symmetric/Hermitian distributed positive-definite matrix.

Syntax

void pspotrs (char *uplo , MKL_INT *n , MKL_INT *nrhs , float *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , float *b , MKL_INT *ib , MKL_INT *jb , MKL_INT *descb , MKL_INT *info );

void pdpotrs (char *uplo , MKL_INT *n , MKL_INT *nrhs , double *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , double *b , MKL_INT *ib , MKL_INT *jb , MKL_INT *descb , MKL_INT *info );

void pcpotrs (char *uplo , MKL_INT *n , MKL_INT *nrhs , MKL_Complex8 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , MKL_Complex8 *b , MKL_INT *ib , MKL_INT *jb , MKL_INT *descb , MKL_INT *info );

void pzpotrs (char *uplo , MKL_INT *n , MKL_INT *nrhs , MKL_Complex16 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , MKL_Complex16 *b , MKL_INT *ib , MKL_INT *jb , MKL_INT *descb , MKL_INT *info );

Include Files

  • mkl_scalapack.h

Description

The p?potrsfunction solves for X a system of distributed linear equations in the form:

sub(A)*X = sub(B) ,

where sub(A) = A(ia:ia+n-1, ja:ja+n-1) is an n-by-n real symmetric or complex Hermitian positive definite distributed matrix, and sub(B) denotes the distributed matrix B(ib:ib+n-1, jb:jb+nrhs-1).

This function uses Cholesky factorization

sub(A) = UH*U, or sub(A) = L*LH

computed by p?potrf.

Input Parameters

uplo

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

If uplo = 'U', upper triangle of sub(A) is stored;

If uplo = 'L', lower triangle of sub(A) is stored.

n

(global) The order of the distributed matrix sub(A) (n0).

nrhs

(global) The number of right hand sides; the number of columns of the distributed matrix sub(B) (nrhs0).

a, b

(local)

Pointers into the local memory to arrays of local sizes

lld_a*LOCc(ja+n-1) and lld_b*LOCc(jb+nrhs-1), respectively.

The array a contains the factors L or U from the Cholesky factorization sub(A) = L*LH or sub(A) = UH*U, as computed by p?potrf.

On entry, the array b contains the local pieces of the right hand sides sub(B).

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.

ib, jb

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

descb

(local) array of size dlen_. The array descriptor for the distributed matrix B.

Output Parameters

b

Overwritten by the local pieces of the solution matrix X.

info

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.

See Also