Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

mkl_sparse_?_qr_solve

Solving step of the SPARSE QR solver.

Syntax

sparse_status_t mkl_sparse_d_qr_solve ( sparse_operation_t operation, sparse_matrix_t A, double *alt_values, 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_solve ( sparse_operation_t operation, sparse_matrix_t A, float *alt_values, sparse_layout_t layout, MKL_INT columns, float *x, MKL_INT ldx, const float *b, MKL_INT ldb );

Include Files

  • mkl_sparse_qr.h

Description

The mkl_sparse_?_qr_solve routine computes the solution of sparse systems of linear equations A*x = b. Prior to calling this routine, the mkl_sparse_?_qr_factorize routine must be called for the matrix handle A. For more information about the workflow of sparse QR functionality, refer to oneMKL Sparse QR solver. Multifrontal Sparse QR Factorization Method for Solving a Sparse System of Linear Equations.

NOTE:

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

Alternative values are not supported and must be set to NULL.

Input Parameters

operation

Specifies the operation to perform.

NOTE:
Currently, the only supported 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.

alt_values

Reserved for future use.

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

Contains the solution of system A*x = b.

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.