tbtrs(3)

πŸ¦‹ tbtrs(3) β€” triangular solve, but make it a whole vibe

okay so bestie, you found the page for tbtrs β€” family name triangular solve β€” and it's giving "four Fortran subroutines who all do the same glow-up in different precisions." πŸ’… Let's get into it.


πŸŽ€ NAME

tbtrs β€” it's literally right there in the name: tbtrs: triangular solve. no cap.


✨ SYNOPSIS

🧚 Functions

subroutine ctbtrs (uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, info)
subroutine dtbtrs (uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, info)
subroutine stbtrs (uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, info)
subroutine ztbtrs (uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, info)
  • CTBTRS 🌸
  • DTBTRS πŸ¦‹
  • STBTRS ✨
  • ZTBTRS πŸ’œ

πŸ“š Detailed Description

This is the part where the docs usually say something mysterious and dip. The actual tea is all down in the function docs, bestie β€” scroll with me. πŸ‘‡


πŸ”₯ Function Documentation

πŸ’– subroutine ctbtrs

subroutine ctbtrs (character uplo, character trans, character diag, integer n, integer kd,
    integer nrhs, complex, dimension( ldab, * ) ab, integer ldab,
    complex, dimension( ldb, * ) b, integer ldb, integer info)

CTBTRS πŸ’…

🎯 Purpose

CTBTRS solves a triangular system of the form

A * X = B,  A**T * X = B,  or  A**H * X = B,

where A is a triangular band matrix of order N, and B is an N-by-NRHS matrix.

🫢 okay so this subroutine does verify that A is nonsingular β€” but be so for real right now: only exact singularity is detected. It is conceivable for one or more diagonal elements of A to be subnormally tiny numbers without this subroutine signalling an error. 😭
⚠️ If a possible loss of numerical precision due to near-singular matrices is a concern, the caller should verify that A is nonsingular within some tolerance before calling this subroutine. protect your precision bestie!!

🧾 Parameters

  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': A is upper triangular;
    • = 'L': A is lower triangular.
  • TRANS β€” TRANS is CHARACTER*1. Specifies the form of the system of equations:
    • = 'N': A * X = B (No transpose)
    • = 'T': A**T * X = B (Transpose)
    • = 'C': A**H * X = B (Conjugate transpose)
  • DIAG β€” DIAG is CHARACTER*1
    • = 'N': A is non-unit triangular;
    • = 'U': A is unit triangular.
  • N β€” N is INTEGER. The order of the matrix A. N >= 0.
  • KD β€” KD is INTEGER. The number of superdiagonals or subdiagonals of the triangular band matrix A. KD >= 0.
  • NRHS β€” NRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
  • AB β€” AB is COMPLEX array, dimension (LDAB,N). The upper or lower triangular band matrix A, stored in the first kd+1 rows of AB. The j-th column of A is stored in the j-th column of the array AB as follows:
    • if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
    • if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd).

If DIAG = 'U', the diagonal elements of A are not referenced and are assumed to be 1.

  • LDAB β€” LDAB is INTEGER. The leading dimension of the array AB. LDAB >= KD+1.
  • B β€” B is COMPLEX array, dimension (LDB,NRHS). On entry, the right hand side matrix B. On exit, if INFO = 0, 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
    • > 0: if INFO = i, the i-th diagonal element of A is exactly zero, indicating that the matrix is singular and the solutions X have not been computed. πŸ’€

πŸ‘‘ Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 150 of file ctbtrs.f. ⭐


πŸ¦‹ subroutine dtbtrs

subroutine dtbtrs (character uplo, character trans, character diag, integer n, integer kd,
    integer nrhs, double precision, dimension( ldab, * ) ab, integer ldab,
    double precision, dimension( ldb, * ) b, integer ldb, integer info)

DTBTRS πŸ’œ

🎯 Purpose

DTBTRS solves a triangular system of the form

A * X = B  or  A**T * X = B,

where A is a triangular band matrix of order N, and B is an N-by-NRHS matrix.

🫢 again with the fine print: this subroutine verifies that A is nonsingular, but callers should note that only exact singularity is detected. It is conceivable for one or more diagonal elements of A to be subnormally tiny numbers without this subroutine signalling an error. πŸ™ˆ
⚠️ If a possible loss of numerical precision due to near-singular matrices is a concern, the caller should verify that A is nonsingular within some tolerance before calling this subroutine. do it, bestie, your digits will thank you.

🧾 Parameters

  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': A is upper triangular;
    • = 'L': A is lower triangular.
  • TRANS β€” TRANS is CHARACTER*1. Specifies the form the system of equations:
    • = 'N': A * X = B (No transpose)
    • = 'T': A**T * X = B (Transpose)
    • = 'C': A**H * X = B (Conjugate transpose = Transpose)
  • DIAG β€” DIAG is CHARACTER*1
    • = 'N': A is non-unit triangular;
    • = 'U': A is unit triangular.
  • N β€” N is INTEGER. The order of the matrix A. N >= 0.
  • KD β€” KD is INTEGER. The number of superdiagonals or subdiagonals of the triangular band matrix A. KD >= 0.
  • NRHS β€” NRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
  • AB β€” AB is DOUBLE PRECISION array, dimension (LDAB,N). The upper or lower triangular band matrix A, stored in the first kd+1 rows of AB. The j-th column of A is stored in the j-th column of the array AB as follows:
    • if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
    • if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd).

If DIAG = 'U', the diagonal elements of A are not referenced and are assumed to be 1.

  • LDAB β€” LDAB is INTEGER. The leading dimension of the array AB. LDAB >= KD+1.
  • B β€” B is DOUBLE PRECISION array, dimension (LDB,NRHS). On entry, the right hand side matrix B. On exit, if INFO = 0, 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
    • > 0: if INFO = i, the i-th diagonal element of A is exactly zero, indicating that the matrix is singular and the solutions X have not been computed. πŸ’€

πŸ‘‘ Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 150 of file dtbtrs.f. ⭐


✨ subroutine stbtrs

subroutine stbtrs (character uplo, character trans, character diag, integer n, integer kd,
    integer nrhs, real, dimension( ldab, * ) ab, integer ldab,
    real, dimension( ldb, * ) b, integer ldb, integer info)

STBTRS 🌸

🎯 Purpose

STBTRS solves a triangular system of the form

A * X = B  or  A**T * X = B,

where A is a triangular band matrix of order N, and B is an N-by-NRHS matrix.

🫢 say it with me: this subroutine verifies that A is nonsingular, but callers should note that only exact singularity is detected. It is conceivable for one or more diagonal elements of A to be subnormally tiny numbers without this subroutine signalling an error. 😭
⚠️ If a possible loss of numerical precision due to near-singular matrices is a concern, the caller should verify that A is nonsingular within some tolerance before calling this subroutine.

🧾 Parameters

  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': A is upper triangular;
    • = 'L': A is lower triangular.
  • TRANS β€” TRANS is CHARACTER*1. Specifies the form the system of equations:
    • = 'N': A * X = B (No transpose)
    • = 'T': A**T * X = B (Transpose)
    • = 'C': A**H * X = B (Conjugate transpose = Transpose)
  • DIAG β€” DIAG is CHARACTER*1
    • = 'N': A is non-unit triangular;
    • = 'U': A is unit triangular.
  • N β€” N is INTEGER. The order of the matrix A. N >= 0.
  • KD β€” KD is INTEGER. The number of superdiagonals or subdiagonals of the triangular band matrix A. KD >= 0.
  • NRHS β€” NRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
  • AB β€” AB is REAL array, dimension (LDAB,N). The upper or lower triangular band matrix A, stored in the first kd+1 rows of AB. The j-th column of A is stored in the j-th column of the array AB as follows:
    • if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
    • if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd).

If DIAG = 'U', the diagonal elements of A are not referenced and are assumed to be 1.

  • LDAB β€” LDAB is INTEGER. The leading dimension of the array AB. LDAB >= KD+1.
  • B β€” 🫢 and the page literally drops the mic right here bestie β€” B's full deets roll in with part 2, don't leave me hanging πŸ’–
  • B β€” it’s a REAL array, dimension (LDB,NRHS). On entry, bestie, this is the right hand side matrix B. On exit, if INFO = 0, it’s the solution matrix X. ✨
  • LDB β€” LDB is INTEGER. It’s the leading dimension of the array B, and the vibe check is LDB >= max(1,N). πŸ’…
  • INFO β€” INFO is INTEGER, and its exit statuses are literally:
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value 🚩
    • > 0: if INFO = i, the i-th diagonal element of A is exactly zero, indicating that the matrix is singular and the solutions X have not been computed. πŸ’€

πŸ‘‘ Author πŸ‘‘

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

Definition at line 150 of file stbtrs.f. πŸ’–


πŸ¦‹ subroutine ztbtrs πŸ¦‹

   subroutine ztbtrs (character uplo, character trans, character diag, integer
       n, integer kd, integer nrhs, complex*16, dimension( ldab, * ) ab,
       integer ldab, complex*16, dimension( ldb, * ) b, integer ldb, integer
       info)
       ZTBTRS

✨ Purpose ✨

Okay so ZTBTRS solves a triangular system of the form

   A * X = B,  A**T * X = B,  or  A**H * X = B,

where A is a triangular band matrix of order N, and B is an N-by-NRHS matrix. 🫢

This subroutine verifies that A is nonsingular, but callers should note that only exact singularity is detected. It is conceivable for one or more diagonal elements of A to be subnormally tiny numbers without this subroutine signalling an error. 😭

If a possible loss of numerical precision due to near-singular matrices is a concern, the caller should verify that A is nonsingular within some tolerance before calling this subroutine. ⚠️

🌸 Parameters 🌸

  • UPLO β€” UPLO is CHARACTER*1. The options are:
    • = 'U': A is upper triangular;
    • = 'L': A is lower triangular. πŸ’œ
  • TRANS β€” TRANS is CHARACTER*1. It specifies the form of the system of equations:
    • = 'N': A * X = B (No transpose)
    • = 'T': A**T * X = B (Transpose)
    • = 'C': A**H * X = B (Conjugate transpose* πŸ”₯
  • DIAG β€” DIAG is CHARACTER*1:
    • = 'N': A is non-unit triangular;
    • = 'U': A is unit triangular. πŸŽ€
  • N β€” N is INTEGER. The order of the matrix A. N >= 0. ✨
  • KD β€” KD is INTEGER. The number of superdiagonals or subdiagonals of the triangular band matrix A. KD >= 0. πŸ¦‹
  • NRHS β€” NRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0. πŸ’…
  • AB β€” AB is COMPLEX*16 array, dimension (LDAB,N). It’s the upper or lower triangular band matrix A, stored in the first kd+1 rows of AB. The j-th column of A is stored in the j-th column of the array AB as follows:
    • if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
    • if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd). If DIAG = 'U', the diagonal elements of A are not referenced and are assumed to be 1. πŸ‘‘
  • LDAB β€” LDAB is INTEGER. The leading dimension of the array AB. LDAB >= KD+1. 🌈
  • B β€” B is COMPLEX*16 array, dimension (LDB,NRHS). On entry, the right hand side matrix B. On exit, if INFO = 0, the solution matrix X. πŸ’–
  • LDB β€” LDB is INTEGER. The leading dimension of the array B. LDB >= max(1,N). πŸ’«
  • INFO β€” INFO is INTEGER, and its exit codes are:
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value 🚩
    • > 0: if INFO = i, the i-th diagonal element of A is exactly zero, indicating that the matrix is singular and the solutions X have not been computed. πŸ’€

πŸ‘‘ Author πŸ‘‘

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

Definition at line 150 of file ztbtrs.f. πŸ’œ


🌟 Author 🌟

Generated automatically by Doxygen for LAPACK from the source code. 🫢

That’s the whole thing, bestie β€” source/version LAPACK Version 3.12.0, footer vibe tbtrs(3), and all the Doxygen-generated realness. Periodt. πŸ’…πŸ’–

πŸ“¦ where this page comes from