Developer Reference for Intel® oneAPI Math Kernel Library for C
?tfsm
Solves a matrix equation (one operand is a triangular matrix in RFP format).
Syntax
lapack_intLAPACKE_stfsm ( intmatrix_layout , chartransr , charside , charuplo , chartrans , chardiag , lapack_intm , lapack_intn , floatalpha , constfloat*a , float*b , lapack_intldb );
lapack_intLAPACKE_dtfsm ( intmatrix_layout , chartransr , charside , charuplo , chartrans , chardiag , lapack_intm , lapack_intn , doublealpha , constdouble*a , double*b , lapack_intldb );
lapack_intLAPACKE_ctfsm ( intmatrix_layout , chartransr , charside , charuplo , chartrans , chardiag , lapack_intm , lapack_intn , lapack_complex_floatalpha , constlapack_complex_float*a , lapack_complex_float*b , lapack_intldb );
lapack_intLAPACKE_ztfsm ( intmatrix_layout , chartransr , charside , charuplo , chartrans , chardiag , lapack_intm , lapack_intn , lapack_complex_doublealpha , constlapack_complex_double*a , lapack_complex_double*b , lapack_intldb );
Include Files
mkl.h
Description
stfsm dtfsm ctfsm ztfsm tfsm
The ?tfsm routines solve one of the following matrix equations:
op( A )* X = alpha * B ,
or
X *op( A ) = alpha * B ,
where:
alpha is a scalar,
X and B are m -by- n matrices,
A is a unit, or non-unit, upper or lower triangular matrix in rectangular full packed (RFP) format .
op(A) can be one of the following:
op(A) = A or op(A) = A^{T} for real flavors op(A) = A or op(A) = A^{H} for complex flavors
The matrix B is overwritten by the solution matrix X .
Input Parameters
- matrix_layout
-
Specifies whether matrix storage layout is row major ( LAPACK_ROW_MAJOR ) or column major ( LAPACK_COL_MAJOR ).
transr
if transr = 'N' or 'n' , the normal form of RFP A is stored; if transr = 'T' or 't' , the transpose form of RFP A is stored; if transr = 'C' or 'c' , the conjugate-transpose form of RFP A is stored.
side
Specifies whether op(A) appears on the left or right of X in the equation:
if side = 'L' or ‘l’ , then op(A)*X = alpha*B ; if side = 'R' or ‘r’ , then X*op(A) = alpha*B .
uplo
Specifies whether the RFP matrix A is upper or lower triangular:
if uplo = 'U' or ‘u’ , then the matrix is upper triangular; if uplo = 'L' or ‘l’ , then the matrix is low triangular.
trans
Specifies the form of op(A) used in the matrix multiplication:
if trans = 'N' or 'n' , then op(A) = A ; if trans = 'T' or 't' , then op(A) = A' ; if trans = 'C' or 'c' , then op(A) = conjg(A') .
diag
Specifies whether the RFP matrix A is unit triangular:
if diag = 'U' or ‘u’ then the matrix is unit triangular; if diag = 'N' or ‘n’ , then the matrix is not unit triangular.
m
Specifies the number of rows of B . The value of m must be at least zero.
n
Specifies the number of columns of B . The value of n must be at least zero.
- alpha
-
REAL for stfsm DOUBLE PRECISION for dtfsm COMPLEX for ctfsm DOUBLE COMPLEX for ztfsm Specifies the scalar alpha . When alpha is zero, then a is not referenced and b need not be set before entry.
- a
-
REAL for stfsm DOUBLE PRECISION for dtfsm COMPLEX for ctfsm DOUBLE COMPLEX for ztfsm Array, size (n*(n+1)/2) . Contains the matrix A in RFP format .
- b
-
REAL for stfsm DOUBLE PRECISION for dtfsm COMPLEX for ctfsm DOUBLE COMPLEX for ztfsm
Array, size (1, ldb*n)max(1, ldb*n) for column major and max(1, ldb*m) for row major.
Before entry, the leading m -by- n part of the array b must contain the right-hand side matrix B .
ldb
Specifies the leading dimension of b as declared in the calling (sub)program. The value of ldb must be at least max(1, m ) for column major and max(1,n) for row major .
Output Parameters
- b
-
Overwritten by the solution matrix X .
Return Values
This function returns a value info .
If info = 0 , the execution is successful.
If info < 0 , the i -th parameter had an illegal value.
If info = -1011 , memory allocation error occurred.