SRC/cgetc2.f(3)

πŸ’… SRC/cgetc2.f β€” from the Library Functions Manual, bestie πŸŽ€

okay so this is a page straight out of the Library Functions Manual and it's literally all about one iconic little subroutine that does a full-pivot LU factorization. no cap, she's serving level 1 BLAS realness and we're gonna go through every single detail together. grab a strawberry drink πŸ“


✨ NAME ✨

SRC/cgetc2.f β€” that's her, that's the file. main character energy from the very first line 🫢


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine cgetc2 (n, a, lda, ipiv, jpiv, info) β€” CGETC2 computes the LU factorization with complete pivoting of the general n-by-n matrix.

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

subroutine cgetc2 (integer n, complex, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, integer, dimension( * ) jpiv, integer info)

CGETC2 computes the LU factorization with complete pivoting of the general n-by-n matrix.

πŸ’œ Purpose:

!>
!> CGETC2 computes an LU factorization, using complete pivoting, of the
!> n-by-n matrix A. The factorization has the form A = P * L * U * Q,
!> where P and Q are permutation matrices, L is lower triangular with
!> unit diagonal elements and U is upper triangular.
!>
!> This is a level 1 BLAS version of the algorithm.
!>

so yeah β€” A = P * L * U * Q, where P and Q are permutation matrices, L is lower triangular with unit diagonal elements, and U is upper triangular. and bestie, this is the level 1 BLAS version of the algorithm. iykyk ✨


πŸŽ€ Parameters

  • N
!>          N is INTEGER
!>          The order of the matrix A. N >= 0.
!>
  • A
!>          A is COMPLEX array, dimension (LDA, N)
!>          On entry, the n-by-n matrix to be factored.
!>          On exit, the factors L and U from the factorization
!>          A = P*L*U*Q; the unit diagonal elements of L are not stored.
!>          If U(k, k) appears to be less than SMIN, U(k, k) is given the
!>          value of SMIN, giving a nonsingular perturbed system.
!>
  • LDA
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1, N).
!>
  • IPIV
!>          IPIV is INTEGER array, dimension (N).
!>          The pivot indices; for 1 <= i <= N, row i of the
!>          matrix has been interchanged with row IPIV(i).
!>
  • JPIV
!>          JPIV is INTEGER array, dimension (N).
!>          The pivot indices; for 1 <= j <= N, column j of the
!>          matrix has been interchanged with column JPIV(j).
!>
  • INFO
!>          INFO is INTEGER
!>           = 0: successful exit
!>           > 0: if INFO = k, U(k, k) is likely to produce overflow if
!>                one tries to solve for x in Ax = b. So U is perturbed
!>                to avoid the overflow.
!>
πŸ’€ heads up: INFO > 0 isn't an error exactly β€” if INFO = k, then U(k, k) is likely to produce overflow if you try to solve for x in Ax = b, so U gets perturbed to dodge that overflow. she's being proactive, not messy πŸ™ˆ

πŸ‘‘ Author

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

🌈 Contributors:

Bo Kagstrom and Peter Poromaa, Department of Computing Science, Umea University, S-901 87 Umea, Sweden. 🧚 absolute legends, putting Umea on the map fr fr


⭐ Definition at line 110 of file cgetc2.f.


πŸ’– Author (again, yes, we stan a double credit)

Generated automatically by Doxygen for LAPACK from the source code.


ok that's the whole page, no details skipped, nothing invented, periodt πŸ’…

and a little sign-off for the footer, since you asked so nicely: this bad girl is LAPACK, Version 3.12.0, and the page is SRC/cgetc2.f(3) β€” go forth and pivot completely, bestie πŸ”₯🌸

πŸ“¦ where this page comes from