SRC/dgetc2.f(3)

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

okay so. gather round. this is the page for dgetc2, and yes it's giving "fortran from another era" but it's also genuinely iconic, so let's get into it πŸŽ€


✨ NAME ✨

SRC/dgetc2.f β€” bestie, that's the whole name. short, sweet, to the point πŸ’…


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine dgetc2 (n, a, lda, ipiv, jpiv, info) β€” DGETC2 computes the LU factorization with complete pivoting of the general n-by-n matrix. that's the whole vibe πŸ”₯

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

subroutine dgetc2 (integer n, double precision, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, integer, dimension( * ) jpiv, integer info)

subroutine dgetc2 (integer n, double precision, dimension( lda, * ) a,
    integer lda, integer, dimension( * ) ipiv, integer, dimension( * ) jpiv,
    integer info)

DGETC2 computes the LU factorization with complete pivoting of the general n-by-n matrix. no cap, that's what it does πŸ’–


🧚 Purpose 🧚

okay so here's the tea: DGETC2 computes an LU factorization with 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. everyone say thank you permutation matrices πŸ™

and like β€” heads up β€” this is the Level 2 BLAS algorithm. that's literally what it says, so don't come for me ⭐


πŸ‘‘ Parameters πŸ‘‘

N

N is INTEGER. it's the order of the matrix A. and N >= 0 β€” respect the constraint bestie 🫢

A

A is DOUBLE PRECISION array, dimension (LDA, N).

  • on entry: the n-by-n matrix A 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.

and here's the little plot twist 😭 β€” if U(k, k) appears to be less than SMIN, then U(k, k) is given the value of SMIN, i.e., giving a nonsingular perturbed system. sneaky but valid πŸ’…

LDA

LDA is INTEGER. it's the leading dimension of the array A. and LDA >= max(1,N) β€” that's the rule, don't fight it ✨

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). rows moving around, living their best life πŸ¦‹

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). the columns were not about to be left out πŸ™ˆ

INFO

INFO is INTEGER.

  • = 0: successful exit β€” we LOVE to see it 🌈
  • > 0: if INFO = k, U(k, k) is likely to produce overflow if we try to solve for x in Ax = b. so U is perturbed to avoid the overflow.
πŸ’€ real talk: that nonzero INFO isn't a crash, it's a warning that the factorization got nudged so the solve doesn't blow up. still β€” pay attention.

πŸŽ€ 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, we stan 🫢


⭐ Definition at line 110 of file dgetc2.f. ⭐


🌸 Author 🌸

Generated automatically by Doxygen for LAPACK from the source code. not a human, just vibes and a doc generator 🧚


and that's the whole page bestie!! this beauty ships with LAPACK, Version 3.12.0 β€” SRC/dgetc2.f(3), that's the one. slay, stay pivoted, see you at the next factorization πŸ’…βœ¨πŸ“

πŸ“¦ where this page comes from