hptrs(3)

πŸ’– hptrs(3) πŸ’–

(Library Functions Manual β€” yes bestie, we're in the packed-solve era πŸ’…)

✨ NAME ✨

hptrs β€” {hp,sp}trs: triangular solve using factor πŸŽ€

🌸 SYNOPSIS 🌸

🌟 Functions 🌟

  • subroutine chptrs (uplo, n, nrhs, ap, ipiv, b, ldb, info) β€” CHPTRS
  • subroutine csptrs (uplo, n, nrhs, ap, ipiv, b, ldb, info) β€” CSPTRS
  • subroutine dsptrs (uplo, n, nrhs, ap, ipiv, b, ldb, info) β€” DSPTRS
  • subroutine ssptrs (uplo, n, nrhs, ap, ipiv, b, ldb, info) β€” SSPTRS
  • subroutine zhptrs (uplo, n, nrhs, ap, ipiv, b, ldb, info) β€” ZHPTRS
  • subroutine zsptrs (uplo, n, nrhs, ap, ipiv, b, ldb, info) β€” ZSPTRS

πŸ¦‹ Detailed Description πŸ¦‹

Okay so this page is the glow-up for the packed triangular solves. The full function-by-function tea is right below πŸ‘‡

πŸ‘‘ Function Documentation πŸ‘‘

πŸŽ€ chptrs πŸŽ€

subroutine chptrs (character uplo, integer n, integer nrhs, complex, dimension( * ) ap, integer, dimension( * ) ipiv, complex, dimension( ldb, * ) b, integer ldb, integer info)

CHPTRS

πŸ’« Purpose

CHPTRS solves a system of linear equations A*X = B with a complex Hermitian matrix A stored in packed format using the factorization A = U*D*U**H or A = L*D*L**H computed by CHPTRF. πŸ’–

🧚 Parameters

  • UPLO β€” UPLO is CHARACTER*1. Specifies whether the details of the factorization are stored as an upper or lower triangular matrix. = 'U': Upper triangular, form is A = U*D*U**H; = 'L': Lower triangular, form is A = L*D*L**H.
  • N β€” 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. NRHS >= 0.
  • AP β€” AP is COMPLEX array, dimension (N*(N+1)/2). The block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by CHPTRF, stored as a packed triangular matrix.
  • IPIV β€” IPIV is INTEGER array, dimension (N). Details of the interchanges and the block structure of D as determined by CHPTRF.
  • B β€” B is COMPLEX 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. LDB >= max(1,N).
  • INFO β€” INFO is INTEGER. = 0: successful exit; < 0: if INFO = -i, the i-th argument had an illegal value.

🌈 Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 114 of file chptrs.f.


πŸŽ€ csptrs πŸŽ€

subroutine csptrs (character uplo, integer n, integer nrhs, complex, dimension( * ) ap, integer, dimension( * ) ipiv, complex, dimension( ldb, * ) b, integer ldb, integer info)

CSPTRS

πŸ’« Purpose

CSPTRS solves a system of linear equations A*X = B with a complex symmetric matrix A stored in packed format using the factorization A = U*D*U**T or A = L*D*L**T computed by CSPTRF. πŸ’–

🧚 Parameters

  • UPLO β€” UPLO is CHARACTER*1. Specifies whether the details of the factorization are stored as an upper or lower triangular matrix. = 'U': Upper triangular, form is A = U*D*U**T; = 'L': Lower triangular, form is A = L*D*L**T.
  • N β€” 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. NRHS >= 0.
  • AP β€” AP is COMPLEX array, dimension (N*(N+1)/2). The block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by CSPTRF, stored as a packed triangular matrix.
  • IPIV β€” IPIV is INTEGER array, dimension (N). Details of the interchanges and the block structure of D as determined by CSPTRF.
  • B β€” B is COMPLEX 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. LDB >= max(1,N).
  • INFO β€” INFO is INTEGER. = 0: successful exit; < 0: if INFO = -i, the i-th argument had an illegal value.

🌈 Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 114 of file csptrs.f.


πŸŽ€ dsptrs πŸŽ€

subroutine dsptrs (character uplo, integer n, integer nrhs, double precision, dimension( * ) ap, integer, dimension( * ) ipiv, double precision, dimension( ldb, * ) b, integer ldb, integer info)

DSPTRS

πŸ’« Purpose

DSPTRS solves a system of linear equations A*X = B with a real symmetric matrix A stored in packed format using the factorization A = U*D*U**T or A = L*D*L**T computed by DSPTRF. πŸ’–

🧚 Parameters

  • UPLO β€” UPLO is CHARACTER*1. Specifies whether the details of the factorization are stored as an upper or lower triangular matrix. = 'U': Upper triangular, form is A = U*D*U**T; = 'L': Lower triangular, form is A = L*D*L**T.
  • N β€” 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. NRHS >= 0.
  • AP β€” AP is DOUBLE PRECISION array, dimension (N*(N+1)/2). The block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by DSPTRF, stored as a packed triangular matrix.
  • IPIV β€” IPIV is INTEGER array, dimension (N). Details of the interchanges and the block structure of D as determined by DSPTRF.
  • B β€” 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. LDB >= max(1,N).
  • INFO β€” INFO is INTEGER. = 0: successful exit; < 0: if INFO = -i, the i-th argument had an illegal value.

🌈 Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 114 of file dsptrs.f.


πŸŽ€ ssptrs πŸŽ€

subroutine ssptrs (character uplo, integer n, integer nrhs, real, dimension( * ) ap, integer, dimension( * ) ipiv, real, dimension( ldb, * ) b, integer ldb, integer info)

SSPTRS

πŸ’« Purpose

SSPTRS solves a system of linear equations A*X = B with a real symmetric matrix A stored in packed format using the factorization A = U*D*U**T or A = L*D*L**T computed by SSPTRF. πŸ’–

🧚 Parameters

  • UPLO β€” UPLO is CHARACTER*1. Specifies whether the details of the factorization are stored as an upper or lower triangular matrix. = 'U': Upper triangular, form is A = U*D*U**T; = 'L': Lower triangular, form is A = L*D*L**T.
  • N β€” 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. NRHS >= 0.
  • AP β€” AP is REAL array, dimension (N*(N+1)/2). The block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by SSPTRF, stored as a packed triangular matrix.
  • IPIV β€” IPIV is INTEGER array, dimension (N). Details of the interchanges and the block structure of D as determined by SSPTRF.
  • B β€” B is REAL 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. LDB >= max(1,N).
  • INFO β€” INFO is INTEGER. = 0: successful exit; < 0: if INFO = -i, the i-th argument had an illegal value.

🌈 Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 114 of file ssptrs.f.


πŸŽ€ zhptrs πŸŽ€

subroutine zhptrs (character uplo, integer n, integer nrhs, complex*16, dimension( * ) ap, integer, dimension( * ) ipiv, complex*16, dimension( ldb, * ) b, integer ldb, integer info)

ZHPTRS

πŸ’« Purpose

ZHPTRS solves a system of linear equations A*X = B with a complex Hermitian matrix A stored in packed format using the factorization A = U*D*U**H or A = L*D*L**H computed by ZHPTRF. πŸ’–

🧚 Parameters

  • UPLO β€” UPLO is CHARACTER*1. Specifies whether the details of the factorization are stored as an upper or lower triangular matrix. = 'U': Upper triangular, form is A = U*D*U**H; = 'L': Lower triangular, form is A = L*D*L**H.
  • N β€” 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. NRHS >= 0.
  • AP β€”

πŸ’… the rest of the zhptrs params (yes bestie we're still going, hydrate)

  • AP β€” COMPLEX*16 array, dimension (N*(N+1)/2). This is where the block diagonal matrix D lives, plus the multipliers you used to get the factor U or L, exactly as ZHPTRF computed them, all squished into a packed triangular matrix. It's giving "everything in one bag" energy πŸ‘œ
  • IPIV β€” INTEGER array, dimension (N). The receipts for the interchanges and the block structure of D, as determined by ZHPTRF. iykyk πŸ”
  • B β€” COMPLEX*16 array, dimension (LDB,NRHS). On entry: the right hand side matrix B. On exit: plot twist, it's the solution matrix X 😭✨
  • LDB β€” INTEGER. The leading dimension of the array B. Constraint era: LDB >= max(1,N). Respect it or the routine is gonna be so disappointed in you πŸ’€
  • INFO β€” INTEGER. The vibe check at the end:
    • = 0: successful exit, slay πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value β€” so like, one of your args was Not It πŸ™ˆ

Author β€” Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver, NAG Ltd. (the whole academic squad, respectfully 🫢)

Definition at line 114 of file zhptrs.f. β€” yes, that exact line, no cap.


🌈 zsptrs (ZSPTRS) β€” the symmetric sibling 🌈

Okay so bestie, now we pivot to zsptrs, and the signature is a whole meal:

subroutine zsptrs (character uplo, integer n, integer nrhs, complex*16,
    dimension( * ) ap, integer, dimension( * ) ipiv, complex*16, dimension(
    ldb, * ) b, integer ldb, integer info)

✨ Purpose ✨

ZSPTRS solves a system of linear equations A*X = B with a complex symmetric matrix A stored in packed format, using the factorization A = U*D*U**T or A = L*D*L**T computed by ZSPTRF. Notice it's **T not **H β€” she's symmetric, not Hermitian, and she knows it πŸ’…

πŸŽ€ Parameters πŸŽ€

  • UPLO β€” CHARACTER*1. Tells us whether the details of the factorization are stored as an upper or lower triangular matrix.
    • = 'U': Upper triangular, form is A = U*D*U**T
    • = 'L': Lower triangular, form is A = L*D*L**T
  • N β€” INTEGER. The order of the matrix A. N >= 0. Zero is valid bestie, she's inclusive 🫢
  • NRHS β€” INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0. Same energy, also inclusive.
  • AP β€” COMPLEX*16 array, dimension (N*(N+1)/2). Again: the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by ZSPTRF, stored as a packed triangular matrix. Packed! Iconic behavior ✨
  • IPIV β€” INTEGER array, dimension (N). Details of the interchanges and the block structure of D as determined by ZSPTRF. The lore πŸ—‚οΈ
  • B β€” COMPLEX*16 array, dimension (LDB,NRHS). On entry, the right hand side matrix B. On exit, the solution matrix X. Same glow-up as before, main character transformation 😌
  • LDB β€” INTEGER. The leading dimension of the array B. LDB >= max(1,N). Non-negotiable, fr fr.
  • INFO β€” INTEGER. The final verdict:
    • = 0: successful exit πŸ”₯
    • < 0: if INFO = -i, the i-th argument had an illegal value. Somebody's getting read to filth πŸ’€

Author β€” Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver, NAG Ltd. (same iconic four, we love consistency πŸ’œ)

Definition at line 114 of file zsptrs.f. β€” line 114 hive rise up ⭐


One lil' note before you go: a bad INFO < 0 isn't a scandal, it literally just points at which argument was illegal β€” check the index i and go fix that arg, bestie. No panic spiraling needed 🧚

and that's the whole page, mwah πŸ’–

Author: Generated automatically by Doxygen for LAPACK from the source code. (yes, the doc wrote itself, queen behavior πŸ‘‘)

Sign-off: This absolute gem is LAPACK, Version 3.12.0, and you're reading the hptrs(3) page β€” go forth and solve your packed systems, you've got this πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from