Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
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

stat = mkl_sparse_d_qr_solve (operation, A, alt_values, layout, x, columns, ldx, b, ldb)

stat = mkl_sparse_s_qr_solve (operation, A, alt_values, layout, x, columns, ldx, b, ldb)

Include Files

  • mkl_sparse_qr.f90

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

C_INT

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

SPARSE_MATRIX_T

Handle containing a sparse matrix in an internal data structure.

alt_values

C_FLOAT for mkl_sparse_s_qr_solve; C_DOUBLE for mkl_sparse_d_qr_solve

Reserved for future use.

layout

C_INT

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

C_FLOAT for mkl_sparse_s_qr; C_DOUBLE for mkl_sparse_d_qr

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

C_INT

Number of columns in matrix b.

ldx

C_INT

Specifies the leading dimension of matrix x.

b

C_FLOAT for mkl_sparse_s_qr; C_DOUBLE for mkl_sparse_d_qr

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

C_INT

Specifies the leading dimension of matrix b.

Output Parameters

x

C_FLOAT for mkl_sparse_s_qr; C_DOUBLE for mkl_sparse_d_qr

Contains the solution of system A*x = b.

stat

INTEGER

Value indicating whether the operation was successful, and if not, why:

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.