/home/abui...RC/dptsv.f(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’… NAME

So this page is <pink>/home/abui...RC/dptsv.f(3)</pink> from the Library Functions Manual β€” and the file she's documenting is literally:

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dptsv.f

That's the whole path bestie, yes it's that long, no we're not shortening it. 🫢


✨ SYNOPSIS ✨

Functions/Subroutines

Ok so here's the little cast list, one entry:

subroutine DPTSV (n, nrhs, d, e, b, ldb, info)
     DPTSV computes the solution to system of linear equations A * X = B
    for PT matrices

That's it. One subroutine. One icon. She doesn't need a whole ensemble. πŸ‘‘


πŸŽ€ Function/Subroutine Documentation πŸŽ€

Here's the full signature, verbatim, because we do not play with argument order around here:

subroutine DPTSV (integer n, integer nrhs, double precision, dimension( * )
    d, double precision, dimension( * ) e, double precision, dimension( ldb,
    * ) b, integer ldb, integer info)

DPTSV computes the solution to system of linear equations A * X = B for PT matrices β€” that's the whole glow-up, that's the pitch, we love a concise queen.

🌸 Purpose 🌸

!> DPTSV computes the solution to a real system of linear equations !> A*X = B, where A is an N-by-N symmetric positive definite tridiagonal !> matrix, and X and B are N-by-NRHS matrices. !> !> A is factored as A = L*D*L**T, and the factored form of A is then !> used to solve the system of equations.

So basically: A is tridiagonal (only three cute little diagonals), symmetric, and positive definite. She factors it into L*D*L**T and then uses that factored form to solve A*X = B for you. Efficient? Slay. Extra matrix guts? None. Periodt. πŸ’–

🌈 Parameters 🌈

Timezone check, here's everyone in the group chat:

  • N β€” N is INTEGER. The order of the matrix A. Constraint: N >= 0. That's the vibe check on how big A is allowed to be.
  • NRHS β€” NRHS is INTEGER. The number of right hand sides, aka the number of columns of the matrix B (same thing, different outfit). Constraint: NRHS >= 0.
  • D β€” D is DOUBLE PRECISION array, dimension (N). On entry: the n diagonal elements of the tridiagonal matrix A. On exit: the n diagonal elements of the diagonal matrix D from the factorization A = L*D*L**T. So she checks in as A's diagonal and clocks out as D's diagonal. Main character transformation arc, honestly. πŸ’…
  • E β€” E is DOUBLE PRECISION array, dimension (N-1). On entry: the (n-1) subdiagonal elements of the tridiagonal matrix A. On exit: the (n-1) subdiagonal elements of the unit bidiagonal factor L from the L*D*L**T factorization of A. Also β€” no cap β€” E can also be regarded as the superdiagonal of the unit bidiagonal factor U from the U**T*D*U factorization of A. Versatile icon. πŸ¦‹
  • B β€” B is DOUBLE PRECISION array, dimension (LDB,NRHS). On entry: the N-by-NRHS right hand side matrix B. On exit, if INFO = 0: the N-by-NRHS solution matrix X. She literally becomes the answer. not me crying over a matrix πŸ’€
  • LDB β€” LDB is INTEGER. The leading dimension of the array B. Constraint: LDB >= max(1,N). Respect the leading dimension or she will not respect you back. πŸ™ˆ
  • INFO β€” INFO is INTEGER. The receipts:
    • = 0: successful exit. πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value. Somebody passed a bad argument, and INFO is naming names.
    • > 0: if INFO = i, the leading principal minor of order i is not positive, and the solution has not been computed. The factorization has not been completed unless i = N.
⚠️ Real talk: that INFO > 0 case means you get nothing. No solution. The factorization bailed unless i = N. If you see a positive INFO, do not go looking for your X matrix, she is not there. 😭

πŸ‘‘ Author πŸ‘‘

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

Four institutions, one subroutine. Collab of the century fr fr. 🫢

Definition at line 113 of file dptsv.f.

Yes, 113. Go look, she's right there, line 113, living her best life. ⭐


🧚 Author (the meta one)

Generated automatically by Doxygen for LAPACK, straight from the source code. Not a human, just a very diligent little robot doing its thing. Be nice to it. πŸ’œ


That's the whole page bestie β€” every flag, every array, every exit code, every author, all of it, nothing dropped. This is LAPACK, Version 3.12.0, and the page is <lavender>/home/abui...RC/dptsv.f(3)</lavender> β€” go forth, solve your tridiagonal systems, and remember: if INFO comes back positive, that's not a slay, that's a rerun. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from