ZGETRF(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

✨ ZGETRF(3) ✨

okay bestie, gather round, we're doing a LAPACK deep-dive πŸ’… this one lives in the Library Functions Manual, and the actual file it's documenting is:

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zgetrf.f

yes that's a whole path, no i will not be shortening it, the path is iconic and we respect it 🫢


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine ZGETRF (m, n, a, lda, ipiv, info)

ZGETRF β€” that's the main character, that's her name πŸ’–


πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine ZGETRF (integer m, integer n, complex*16, dimension( lda, * ) a,
    integer lda, integer, dimension( * ) ipiv, integer info)

ZGETRF 😌✨

πŸŽ€ Purpose πŸŽ€

!> !> ZGETRF 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 literally what it does is take your general M-by-N matrix A and factorize it as A = P * L * U using partial pivoting with row interchanges, no cap πŸ”₯ P is a permutation matrix, L is lower triangular with unit diagonal elements (lower trapezoidal if m > n, she contains multitudes), and U is upper triangular (upper trapezoidal if m < n). and the whole thing is the right-looking Level 3 BLAS version of the algorithm β€” highkey the fast one, we love her πŸ’…


🌈 Parameters 🌈

  • M β€” integer, and it's the number of rows of the matrix A. must satisfy M >= 0. zero rows? valid. slay.
!>          M is INTEGER
!>          The number of rows of the matrix A.  M >= 0.
  • N β€” integer, the number of columns of the matrix A. must satisfy N >= 0. same energy.
!>          N is INTEGER
!>          The number of columns of the matrix A.  N >= 0.
  • A β€” COMPLEX*16 array, dimension (LDA,N). on entry it's the M-by-N matrix you want factored, and on exit it holds the factors L and U from the factorization A = P*L*U. caveat bestie: the unit diagonal elements of L are not stored β€” they're implied, we don't waste memory on ones πŸ™ˆ
!>          A is 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 β€” integer, the leading dimension of the array A. must satisfy LDA >= max(1,M). periodt.
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,M).
  • IPIV β€” 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). that's the receipts of every swap, keep them πŸŽ€
!>          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 β€” integer, the vibe check on how it went:
    • = 0: successful exit, we ate πŸ’…
    • < 0: if INFO = -i, the i-th argument had an illegal value β€” you passed something cursed 😭
    • > 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. not a drill, that's undefined-behaviour-adjacent behaviour, be careful fr fr πŸ’€
!>          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.

πŸ‘‘ Author πŸ‘‘

the legends themselves:

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

πŸ’œ Definition πŸ’œ

at line 107 of file zgetrf.f. iykyk πŸ“


⭐ Author ⭐

Generated automatically by Doxygen for LAPACK from the source code πŸ€– (yes the robots wrote the docs, we still stan)


and that's the whole page bestie πŸ§šπŸ’– brought to you by LAPACK, Version 3.12.0, straight out of /home/abui...RC/zgetrf.f(3) β€” go factorize something gorgeous today πŸŒΈπŸ¦‹πŸ’…

πŸ“¦ where this page comes from