Developer Reference for Intel® oneAPI Math Kernel Library for C
?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
spttrsv dpttrsv cpttrsv zpttrsv The ?pttrsv routine function solves one of the triangular systems:
L^{T}*X = B , or L*X = B for real flavors,
or
L*X = B , or L^{H}*X = B ,
U*X = B , or U^{H}*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*L^{H} (computed by spttrf/dpttrf (Computes the factorization of a symmetric (Hermitian) positive-definite tridiagonal matrix.) )
or
A = U^{H}*D*U or A = L*D*L^{H} (computed by cpttrf/zpttrf (Computes the factorization of a symmetric (Hermitian) positive-definite tridiagonal matrix.) ).
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 = U^{H}*D*U or A = L*D*L^{H} ; if uplo = 'L' , e is the subdiagonal of L , and A = L*D*L^{H} . 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' : L^{T}*X = B (transpose) for complex flavors: if trans = 'N' : U*X = B or L*X = B (no transpose) if trans = 'C' : U^{H}*X = B or L^{H}*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 (Computes the factorization of a symmetric (Hermitian) positive-definite tridiagonal matrix.) .
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 (Computes the factorization of a symmetric (Hermitian) positive-definite tridiagonal matrix.) . 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.