Visible to Intel only — GUID: GUID-2CB6BB96-5197-451E-A572-FB3133764957
Visible to Intel only — GUID: GUID-2CB6BB96-5197-451E-A572-FB3133764957
?tfsm
Solves a matrix equation (one operand is a triangular matrix in RFP format).
Syntax
lapack_int LAPACKE_stfsm (int matrix_layout , char transr , char side , char uplo , char trans , char diag , lapack_int m , lapack_int n , float alpha , const float * a , float * b , lapack_int ldb );
lapack_int LAPACKE_dtfsm (int matrix_layout , char transr , char side , char uplo , char trans , char diag , lapack_int m , lapack_int n , double alpha , const double * a , double * b , lapack_int ldb );
lapack_int LAPACKE_ctfsm (int matrix_layout , char transr , char side , char uplo , char trans , char diag , lapack_int m , lapack_int n , lapack_complex_float alpha , const lapack_complex_float * a , lapack_complex_float * b , lapack_int ldb );
lapack_int LAPACKE_ztfsm (int matrix_layout , char transr , char side , char uplo , char trans , char diag , lapack_int m , lapack_int n , lapack_complex_double alpha , const lapack_complex_double * a , lapack_complex_double * b , lapack_int ldb );
Include Files
- mkl.h
Description
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) = AT for real flavors
op(A) = A or op(A) = AH 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
-
Specifies the scalar alpha.
When alpha is zero, then a is not referenced and b need not be set before entry.
- a
-
Array, size (n*(n+1)/2). Contains the matrix A in RFP format.
- b
-
Array, size 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.