SRC/sgetrf2.f(3)

✨ SRC/sgetrf2.f(3) ✨ β€” like, the whole LAPACK Library Functions Manual vibe πŸ’…

okay bestie, so this one is SRC/sgetrf2.f(3), a manual page from the LAPACK Library Functions Manual, and it's literally the glow-up doc for one very recursive little Fortran subroutine. buckle up πŸŽ€


🌸 NAME 🌸

SRC/sgetrf2.f β€” yes, that's the whole name, she's lowkey mysterious like that πŸ¦‹


🫢 SYNOPSIS 🫢

Functions/Subroutines

  • recursive subroutine sgetrf2 (m, n, a, lda, ipiv, info) β€” SGETRF2, that's her πŸ‘‘

πŸ’– Function/Subroutine Documentation πŸ’–

recursive subroutine sgetrf2 (integer m, integer n, real, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, integer info)

SGETRF2 ✨ (yes the recursion in the signature is real, she contains multitudes)

🎯 Purpose

SGETRF2 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). no cap, that's the whole deal πŸ’œ

this is the recursive version of the algorithm. it divides the matrix into four submatrices, like so:

     [  A11 | A12  ]  where A11 is n1 by n1 and A22 is n2 by n2
 A = [ -----|----- ]  with n1 = min(m,n)/2
     [  A21 | A22  ]       n2 = n-n1

and then, bestie, it does this:

                                   [ A11 ]
The subroutine calls itself to factor [ --- ],
                                   [ A12 ]
              [ A12 ]
do the swaps on [ --- ], solve A12, update A22,
              [ A22 ]

then calls itself to factor A22 and do the swaps on A21.

she literally calls herself. main character energy fr fr 😭πŸ”₯


🌈 Parameters 🌈

  • M

M is INTEGER the number of rows of the matrix A. M >= 0. πŸ“

  • N

N is INTEGER the number of columns of the matrix A. N >= 0. πŸ“

  • A

A is REAL 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. (she's minimal, she's efficient πŸ’…)

  • LDA

LDA is INTEGER the leading dimension of the array A. 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). πŸ”„

  • 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. πŸ’€

πŸ‘‘ Author

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

Definition at line 112 of file sgetrf2.f. πŸ“


πŸ’œ Author (the meta one) πŸ’œ

Generated automatically by Doxygen for LAPACK from the source code. (she didn't write herself, a robot did, and honestly? iconic πŸ€–βœ¨)


and that's the whole page, bestie β€” no notes, she ate and left absolutely no crumbs πŸ§šπŸ’–

LAPACK Β· Version 3.12.0 Β· SRC/sgetrf2.f(3) β€” mwah, signed, sealed, and delivered with love πŸŽ€πŸ«ΆπŸ’…

πŸ“¦ where this page comes from