SRC/dpotri.f(3)

πŸ’… SRC/dpotri.f β€” from the LAPACK manual, bestie

okay so this is a page straight outta the LAPACK Library Functions Manual ✨ and it's all about one little subroutine that un-does a Cholesky factorization. yes. we're inverting a matrix. it's giving math girlboss and honestly? obsessed πŸŽ€


🌸 NAME 🌸

SRC/dpotri.f β€” the file where our main character lives 🫢


✨ SYNOPSIS ✨

πŸ¦‹ Functions/Subroutines

  • subroutine dpotri (uplo, n, a, lda, info) β€” the one, the only, DPOTRI πŸ’–

πŸ’œ Function/Subroutine Documentation πŸ’œ

subroutine dpotri (character uplo, integer n, double precision, dimension(
    lda, * ) a, integer lda, integer info)

so this is DPOTRI, the icon, the moment, the legend πŸ‘‘

🧚 Purpose:

!> !> DPOTRI computes the inverse of a real symmetric positive definite !> matrix A using the Cholesky factorization A = U**T*U or A = L*L**T !> computed by DPOTRF. !>

lowkey what this means: DPOTRI computes the inverse of a real symmetric positive definite matrix A, and it does that using the Cholesky factorization A = U**T*U or A = L*L**T β€” the one that DPOTRF already computed for you. so like, DPOTRF did the hard part, and DPOTRI finishes the job. team work makes the dream work fr fr 🌈


πŸ’– Parameters πŸ’–

πŸ’… UPLO

!> UPLO is CHARACTER*1 !> = 'U': Upper triangle of A is stored; !> = 'L': Lower triangle of A is stored. !>

UPLO is CHARACTER*1 and it's basically the vibe selector 😌

  • = 'U' β†’ the upper triangle of A is stored
  • = 'L' β†’ the lower triangle of A is stored

pick your fighter bestie, but only one ⭐

🌸 N

!> N is INTEGER !> The order of the matrix A. N >= 0. !>

N is an INTEGER β€” it's the order of the matrix A, and it must satisfy N >= 0. respect the constraint or don't come πŸ’€

πŸŽ€ A

!> A is DOUBLE PRECISION array, dimension (LDA,N) !> On entry, the triangular factor U or L from the Cholesky !> factorization A = U**T*U or A = L*L**T, as computed by !> DPOTRF. !> On exit, the upper or lower triangle of the (symmetric) !> inverse of A, overwriting the input factor U or L. !>

A is a DOUBLE PRECISION array, dimension (LDA,N), and it has a whole glow-up arc ✨

  • on entry β†’ it holds the triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T, exactly as computed by DPOTRF
  • on exit β†’ it holds the upper or lower triangle of the (symmetric) inverse of A, and it overwrites the input factor U or L

so yeah, your factor is gone, replaced by the inverse. not me destroying the evidence πŸ™ˆ

πŸ¦‹ LDA

!> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !>

LDA is an INTEGER β€” the leading dimension of the array A, and it has to be LDA >= max(1,N). no cap, max(1,N) is the floor 🫢

πŸ”₯ INFO

!> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> > 0: if INFO = i, the (i,i) element of the factor U or L is !> zero, and the inverse could not be computed. !>

INFO is an INTEGER and it's the vibe check at the end πŸ‘‘

  • = 0 β†’ successful exit, we ate πŸ’…
  • < 0 β†’ if INFO = -i, the i-th argument had an illegal value 😭
  • > 0 β†’ if INFO = i, the (i,i) element of the factor U or L is zero, and the inverse could not be computed πŸ’€
so like, if INFO > 0 the inverse literally could not be computed. that's not a warning to ignore, bestie β€” the answer does not exist 🚨

πŸ‘‘ Author πŸ‘‘

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

the whole squad showed up, we love a collab 🌈


⭐ Definition at line 94 of file dpotri.f. ⭐

literally line 94, go look, iykyk πŸ‘€


🧚 Author 🧚

Generated automatically by Doxygen for LAPACK from the source code. not a human, just a very efficient little robot doing its thing πŸ€–βœ¨


and that's the page!! πŸ’– this was LAPACK, Version 3.12.0, dated SRC/dpotri.f(3) β€” mwah, slay, periodt πŸ«ΆπŸŽ€

πŸ“¦ where this page comes from