SRC/dpotrs.f(3)

πŸ’– SRC/dpotrs.f πŸ’–

okay bestie, buckle up β€” this is a dpotrs.f page from the LAPACK manual (that's the library manual, not a section-3 standalone, iykyk), and it's honestly iconic. it's the "you already did the hard factorization, now just hand me the answer" routine. let's get into it 🫢


✨ SYNOPSIS ✨

🧚 Functions/Subroutines

  • subroutine dpotrs (uplo, n, nrhs, a, lda, b, ldb, info) β€” DPOTRS

🌸 Function/Subroutine Documentation 🌸

ok so here's the full signature, typed out exactly, no cap:

subroutine dpotrs (character uplo, integer n, integer nrhs, double
    precision, dimension( lda, * ) a, integer lda, double precision,
    dimension( ldb, * ) b, integer ldb, integer info)

DPOTRS πŸ’…

πŸŽ€ Purpose:

!>
!> DPOTRS solves a system of linear equations A*X = B with a symmetric
!> positive definite matrix A using the Cholesky factorization
!> A = U**T*U or A = L*L**T computed by DPOTRF.
!>

so literally: you've got A*X = B, A is symmetric positive definite, and you already ran DPOTRF to get the Cholesky factorization (A = U**T*U or A = L*L**T). hand that factor to this routine and it solves the system for you. main character energy fr 🌟


πŸ’œ Parameters πŸ’œ

  • UPLO β€” UPLO is CHARACTER*1. it tells the routine which triangle of A you actually stored:
!>          UPLO is CHARACTER*1
!>          = 'U':  Upper triangle of A is stored;
!>          = 'L':  Lower triangle of A is stored.
!>

pick 'U' for upper, 'L' for lower. choose wisely bestie πŸ¦‹

  • N β€” N is INTEGER. the order of the matrix A. and the rule is N >= 0 (zero is allowed, negative is not πŸ™ˆ).
!>          N is INTEGER
!>          The order of the matrix A.  N >= 0.
!>
  • NRHS β€” NRHS is INTEGER. the number of right hand sides, i.e., the number of columns of the matrix B. also NRHS >= 0.
!>          NRHS is INTEGER
!>          The number of right hand sides, i.e., the number of columns
!>          of the matrix B.  NRHS >= 0.
!>
  • A β€” A is DOUBLE PRECISION array, dimension (LDA,N). this is the triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T, exactly as DPOTRF computed it. no re-deriving, just pass it through πŸ’–
!>          A is DOUBLE PRECISION array, dimension (LDA,N)
!>          The triangular factor U or L from the Cholesky factorization
!>          A = U**T*U or A = L*L**T, as computed by DPOTRF.
!>
  • LDA β€” LDA is INTEGER. the leading dimension of the array A, and it has to satisfy LDA >= max(1,N).
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,N).
!>
  • B β€” B is DOUBLE PRECISION array, dimension (LDB,NRHS). this one's doing double duty, and honestly obsessed: on entry it's the right hand side matrix B, and on exit it's the solution matrix X. it gets overwritten in place, so don't be surprised πŸŽ€
!>          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
!>          On entry, the right hand side matrix B.
!>          On exit, the solution matrix X.
!>
  • LDB β€” LDB is INTEGER. the leading dimension of the array B, where LDB >= max(1,N).
!>          LDB is INTEGER
!>          The leading dimension of the array B.  LDB >= max(1,N).
!>
  • INFO β€” INFO is INTEGER. the vibe check at the end πŸ‘‘:
!>          INFO is INTEGER
!>          = 0:  successful exit
!>          < 0:  if INFO = -i, the i-th argument had an illegal value
!>

so 0 means slayed, and anything negative means argument number i was a problem child (note the -i indexing β€” it tells you which argument, that's the useful part).


🌈 Author 🌈

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

Definition at line 109 of file dpotrs.f.


⭐ Author ⭐

Generated automatically by Doxygen for LAPACK from the source code. (yes, the robot wrote it, not a person β€” it's giving generated-docs realness πŸ’€βœ¨)


πŸ’€ quick reminder: this page is auto-generated documentation, so the source code is the actual source of truth. no invented behaviour here, bestie β€” everything above is straight from the page.

and that's the whole page!! tysm for reading, you're officially a Cholesky solver now πŸ§šβ€β™€οΈπŸ’– this was LAPACK, Version 3.12.0, page SRC/dpotrs.f(3) β€” mwah, see you in the next manpage πŸŽ€πŸ«Ά

πŸ“¦ where this page comes from