Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 3/22/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?pttrsv

Solves a symmetric (Hermitian) positive-definite tridiagonal system of linear equations, using the L*D*LH factorization computed by ?pttrf.

Syntax

void spttrsv (char *trans , MKL_INT *n , MKL_INT *nrhs , float *d , float *e , float *b , MKL_INT *ldb , MKL_INT *info );

void dpttrsv (char *trans , MKL_INT *n , MKL_INT *nrhs , double *d , double *e , double *b , MKL_INT *ldb , MKL_INT *info );

void cpttrsv (char *uplo , char *trans , MKL_INT *n , MKL_INT *nrhs , float *d , MKL_Complex8 *e , MKL_Complex8 *b , MKL_INT *ldb , MKL_INT *info );

void zpttrsv (char *uplo , char *trans , MKL_INT *n , MKL_INT *nrhs , double *d , MKL_Complex16 *e , MKL_Complex16 *b , MKL_INT *ldb , MKL_INT *info );

Include Files

  • mkl_scalapack.h

Description

The ?pttrsvfunction solves one of the triangular systems:

LT*X = B, or L*X = B for real flavors,

or

L*X = B, or LH*X = B,

U*X = B, or UH*X = B for complex flavors,

where L (or U for complex flavors) is the Cholesky factor of a Hermitian positive-definite tridiagonal matrix A such that

A = L*D*LH (computed by spttrf/dpttrf)

or

A = UH*D*U or A = L*D*LH (computed by cpttrf/zpttrf).

Input Parameters

uplo

Must be 'U' or 'L'.

Specifies whether the superdiagonal or the subdiagonal of the tridiagonal matrix A is stored and the form of the factorization:

If uplo = 'U', e is the superdiagonal of U, and A = UH*D*U or A = L*D*LH;

if uplo = 'L', e is the subdiagonal of L, and A = L*D*LH.

The two forms are equivalent, if A is real.

trans

Specifies the form of the system of equations:

for real flavors:

if trans = 'N': L*X = B (no transpose)

if trans = 'T': LT*X = B (transpose)

for complex flavors:

if trans = 'N': U*X = B or L*X = B (no transpose)

if trans = 'C': UH*X = B or LH*X = B (conjugate transpose).

n

The order of the tridiagonal matrix A. n 0.

nrhs

The number of right hand sides, that is, the number of columns of the matrix B. nrhs 0.

d

array of size n. The n diagonal elements of the diagonal matrix D from the factorization computed by ?pttrf.

e

array of size (n-1). The (n-1) off-diagonal elements of the unit bidiagonal factor U or L from the factorization computed by ?pttrf. See uplo.

b

array of size ldb* nrhs.

On entry, the right hand side matrix B.

ldb

The leading dimension of the array b.

ldb max(1, n).

Output Parameters

b

On exit, the solution matrix X.

info

= 0: successful exit

< 0: if info = -i, the i-th argument had an illegal value.

See Also