SRC/cgetrf.f(3)
π SRC/cgetrf.f
ok so this page is from the LAPACK manual (you'll see the version + date at the bottom, mwah) β it's the docs for a single routine, and bestie, it's lowkey iconic. Let's get into it β¨
β¨ SYNOPSIS
Functions/Subroutines
subroutine cgetrf (m, n, a, lda, ipiv, info)β the one and only,CGETRFπ
π«Ά Function/Subroutine Documentation
subroutine cgetrf (integer m, integer n, complex, dimension( lda, * ) a,
integer lda, integer, dimension( * ) ipiv, integer info)
CGETRF β say hi π
πΈ Purpose
!>
!> CGETRF computes an 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 > n), and U is upper
!> triangular (upper trapezoidal if m < n).
!>
!> This is the right-looking Level 3 BLAS version of the algorithm.
!>
so basically: it takes your general M-by-N matrix A and does an LU factorization with partial pivoting and row interchanges. The way it factors is
A = P * L * U
where P is a permutation matrix, L is lower triangular with unit diagonal elements (lower trapezoidal if m > n), and U is upper triangular (upper trapezoidal if m < n). and ngl, the cute little detail at the end: this is the right-looking Level 3 BLAS version of the algorithm. no cap π₯
π Parameters
M
!> M is INTEGER
!> The number of rows of the matrix A. M >= 0.
!>
the number of rows of A. must be M >= 0.
N
!> N is INTEGER
!> The number of columns of the matrix A. N >= 0.
!>
the number of columns of A. must be N >= 0.
A
!> A is COMPLEX 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.
!>
a COMPLEX array, dimension (LDA,N). On entry, it's the M-by-N matrix to be factored. On exit, it holds the factors L and U from A = P*L*U β and heads up, the unit diagonal elements of L are not stored π (they're implied, bestie, like a vibe).
LDA
!> LDA is INTEGER
!> The leading dimension of the array A. LDA >= max(1,M).
!>
the leading dimension of the array A. must satisfy LDA >= max(1,M).
IPIV
!> 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).
!>
an 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
!> 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.
!>
an INTEGER status report, and pls actually read it:
= 0: successful exit, we slayed β¨< 0: ifINFO = -i, the i-th argument had an illegal value π¨> 0: ifINFO = i, thenU(i,i)is exactly zero. The factorization has been completed, but the factorUis exactly singular, and division by zero will occur if you use it to solve a system of equations π
fr fr, if you get INFO > 0, don't just ignore it β the solve step after this will be a whole mess π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 107 of file cgetrf.f.
π¦ Author
Generated automatically by Doxygen for LAPACK from the source code.
ok that's the whole page, bestie β every flag, every bound, every pivot π
This was LAPACK Version 3.12.0, SRC/cgetrf.f(3), and that's the tea β Go factor something, ily π«Άπ
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms