SRC/ctbtrs.f(3)

🌸 NAME 🌸

SRC/ctbtrs.f β€” that's the name, bestie. And yes, we're in the Library Functions Manual, so you already know this is about to be some iconic LAPACK business. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

subroutine ctbtrs (uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, info)

CTBTRS β€” the subroutine herself, showing up to solve triangular band systems. ✨


✨ Function/Subroutine Documentation ✨

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 🎯

Okay so CTBTRS solves a triangular system that looks like one of these:

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. Periodt.

Real talk though: 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. That's the fine print, bestie.

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 the vibe check on your matrix first, fr fr.

🌈 Parameters 🌈

  • UPLO β€” UPLO is CHARACTER*1.
    • = '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 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. πŸ“

Yep β€” that's the exact spot: line 150 in ctbtrs.f. Noted and bookmarked, bestie.


πŸ–‹οΈ Author πŸ–‹οΈ

Generated automatically by Doxygen for LAPACK from the source code.


xoxo, your LAPACK bestie πŸ’– β€” LAPACK Version 3.12.0, SRC/ctbtrs.f(3). Slay. πŸ’…βœ¨

πŸ“¦ where this page comes from