mkl_?diamm
mkl_?diamm
Computes matrix-matrix product of a sparse matrix stored in the diagonal format with one-based indexing (deprecated).
Syntax
void
mkl_sdiamm
(
const
char
*transa
,
const
MKL_INT
*m
,
const
MKL_INT
*n
,
const
MKL_INT
*k
,
const
float
*alpha
,
const
char
*matdescra
,
const
float
*val
,
const
MKL_INT
*lval
,
const
MKL_INT
*idiag
,
const
MKL_INT
*ndiag
,
const
float
*b
,
const
MKL_INT
*ldb
,
const
float
*beta
,
float
*c
,
const
MKL_INT
*ldc
);
void
mkl_ddiamm
(
const
char
*transa
,
const
MKL_INT
*m
,
const
MKL_INT
*n
,
const
MKL_INT
*k
,
const
double
*alpha
,
const
char
*matdescra
,
const
double
*val
,
const
MKL_INT
*lval
,
const
MKL_INT
*idiag
,
const
MKL_INT
*ndiag
,
const
double
*b
,
const
MKL_INT
*ldb
,
const
double
*beta
,
double
*c
,
const
MKL_INT
*ldc
);
void
mkl_cdiamm
(
const
char
*transa
,
const
MKL_INT
*m
,
const
MKL_INT
*n
,
const
MKL_INT
*k
,
const
MKL_Complex8
*alpha
,
const
char
*matdescra
,
const
MKL_Complex8
*val
,
const
MKL_INT
*lval
,
const
MKL_INT
*idiag
,
const
MKL_INT
*ndiag
,
const
MKL_Complex8
*b
,
const
MKL_INT
*ldb
,
const
MKL_Complex8
*beta
,
MKL_Complex8
*c
,
const
MKL_INT
*ldc
);
void
mkl_zdiamm
(
const
char
*transa
,
const
MKL_INT
*m
,
const
MKL_INT
*n
,
const
MKL_INT
*k
,
const
MKL_Complex16
*alpha
,
const
char
*matdescra
,
const
MKL_Complex16
*val
,
const
MKL_INT
*lval
,
const
MKL_INT
*idiag
,
const
MKL_INT
*ndiag
,
const
MKL_Complex16
*b
,
const
MKL_INT
*ldb
,
const
MKL_Complex16
*beta
,
MKL_Complex16
*c
,
const
MKL_INT
*ldc
);
Include Files
- mkl.h
Description
This routine is deprecated. Use Use mkl_sparse_?_mmfrom the Inspector-executor Sparse BLAS interface instead.
Intel® oneAPI Math Kernel Library
The
mkl_?diamm
routine performs a matrix-matrix operation defined as C := alpha*A*B + beta*C
or
C := alpha*AT*B + beta*C,
or
C := alpha*AH*B + beta*C,
where:
alpha
and beta
are scalars, B
and C
are dense matrices, A
is an m
-by-k
sparse matrix in the diagonal format, A
T
is the transpose of A
, and A
H
is the conjugate transpose of A
.This routine supports only one-based indexing of the input arrays.
Input Parameters
- transa
- Specifies the operation.Ifortransa='N''n', then,C:=alpha*A*B+beta*CIfortransa='T''t', then,C:=alpha*AT*B+beta*CIftransa='C'or'c', then.C:=alpha*AH*B+beta*C
- m
- Number of rows of the matrixA.
- n
- Number of columns of the matrixC.
- k
- Number of columns of the matrixA.
- alpha
- Specifies the scalaralpha.
- matdescra
- Array of six elements, specifies properties of the matrix used for operation. Only first four array elements are used, their possible values are given inTable “Possible Values of the Parameter. Possible combinations of element values of this parameter are given inmatdescra(descra)”Table “Possible Combinations of Element Values of the Parameter.matdescra”
- val
- Two-dimensional array of sizelvalbyndiag, contains non-zero diagonals of the matrixA. Refer tovaluesarray description in Diagonal Storage Scheme for more details.
- lval
- Leading dimension ofval,. Refer tolval≥mlvaldescription in Diagonal Storage Scheme for more details.
- idiag
- Array of lengthndiag, contains the distances between main diagonal and each non-zero diagonals in the matrixA.Refer todistancearray description in Diagonal Storage Scheme for more details.
- ndiag
- Specifies the number of non-zero diagonals of the matrixA.
- b
- Array, size.ldb*nOn entry withortransa='N''n', the leadingk-by-npart of the arraybmust contain the matrixB, otherwise the leadingm-by-npart of the arraybmust contain the matrixB.
- ldb
- Specifies the leading dimension ofbas declared in the calling (sub)program.
- beta
- Specifies the scalarbeta.
- c
- Array, sizeldcbyn.On entry, the leadingm-by-npart of the arraycmust contain the matrixC, otherwise the leadingk-by-npart of the arraycmust contain the matrixC.
- ldc
- Specifies the leading dimension ofcas declared in the calling (sub)program.
Output Parameters
- c
- Overwritten by the matrix(,alpha*A*B+beta*C)(, oralpha*AT*B+beta*C)(.alpha*AH*B+beta*C)