Developer Reference

  • 2021.1
  • 12/04/2020
  • Public Content
Contents

mkl_?csrbsr

Converts a square sparse matrix in the CSR format to the BSR format and vice versa (deprecated).

Syntax

void
mkl_scsrbsr
(
const
MKL_INT
*job
,
const
MKL_INT
*m
,
const
MKL_INT
*mblk
,
const
MKL_INT
*ldabsr
,
float
*acsr
,
MKL_INT
*ja
,
MKL_INT
*ia
,
float
*absr
,
MKL_INT
*jab
,
MKL_INT
*iab
,
MKL_INT
*info
);
void
mkl_dcsrbsr
(
const
MKL_INT
*job
,
const
MKL_INT
*m
,
const
MKL_INT
*mblk
,
const
MKL_INT
*ldabsr
,
double
*acsr
,
MKL_INT
*ja
,
MKL_INT
*ia
,
double
*absr
,
MKL_INT
*jab
,
MKL_INT
*iab
,
MKL_INT
*info
);
void
mkl_ccsrbsr
(
const
MKL_INT
*job
,
const
MKL_INT
*m
,
const
MKL_INT
*mblk
,
const
MKL_INT
*ldabsr
,
MKL_Complex8
*acsr
,
MKL_INT
*ja
,
MKL_INT
*ia
,
MKL_Complex8
*absr
,
MKL_INT
*jab
,
MKL_INT
*iab
,
MKL_INT
*info
);
void
mkl_zcsrbsr
(
const
MKL_INT
*job
,
const
MKL_INT
*m
,
const
MKL_INT
*mblk
,
const
MKL_INT
*ldabsr
,
MKL_Complex16
*acsr
,
MKL_INT
*ja
,
MKL_INT
*ia
,
MKL_Complex16
*absr
,
MKL_INT
*jab
,
MKL_INT
*iab
,
MKL_INT
*info
);
Include Files
  • mkl.h
Description
This routine is deprecated. Use the matrix manipulation routinesfrom the
Intel® oneAPI Math Kernel Library
Inspector-executor Sparse BLAS interface instead.
This routine converts a square sparse matrix
A
stored in the compressed sparse row (CSR) format (3-array variation) to the block sparse row (BSR) format and vice versa.
Input Parameters
job
Array, contains the following conversion parameters:
job
[0]
If
job
[0]
=0
, the matrix in the CSR format is converted to the BSR format;
if
job
[0]
=1
, the matrix in the BSR format is converted to the CSR format.
job
[1]
If
job
[1]
=0
, zero-based indexing for the matrix in CSR format is used;
if
job
[1]
=1
, one-based indexing for the matrix in CSR format is used.
job
[2]
If
job
[2]
=0
, zero-based indexing for the matrix in the BSR format is used;
if
job
[2]
=1
, one-based indexing for the matrix in the BSR format is used.
job
[3]
is only used for conversion to CSR format. By default, the converter saves the blocks without checking whether an element is zero or not. If
job
[3]
=1
, then the converter only saves non-zero elements in blocks.
job
[5]
- job indicator.
For conversion to the BSR format:
If
job
[5]
=0
, only arrays
jab
,
iab
are generated for the output storage.
If
job
[5]
>0
, all output arrays
absr
,
jab
, and
iab
are filled in for the output storage.
If
job
[5]
=-1
,
iab
[
m
] -
iab
[0]
returns the number of non-zero blocks.
For conversion to the CSR format:
If
job
[5]
=0
, only arrays
ja
,
ia
are generated for the output storage.
m
Actual row dimension of the matrix
A
for convert to the BSR format; block row dimension of the matrix
A
for convert to the CSR format.
mblk
Size of the block in the matrix
A
.
ldabsr
Leading dimension of the array
absr
as declared in the calling program.
ldabsr
must be greater than or equal to
mblk
*
mblk
.
acsr
(input/output)
Array containing non-zero elements of the matrix
A
. Its length is equal to the number of non-zero elements in the matrix
A
. Refer to
values
array description in Sparse Matrix Storage Formats for more details.
ja
(input/output). Array containing the column indices for each non-zero element of the matrix
A
.
Its length is equal to the length of the array
acsr
. Refer to
columns
array description in Sparse Matrix Storage Formats for more details.
ia
(input/output). Array of length
m
+ 1
, containing indices of elements in the array
acsr
, such that
ia
[
I
]] -
iab
[0]
is the index in the array
acsr
of the first non-zero element from the row
I
. The value of
ia
[
m
]] -
iab
[0]
is equal to the number of non-zeros. Refer to
rowIndex
array description in Sparse Matrix Storage Formats for more details.
absr
(input/output)
Array containing elements of non-zero blocks of the matrix
A
. Its length is equal to the number of non-zero blocks in the matrix
A
multiplied by
mblk
*
mblk
. Refer to
values
array description in BSR Format for more details.
jab
(input/output). Array containing the column indices for each non-zero block of the matrix
A
.
Its length is equal to the number of non-zero blocks of the matrix
A
. Refer to
columns
array description in BSR Format for more details.
iab
(input/output). Array of length
(
m
+ 1)
, containing indices of blocks in the array
absr
, such that
iab
[
i
] -
iab
[0]
is the index in the array
absr
of the first non-zero element from the
i
-th row . The value of
iab
[
m
]
is equal to the number of non-zero blocks. Refer to
rowIndex
array description in BSR Format for more details.
Output Parameters
info
Integer info indicator only for converting the matrix
A
from the CSR format.
If
info
=0
, the execution is successful.
If
info
=1
, it means that
mblk
is equal to 0.
If
info
=2
, it means that
ldabsr
is less than
mblk
*
mblk
and there is no space for all blocks.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.