Intel® oneAPI Math Kernel Library Developer Reference - C

mkl_sparse_?_qr

Calculates the solution of sparse systems of linear equations using QR decomposition.

Syntax

sparse_status_t mkl_sparse_d_qr ( sparse_operation_t operation, sparse_matrix_t A, struct matrix_descr descr, sparse_layout_t layout, MKL_INT columns, double *x, MKL_INT ldx, const double *b, MKL_INT ldb );

sparse_status_t mkl_sparse_s_qr ( sparse_operation_t operation, sparse_matrix_t A, struct matrix_descr descr, sparse_layout_t layout, MKL_INT columns, float *x, MKL_INT ldx, const float *b, MKL_INT ldb );

Include Files

Description

The mkl_sparse_?_qr routine calculates the solution of sparse systems of linear equations A*x = b using QR decomposition (A = Q*R).

Note

Currently, mkl_sparse_?_qr supports only CSR format for the input matrix, non-transpose operation, and single right-hand side.

Input Parameters

operation

Specifies the operation to perform.

Note

Currently, the only suppored value is SPARSE_OPERATION_NON_TRANSPOSE (non-transpose case; that is, A*x = b is solved).
A

Handle containing a sparse matrix in an internal data structure.

descr

Structure specifying sparse-matrix properties. Only the parameters listed here are currently supported.

type

Specifies the type of sparse matrix.

Note

Currently, the only supported value is SPARSE_MATRIX_TYPE_GENERAL (the matrix is processed as-is).
layout

Describes the storage scheme for the dense matrix:

SPARSE_LAYOUT_COLUMN_MAJOR Storage of elements uses column-major layout.
SPARSE_LAYOUT_ROW_MAJOR Storage of elements uses row-major layout.
x

Array with a size of at least rows*cols:

  layout = SPARSE_LAYOUT_COLUMN_MAJOR layout = SPARSE_LAYOUT_ROW_MAJOR
rows (number of rows in x) ldx Number of columns in A
cols (number of columns in x) columns ldx
columns

Number of columns in matrix b.

ldx

Specifies the leading dimension of matrix x.

b

Array with a size of at least rows*cols:

  layout = SPARSE_LAYOUT_COLUMN_MAJOR layout = SPARSE_LAYOUT_ROW_MAJOR
rows (number of rows in b) ldb Number of columns in A
cols (number of columns in b) columns ldb
ldb

Specifies the leading dimension of matrix b.

Output Parameters

x

Overwritten by the updated matrix y.

Return Values

SPARSE_STATUS_SUCCESS
The operation was successful.
SPARSE_STATUS_NOT_INITIALIZED
The routine encountered an empty handle or matrix array.
SPARSE_STATUS_ALLOC_FAILED
Internal memory allocation failed.
SPARSE_STATUS_INVALID_VALUE
The input parameters contain an invalid value.
SPARSE_STATUS_EXECUTION_FAILED
Execution failed.
SPARSE_STATUS_INTERNAL_ERROR
An error in algorithm implementation occurred.
SPARSE_STATUS_NOT_SUPPORTED
The requested operation is not supported.