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βUPLOisCHARACTER*1. it tells the routine which triangle ofAyou 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βNisINTEGER. the order of the matrixA. and the rule isN >= 0(zero is allowed, negative is not π).
!> N is INTEGER
!> The order of the matrix A. N >= 0.
!>
NRHSβNRHSisINTEGER. the number of right hand sides, i.e., the number of columns of the matrixB. alsoNRHS >= 0.
!> NRHS is INTEGER
!> The number of right hand sides, i.e., the number of columns
!> of the matrix B. NRHS >= 0.
!>
AβAisDOUBLE PRECISION array, dimension (LDA,N). this is the triangular factorUorLfrom the Cholesky factorizationA = U**T*UorA = L*L**T, exactly asDPOTRFcomputed 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βLDAisINTEGER. the leading dimension of the arrayA, and it has to satisfyLDA >= max(1,N).
!> LDA is INTEGER
!> The leading dimension of the array A. LDA >= max(1,N).
!>
BβBisDOUBLE PRECISION array, dimension (LDB,NRHS). this one's doing double duty, and honestly obsessed: on entry it's the right hand side matrixB, and on exit it's the solution matrixX. 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βLDBisINTEGER. the leading dimension of the arrayB, whereLDB >= max(1,N).
!> LDB is INTEGER
!> The leading dimension of the array B. LDB >= max(1,N).
!>
INFOβINFOisINTEGER. 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
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms