Intel® oneAPI Math Kernel Library Developer Reference - C
Solves a triangular matrix equation for a set of general, m x n matrices that have been stored in Compact format.
mkl_strsm_compact (MKL_LAYOUT layout, MKL_SIDE side, MKL_UPLO uplo, MKL_TRANSPOSE transa, MKL_DIAG diag, MKL_INT m, MKL_INT n, float alpha, const float *ap, MKL_INT a_stride, float *bp, MKL_INT b_stide, MKL_COMPACT_PACK format, MKL_INT nm);
mkl_dtrsm_compact (MKL_LAYOUT layout, MKL_SIDE side, MKL_UPLO uplo, MKL_TRANSPOSE transa, MKL_DIAG diag, MKL_INT m, MKL_INT n, double alpha, const double*ap, MKL_INT a_stride, double *bp, MKL_INT b_stride, MKL_COMPACT_PACK format, MKL_INT nm);
mkl_ctrsm_compact (MKL_LAYOUT layout, MKL_SIDE side, MKL_UPLO uplo, MKL_TRANSPOSE transa, MKL_DIAG diag, MKL_INT m, MKL_INT n, mkl_compact_complex_float *alpha, const float *ap, MKL_INT a_stride, float *bp, MKL_INT b_stride, MKL_COMPACT_PACK format, MKL_INT nm);
mkl_ztrsm_compact (MKL_LAYOUT layout, MKL_SIDE side, MKL_UPLO uplo, MKL_TRANSPOSE transa, MKL_DIAG diag, MKL_INT m, MKL_INT n, mkl_compact_complex_double *alpha, const double *ap, MKL_INT a_stride, double *bp, MKL_INT b_stride, MKL_COMPACT_PACK format, MKL_INT nm);
The routine solves one of the following matrix equations for a group of nm matrices:
op(Ac)*Xc = alpha*Bc,
or
Xc*op(Ac) = alpha*Bc
where:
alpha is a scalar, Xc and Bc are m-by-n matrices that have been stored in compact format, and Ac is a m-by-m unit, or non-unit, upper or lower triangular matrix that has been stored in compact format.
op(Ac) is one of op(Ac) = Ac, or op(Ac) = AcT, or op(Ac) = AcH,
Bc is overwritten by the solution matrix Xc.
Specifies whether two-dimensional array storage is row-major (MKL_ROW_MAJOR) or column-major (MKL_COL_MAJOR).
Specifies whether op(Ac) appears on the left or right of Xc in the equation:
if side = MKL_LEFT, then op(Ac)*Xc = alpha*Bc, if side = MKL_RIGHT, then Xc*op(Ac) = alpha*Bc
Specifies whether matrix Ac is upper or lower triangular.
If uplo = MKL_UPPER, Ac is upper triangular.
If uplo = MKL_LOWER, Ac is lower triangular.
Specifies the operation:
If transa=MKL_NOTRANS, then op(Ac) = Ac;
If transa=MKL_TRANS, then op(Ac) = AcT;
If transa=MKL_CONJTRANS, then op(Ac) = AcH ;
Specifies whether the matrix Ac is unit triangular:
If diag=MKL_UNIT, then the matrix is unit triangular;
if diag=MKL_NONUNIT, then the matrix is not unit triangular.
When side=MKL_LEFT, ldap must be at least max (1,m).
When side=MKL_RIGHT, ldap must be at least max (1,n).
layout = MKL_COL_MAJOR |
ldbp must be at least max (1,m). |
layout = MKL_ROW_MAJOR |
*ldbp must be at least max (1,n). |
The values of ldap and ldbp used in mkl_?trsm_compact must be consistent with the values used in mkl_?get_size_compact, mkl_?gepack_compact, and mkl_?geunpack_compact.