tfsm#
Functions
-
void stfsm(const char *transr, const char *side, const char *uplo, const char *trans, const char *diag, const INT m, const INT n, const f32 alpha, const f32 *restrict A, f32 *restrict B, const INT ldb)#
Level 3 BLAS like routine for A in RFP Format.
STFSM solves the matrix equation
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 and op( A ) is one of
op( A ) = A or op( A ) = A**T.
A is in Rectangular Full Packed (RFP) Format.
The matrix X is overwritten on B.
Parameters
intransr= ‘N’: The Normal Form of RFP A is stored; = ‘T’: The Transpose Form of RFP A is stored.
insideOn entry, SIDE specifies whether op( A ) appears on the left or right of X as follows: SIDE = ‘L’ or ‘l’ op( A )*X = alpha*B. SIDE = ‘R’ or ‘r’ X*op( A ) = alpha*B.
inuploOn entry, UPLO specifies whether the RFP matrix A came from an upper or lower triangular matrix as follows: UPLO = ‘U’ or ‘u’ RFP A came from an upper triangular matrix UPLO = ‘L’ or ‘l’ RFP A came from a lower triangular matrix
intransOn entry, TRANS specifies the form of op( A ) to be used in the matrix multiplication as follows: TRANS = ‘N’ or ‘n’ op( A ) = A. TRANS = ‘T’ or ‘t’ op( A ) = A’.
indiagOn entry, DIAG specifies whether or not RFP A is unit triangular as follows: DIAG = ‘U’ or ‘u’ A is assumed to be unit triangular. DIAG = ‘N’ or ‘n’ A is not assumed to be unit triangular.
inmOn entry, M specifies the number of rows of B. M must be at least zero.
innOn entry, N specifies the number of columns of B. N must be at least zero.
inalphaOn entry, ALPHA specifies the scalar alpha. When alpha is zero then A is not referenced and B need not be set before entry.
inADouble precision array, dimension (NT) NT = N*(N+1)/2 if SIDE=’R’ and NT = M*(M+1)/2 otherwise. On entry, the matrix A in RFP Format.
inoutBDouble precision array, dimension (LDB,N) Before entry, the leading m by n part of the array B must contain the right-hand side matrix B, and on exit is overwritten by the solution matrix X.
inldbOn entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
void stfsm(
const char* transr,
const char* side,
const char* uplo,
const char* trans,
const char* diag,
const INT m,
const INT n,
const f32 alpha,
const f32* restrict A,
f32* restrict B,
const INT ldb
);
Functions
-
void dtfsm(const char *transr, const char *side, const char *uplo, const char *trans, const char *diag, const INT m, const INT n, const f64 alpha, const f64 *restrict A, f64 *restrict B, const INT ldb)#
Level 3 BLAS like routine for A in RFP Format.
DTFSM solves the matrix equation
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 and op( A ) is one of
op( A ) = A or op( A ) = A**T.
A is in Rectangular Full Packed (RFP) Format.
The matrix X is overwritten on B.
Parameters
intransr= ‘N’: The Normal Form of RFP A is stored; = ‘T’: The Transpose Form of RFP A is stored.
insideOn entry, SIDE specifies whether op( A ) appears on the left or right of X as follows: SIDE = ‘L’ or ‘l’ op( A )*X = alpha*B. SIDE = ‘R’ or ‘r’ X*op( A ) = alpha*B.
inuploOn entry, UPLO specifies whether the RFP matrix A came from an upper or lower triangular matrix as follows: UPLO = ‘U’ or ‘u’ RFP A came from an upper triangular matrix UPLO = ‘L’ or ‘l’ RFP A came from a lower triangular matrix
intransOn entry, TRANS specifies the form of op( A ) to be used in the matrix multiplication as follows: TRANS = ‘N’ or ‘n’ op( A ) = A. TRANS = ‘T’ or ‘t’ op( A ) = A’.
indiagOn entry, DIAG specifies whether or not RFP A is unit triangular as follows: DIAG = ‘U’ or ‘u’ A is assumed to be unit triangular. DIAG = ‘N’ or ‘n’ A is not assumed to be unit triangular.
inmOn entry, M specifies the number of rows of B. M must be at least zero.
innOn entry, N specifies the number of columns of B. N must be at least zero.
inalphaOn entry, ALPHA specifies the scalar alpha. When alpha is zero then A is not referenced and B need not be set before entry.
inADouble precision array, dimension (NT) NT = N*(N+1)/2 if SIDE=’R’ and NT = M*(M+1)/2 otherwise. On entry, the matrix A in RFP Format.
inoutBDouble precision array, dimension (LDB,N) Before entry, the leading m by n part of the array B must contain the right-hand side matrix B, and on exit is overwritten by the solution matrix X.
inldbOn entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
void dtfsm(
const char* transr,
const char* side,
const char* uplo,
const char* trans,
const char* diag,
const INT m,
const INT n,
const f64 alpha,
const f64* restrict A,
f64* restrict B,
const INT ldb
);
Functions
-
void ctfsm(const char *transr, const char *side, const char *uplo, const char *trans, const char *diag, const INT m, const INT n, const c64 alpha, const c64 *restrict A, c64 *restrict B, const INT ldb)#
Level 3 BLAS like routine for A in RFP Format.
CTFSM solves the matrix equation
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 and op( A ) is one of
op( A ) = A or op( A ) = A**H.
A is in Rectangular Full Packed (RFP) Format.
The matrix X is overwritten on B.
Parameters
intransr= ‘N’: The Normal Form of RFP A is stored; = ‘C’: The Conjugate-transpose Form of RFP A is stored.
insideOn entry, SIDE specifies whether op( A ) appears on the left or right of X as follows: SIDE = ‘L’ or ‘l’ op( A )*X = alpha*B. SIDE = ‘R’ or ‘r’ X*op( A ) = alpha*B.
inuploOn entry, UPLO specifies whether the RFP matrix A came from an upper or lower triangular matrix as follows: UPLO = ‘U’ or ‘u’ RFP A came from an upper triangular matrix UPLO = ‘L’ or ‘l’ RFP A came from a lower triangular matrix
intransOn entry, TRANS specifies the form of op( A ) to be used in the matrix multiplication as follows: TRANS = ‘N’ or ‘n’ op( A ) = A. TRANS = ‘C’ or ‘c’ op( A ) = conjg( A’ ).
indiagOn entry, DIAG specifies whether or not RFP A is unit triangular as follows: DIAG = ‘U’ or ‘u’ A is assumed to be unit triangular. DIAG = ‘N’ or ‘n’ A is not assumed to be unit triangular.
inmOn entry, M specifies the number of rows of B. M must be at least zero.
innOn entry, N specifies the number of columns of B. N must be at least zero.
inalphaOn entry, ALPHA specifies the scalar alpha. When alpha is zero then A is not referenced and B need not be set before entry.
inAComplex*16 array, dimension (NT) NT = N*(N+1)/2 if SIDE=’R’ and NT = M*(M+1)/2 otherwise. On entry, the matrix A in RFP Format.
inoutBComplex*16 array, dimension (LDB,N) Before entry, the leading m by n part of the array B must contain the right-hand side matrix B, and on exit is overwritten by the solution matrix X.
inldbOn entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
void ctfsm(
const char* transr,
const char* side,
const char* uplo,
const char* trans,
const char* diag,
const INT m,
const INT n,
const c64 alpha,
const c64* restrict A,
c64* restrict B,
const INT ldb
);
Functions
-
void ztfsm(const char *transr, const char *side, const char *uplo, const char *trans, const char *diag, const INT m, const INT n, const c128 alpha, const c128 *restrict A, c128 *restrict B, const INT ldb)#
Level 3 BLAS like routine for A in RFP Format.
ZTFSM solves the matrix equation
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 and op( A ) is one of
op( A ) = A or op( A ) = A**H.
A is in Rectangular Full Packed (RFP) Format.
The matrix X is overwritten on B.
Parameters
intransr= ‘N’: The Normal Form of RFP A is stored; = ‘C’: The Conjugate-transpose Form of RFP A is stored.
insideOn entry, SIDE specifies whether op( A ) appears on the left or right of X as follows: SIDE = ‘L’ or ‘l’ op( A )*X = alpha*B. SIDE = ‘R’ or ‘r’ X*op( A ) = alpha*B.
inuploOn entry, UPLO specifies whether the RFP matrix A came from an upper or lower triangular matrix as follows: UPLO = ‘U’ or ‘u’ RFP A came from an upper triangular matrix UPLO = ‘L’ or ‘l’ RFP A came from a lower triangular matrix
intransOn entry, TRANS specifies the form of op( A ) to be used in the matrix multiplication as follows: TRANS = ‘N’ or ‘n’ op( A ) = A. TRANS = ‘C’ or ‘c’ op( A ) = conjg( A’ ).
indiagOn entry, DIAG specifies whether or not RFP A is unit triangular as follows: DIAG = ‘U’ or ‘u’ A is assumed to be unit triangular. DIAG = ‘N’ or ‘n’ A is not assumed to be unit triangular.
inmOn entry, M specifies the number of rows of B. M must be at least zero.
innOn entry, N specifies the number of columns of B. N must be at least zero.
inalphaOn entry, ALPHA specifies the scalar alpha. When alpha is zero then A is not referenced and B need not be set before entry.
inAComplex*16 array, dimension (NT) NT = N*(N+1)/2 if SIDE=’R’ and NT = M*(M+1)/2 otherwise. On entry, the matrix A in RFP Format.
inoutBComplex*16 array, dimension (LDB,N) Before entry, the leading m by n part of the array B must contain the right-hand side matrix B, and on exit is overwritten by the solution matrix X.
inldbOn entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
void ztfsm(
const char* transr,
const char* side,
const char* uplo,
const char* trans,
const char* diag,
const INT m,
const INT n,
const c128 alpha,
const c128* restrict A,
c128* restrict B,
const INT ldb
);