?dttrsv
?dttrsv
Solves a general tridiagonal system of linear equations using the LU factorization computed by
?dttrf
.Syntax
void
sdttrsv
(
char
*uplo
,
char
*trans
,
MKL_INT
*n
,
MKL_INT
*nrhs
,
float
*dl
,
float
*d
,
float
*du
,
float
*b
,
MKL_INT
*ldb
,
MKL_INT
*info
);
void
ddttrsv
(
char
*uplo
,
char
*trans
,
MKL_INT
*n
,
MKL_INT
*nrhs
,
double
*dl
,
double
*d
,
double
*du
,
double
*b
,
MKL_INT
*ldb
,
MKL_INT
*info
);
void
cdttrsv
(
char
*uplo
,
char
*trans
,
MKL_INT
*n
,
MKL_INT
*nrhs
,
MKL_Complex8
*dl
,
MKL_Complex8
*d
,
MKL_Complex8
*du
,
MKL_Complex8
*b
,
MKL_INT
*ldb
,
MKL_INT
*info
);
void
zdttrsv
(
char
*uplo
,
char
*trans
,
MKL_INT
*n
,
MKL_INT
*nrhs
,
MKL_Complex16
*dl
,
MKL_Complex16
*d
,
MKL_Complex16
*du
,
MKL_Complex16
*b
,
MKL_INT
*ldb
,
MKL_INT
*info
);
Include Files
- mkl_scalapack.h
Description
The
?dttrsv
function
solves one of the following systems of linear equations:L*X
= B
L
T
*X
= B
L
H
*X
= B
U*X
= B
U
T
*X
= B
U
H
*X
= B
Input Parameters
- uplo
- Specifies whether to solve withLorU.
- trans
- Must be'N'or'T'or'C'.Indicates the form of the equations:If, thentrans='N'is solved forA*X=BX(no transpose).If, thentrans='T'is solved forA*TX=BX(transpose).If, thentrans='C'is solved forA*HX=BX(conjugate transpose).
- n
- The order of the matrixA(.n≥0)
- nrhs
- The number of right-hand sides, that is, the number of columns in the matrixB(.nrhs≥0)
- dl,d,du,b
- The arraydlof size (n- 1) contains the (n- 1) multipliers that define the matrixLfrom theLUfactorization ofA.The arraydof sizencontainsndiagonal elements of the upper triangular matrixUfrom theLUfactorization ofA.The arrayduof size (n- 1) contains the (n- 1) elements of the first super-diagonal ofU.On entry, the arraybof sizecontains the right-hand side of matrixldb*nrhsB.
- ldb
- The leading dimension of the arrayb;.ldb≥max(1,n)
Output Parameters
- b
- Overwritten by the solution matrixX.
- info
- If, the execution is successful.info=0If, theinfo=-ii-th parameter had an illegal value.