Developer Reference for Intel® oneAPI Math Kernel Library for C
p?dtsv
Solves a general tridiagonal system of linear equations.
Syntax
voidpsdtsv ( MKL_INT*n , MKL_INT*nrhs , float*dl , float*d , float*du , MKL_INT*ja , MKL_INT*desca , float*b , MKL_INT*ib , MKL_INT*descb , float*work , MKL_INT*lwork , MKL_INT*info );
voidpddtsv ( MKL_INT*n , MKL_INT*nrhs , double*dl , double*d , double*du , MKL_INT*ja , MKL_INT*desca , double*b , MKL_INT*ib , MKL_INT*descb , double*work , MKL_INT*lwork , MKL_INT*info );
voidpcdtsv ( MKL_INT*n , MKL_INT*nrhs , MKL_Complex8*dl , MKL_Complex8*d , MKL_Complex8*du , MKL_INT*ja , MKL_INT*desca , MKL_Complex8*b , MKL_INT*ib , MKL_INT*descb , MKL_Complex8*work , MKL_INT*lwork , MKL_INT*info );
voidpzdtsv ( MKL_INT*n , MKL_INT*nrhs , MKL_Complex16*dl , MKL_Complex16*d , MKL_Complex16*du , MKL_INT*ja , MKL_INT*desca , MKL_Complex16*b , MKL_INT*ib , MKL_INT*descb , MKL_Complex16*work , MKL_INT*lwork , MKL_INT*info );
Include Files
mkl_scalapack.h
Description
psdtsv pddtsv pcdtsv pzdtsv The routine function solves a system of linear equations
A(1:n, ja:ja+n-1) * X = B(ib:ib+n-1, 1:nrhs) ,
where A(1:n, ja:ja+n-1) is an n -by- n complex tridiagonal diagonally dominant-like distributed matrix.
Gaussian elimination without pivoting is used to factor a reordering of the matrix into L U .
Product and Performance Information Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex . Notice revision #20201201
Input Parameters
n
(global) The order of the distributed submatrix A(n≥ 0) .
nrhs
The number of right hand sides; the number of columns of the distributed matrix B(nrhs≥ 0) .
dl
(local).
DOUBLE PRECISION for pddtsv COMPLEX for pcdtsv DOUBLE COMPLEX for pzdtsv .
d
(local).
DOUBLE PRECISION for pddtsv COMPLEX for pcdtsv DOUBLE COMPLEX for pzdtsv . Pointer to local part of global vector storing the main diagonal of the matrix.
du
(local).
DOUBLE PRECISION for pddtsv COMPLEX for pcdtsv DOUBLE COMPLEX for pzdtsv . Pointer to local part of global vector storing the upper diagonal of the matrix. Globally, du(n)[n - 1] is not referenced, and du must be aligned with d .
ja
(global) The index in the global matrix A indicating the start of the matrix to be operated on (which may be either all of A or a submatrix of A ).
desca
(global and local) array of size dlen .
If 1d type (dtype_a=501 or 502) , dlen ≥ 7 ; If 2d type (dtype_a=1) , dlen ≥ 9 . The array descriptor for the distributed matrix A . Contains information of mapping of A to memory.
- b
-
(local) REAL for psdtsv DOUBLE PRECISON for pddtsv COMPLEX for pcdtsv DOUBLE COMPLEX for pzdtsv . Pointer into the local memory to an array of local lead size lld_b > nb . On entry, this array contains the local pieces of the right hand sides B(ib:ib+n-1, 1:nrhs) .
ib
(global) The row index in the global matrix B indicating the first row of the matrix to be operated on (which may be either all of b or a submatrix of B ).
descb
(global and local) array of size dlen .
If 1d type (dtype_b =502) , dlen ≥ 7 ; If 2d type (dtype_b =1) , dlen ≥ 9 . The array descriptor for the distributed matrix B . Contains information of mapping of B to memory.
- work
-
(local). REAL for psdtsv DOUBLE PRECISON for pddtsv COMPLEX for pcdtsv
DOUBLE COMPLEX for pzdtsv . Temporary workspace. This space may be overwritten in between calls to functions . work must be the size given in lwork .
lwork
(local or global) Size of user-input workspace work . If lwork is too small, the minimal acceptable size will be returned in work(1)[0] and an error code is returned. lwork > (12*NPCOL+3*nb)+max((10+2*min(100, nrhs))*NPCOL+4*nrhs, 8*NPCOL)
Output Parameters
- dl
-
On exit, this array contains information containing the * factors of the matrix.
- d
-
On exit, this array contains information containing the * factors of the matrix. Must be of size > desca( nb_ )[nb_ - 1] .
- du
-
On exit, this array contains information containing the * factors of the matrix. Must be of size > desca( nb_ )[nb_ - 1] .
- b
-
On exit, this contains the local piece of the solutions distributed matrix X .
- work
-
On exit, work(1)[0] contains the minimal lwork .
info
(local) If info=0 , the execution is successful.
< 0 : If the i -th argument is an array and the j -entry 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 . > 0 : If info = k<NPROCS , the submatrix stored on processor info and factored locally was not positive definite, and the factorization was not completed. If info = k > NPROCS , the submatrix stored on processor info-NPROCS representing interactions with other processors was not positive definite, and the factorization was not completed.