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βUPLOisCHARACTER*1.= 'U':Ais upper triangular;= 'L':Ais lower triangular.
TRANSβTRANSisCHARACTER*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βDIAGisCHARACTER*1.= 'N':Ais non-unit triangular;= 'U':Ais unit triangular.
NβNisINTEGER. The order of the matrixA.N >= 0.KDβKDisINTEGER. The number of superdiagonals or subdiagonals of the triangular band matrixA.KD >= 0.NRHSβNRHSisINTEGER. The number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.ABβABisCOMPLEX array, dimension (LDAB,N). The upper or lower triangular band matrixA, stored in the firstkd+1rows ofAB. Thej-th column ofAis stored in thej-th column of the arrayABas 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βLDABisINTEGER. The leading dimension of the arrayAB.LDAB >= KD+1.BβBisCOMPLEX array, dimension (LDB,NRHS). On entry, the right hand side matrixB. On exit, ifINFO = 0, the solution matrixX.LDBβLDBisINTEGER. The leading dimension of the arrayB.LDB >= max(1,N).INFOβINFOisINTEGER.= 0: successful exit< 0: ifINFO = -i, thei-th argument had an illegal value> 0: ifINFO = i, thei-th diagonal element ofAis exactly zero, indicating that the matrix is singular and the solutionsXhave 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
- 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