Developer Reference for Intel® oneAPI Math Kernel Library for C
mkl_?gemm_compact
Computes a matrix-matrix product of a set of compact format general matrices.
Syntax
voidmkl_sgemm_compact ( MKL_LAYOUTlayout , MKL_TRANSPOSEtransa , MKL_TRANSPOSEtransb , MKL_INTm , MKL_INTn , MKL_INTk , floatalpha , constfloat*ap , MKL_INTldap , constfloat*bp , MKL_INTldbp , floatbeta , float*cp , MKL_INTldcp , MKL_COMPACT_PACKformat , MKL_INTnm );
voidmkl_dgemm_compact ( MKL_LAYOUTlayout , MKL_TRANSPOSEtransa , MKL_TRANSPOSEtransb , MKL_INTm , MKL_INTn , MKL_INTk , doublealpha , constdouble*ap , MKL_INTldap , constdouble*bp , MKL_INTldbp , doublebeta , double*cp , MKL_INTldcp , MKL_COMPACT_PACKformat , MKL_INTnm );
voidmkl_cgemm_compact ( MKL_LAYOUTlayout , MKL_TRANSPOSEtransa , MKL_TRANSPOSEtransb , MKL_INTm , MKL_INTn , MKL_INTk , mkl_compact_complex_float*alpha , constfloat*ap , MKL_INTldap , constfloat*bp , MKL_INTldbp , mkl_compact_complex_float*beta , float*cp , MKL_INTldcp , MKL_COMPACT_PACKformat , MKL_INTnm );
voidmkl_zgemm_compact ( MKL_LAYOUTlayout , MKL_TRANSPOSEtransa , MKL_TRANSPOSEtransb , MKL_INTm , MKL_INTn , MKL_INTk , mkl_compact_complex_double*alpha , constdouble*ap , MKL_INTldap , constdouble*bp , MKL_INTldbp , mkl_compact_complex_double*beta , double*cp , MKL_INTldcp , MKL_COMPACT_PACKformat , MKL_INTnm );
Description
mkl_cgemm_compact mkl_zgemm_compact mkl_gemm_compact
The mkl_?gemm_compact routine computes a scalar-matrix-matrix product and adds the result to a scalar-matrix product for a group of nm general matrices Ac that have been stored in compact format. The operation is defined for each matrix as:
Cc := alpha *op( Ac )*op( Bc ) + beta * Cc
Where
op( Xc ) is one of op( Xc ) = Xc , or op( Xc ) = XcT , or op( Xc ) = XcH ,
alpha and beta are scalars,
Ac , Bc , and Cc are matrices that have been stored in compact format,
op( Ac ) is an m -by- k matrix for each matrix in the group,
op( Bc ) is a k -by- n matrix for each matrix in the group,
and Cc is an m -by- n matrix.
Input Parameters
- layout
-
Specifies whether two-dimensional array storage is row-major ( MKL_ROW_MAJOR ) or column-major ( MKL_COL_MAJOR ).
- transa
-
Specifies the operation: If transa = MKL_NOTRANS , then op(A_{c}):=A_{c} . If transa = MKL_TRANS , then op(A_{c}):=A_{c}^{T} . If transa = MKL_CONJTRANS , then op(A_{c}):=A_{c}^{H} .
- transb
-
Specifies the operation: If transb = MKL_NOTRANS , then op(B_{c}):=B_{c} . If transb = MKL_TRANS , then op(B_{c}):=B_{c}^{T} . If transb = MKL_CONJTRANS , then op(B_{c}):=B_{c}^{H} .
- m
-
The number of rows of the matrices op( Ac ), m >= 0.
- n
-
The number of columns of matrices op( Bc ) and Cc . n≥0 .
- k
-
The number of columns of matrices op( Ac ) and the number of rows of matrices op(B_{c}) . k≥0 .
- alpha
-
Specifies the scalar alpha .
- ap
-
Points to the beginning of the array that stores the nmAc matrices. See Compact Format for more details.
- ldap
-
Specifies the leading dimension of Ac .
- bp
-
Points to the beginning of the array that stores the nmBc matrices. See Compact Format for more details.
- ldbp
-
Specifies the leading dimension of Bc .
- beta
-
Specifies the scalar beta .
- cp
-
Before entry, cp points to the beginning of the array that stores the nmCc matrices, except when beta is equal to zero, in which case cp need not be set on entry.
- ldcp
-
Specifies the leading dimension of Cc .
- format
-
Specifies the format of the compact matrices. See Compact Format or mkl_get_format_compact for details.
- nm
-
Total number of matrices stored in compact format in the group of matrices.
Output Parameters
- cp
-
Each matrix Cc is overwritten by the m -by- n matrix ( alpha *op( Ac )*op( Bc ) + beta * Cc ).