oneMKL Defined Datatypes#
oneMKL BLAS and LAPACK for Data Parallel C++ (DPC++) introduces
several new enumeration data types, which are type-safe versions of
the traditional Fortran characters in BLAS and LAPACK. They are
declared in types.hpp
, which is included automatically when
you include mkl.hpp
. Like all oneMKL DPC++ functionality, they belong to the namespace oneapi::mkl
.
Each enumeration value comes with two names: A single-character name (the traditional BLAS/LAPACK character) and a longer, descriptive name. The two names are exactly equivalent and may be used interchangeably.
transpose#
The transpose
type specifies whether an input matrix should be
transposed and/or conjugated. It can take the following values:
Short Name |
Long Name |
Description |
---|---|---|
|
|
Do not transpose or conjugate the matrix. |
|
|
Transpose the matrix. |
|
|
Perform Hermitian transpose (transpose and conjugate). Only applicable to complex matrices. |
uplo#
The uplo
type specifies whether the lower or upper triangle of a riangular, symmetric, or Hermitian matrix should be accessed.
It can take the following values:
Short Name |
Long Name |
Description |
---|---|---|
|
|
Access the upper triangle of the matrix. |
|
|
Access the lower triangle of the matrix. |
In both cases, elements that are not in the selected triangle are not accessed or updated.
diag#
The diag
type specifies the values on the diagonal of a triangular matrix. It can take the following values:
Short Name |
Long Name |
Description |
---|---|---|
|
|
The matrix is not unit triangular. The diagonal entries are stored with the matrix data. |
|
|
The matrix is unit triangular (the diagonal entries are all 1s). The diagonal entries in the matrix data are not accessed. |
side#
The side
type specifies the order of matrix multiplication when one matrix has a special form (triangular, symmetric, or Hermitian):
Short Name |
Long Name |
Description |
---|---|---|
|
|
The special form matrix is on the left in the multiplication. |
|
|
The special form matrix is on the right in the multiplication. |
offset#
The offset
type specifies whether the offset to apply to an output matrix is a fix offset, column offset or row offset. It can take the following values
Short Name |
Long Name |
Description |
---|---|---|
|
|
The offset to apply to the output matrix is fix, all the inputs in the |
|
|
The offset to apply to the output matrix is a column offset, that is to say all the columns in the |
|
|
The offset to apply to the output matrix is a row offset, that is to say all the rows in the |
Parent topic: oneMKL Interfaces