GETRF - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English
template<typename T>
void getrf(integer *m, integer *n, T *a, integer *lda, integer *ipiv, integer *info)#

LU factorization of a general m-by-n matrix a using partial pivoting with row interchanges.

Purpose:

    LU factorization of a general m-by-n matrix a using partial pivoting with row interchanges.
    The factorization has the form
        A = P * L * U
    where P is a permutation matrix, L is lower triangular with unit diagonal elements (lower
    trapezoidal if M >  , and U is upper triangular (upper trapezoidal if M < N).

    This is the right-looking Level 3 BLAS version of the algorithm.
Parameters:
  • m[in]

    m is integer*

    The number of rows of the matrix a. m >= 0.

  • n[in]

    n is integer*

    The number of columns of the matrix a. n >= 0.

  • a[inout]

    a is REAL/DOUBLE PRECISION/COMPLEX/COMPLEX*16 array, dimension (lda,n)

    On entry, the m-by-n matrix to be factored.

    On exit, the factors L and U from the factorization A = P*L*U; the unit diagonal elements of L are not stored.
  • lda[in]

    lda is integer*

    The leading dimension of the matrix a, lda >= fla_max(1,m)

  • ipiv[out]

    ipiv is integer array, dimension (min(m,n))

    The pivot indices; for 1 <= i <= min(m,n), row i of the matrix was interchanged with row ipiv(i).

  • INFO[out]

    INFO is INTEGER

    = 0: successful exit

    < 0: if INFO = -i, the i-th argument had an illegal value

    > 0: if INFO = i, U(i,i) is exactly zero. The factorization has been completed, but the factor U is exactly singular, and division by zero will occur if it is used to solve a system of equations.