-
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.