Developer Reference for Intel® oneAPI Math Kernel Library for C
A newer version of this document is available. Customers should click here to go to the newest version.
mkl_sparse_?_qr
Computes the QR decomposition for the matrix of a sparse linear system and calculates the solution.
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
- mkl_sparse_qr.h
 
Description
The mkl_sparse_?_qr routine computes the QR decomposition for the matrix of a sparse linear system A*x = b, so that A = Q*R where Q is the orthogonal matrix and R is upper triangular, and calculates the solution.
Currently, mkl_sparse_?_qr supports only square and overdetermined systems. For underdetermined systems you can manually transpose the system matrix and use QR decomposition for AT to get the minimum-norm solution for the original underdetermined system.
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.