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_?getrfnp

Computes the LU factorization of a general m-by-n matrix without pivoting.

Syntax

lapack_int LAPACKE_mkl_sgetrfnp (int matrix_layout , lapack_int m , lapack_int n , float * a , lapack_int lda );

lapack_int LAPACKE_mkl_dgetrfnp (int matrix_layout , lapack_int m , lapack_int n , double * a , lapack_int lda );

lapack_int LAPACKE_mkl_cgetrfnp (int matrix_layout , lapack_int m , lapack_int n , lapack_complex_float * a , lapack_int lda );

lapack_int LAPACKE_mkl_zgetrfnp (int matrix_layout , lapack_int m , lapack_int n , lapack_complex_double * a , lapack_int lda );

Include Files

  • mkl.h

Description

The routine computes the LU factorization of a general m-by-n matrix A as

A = L*U,

where L is lower triangular with unit-diagonal elements (lower trapezoidal if m > n) and U is upper triangular (upper trapezoidal if m < n). The routine does not use pivoting.

Input Parameters

matrix_layout

Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR).

m

The number of rows in the matrix A (m 0).

n

The number of columns in A; n 0.

a

Array, size at least max(1, lda*n) for column-major layout or max(1, lda*m) for row-major layout. Contains the matrix A.

lda

The leading dimension of array a, which must be at least max(1, m) for column-major layout or max(1, n) for row-major layout.

Output Parameters

a

Overwritten by L and U. The unit diagonal elements of L are not stored.

Return Values

This function returns a value info.

If info=0, the execution is successful.

If info = -i, parameter i had an illegal value.

If info = i, uii is 0. The factorization has been completed, but U is exactly singular. Division by 0 will occur if you use the factor U for solving a system of linear equations.

Application Notes

The approximate number of floating-point operations for real flavors is

(2/3)n3

If m = n,

(1/3)n2(3m-n)

If m>n,

(1/3)m2(3n-m)

If m<n.

The number of operations for complex flavors is four times greater.

After calling this routine with m = n, you can call the following:

mkl_?getrinp

to compute the inverse of A