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 thatAis nonsingular β but be so for real right now: only exact singularity is detected. It is conceivable for one or more diagonal elements ofAto 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 matrixA.N >= 0.KDβKD is INTEGER. The number of superdiagonals or subdiagonals of the triangular band matrixA.KD >= 0.NRHSβNRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.ABβAB is COMPLEX 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βLDAB is INTEGER. The leading dimension of the arrayAB.LDAB >= KD+1.BβB is COMPLEX array, dimension (LDB,NRHS). On entry, the right hand side matrixB. On exit, ifINFO = 0, the solution matrixX.LDBβLDB is INTEGER. The leading dimension of the arrayB.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 thatAis nonsingular, but callers should note that only exact singularity is detected. It is conceivable for one or more diagonal elements ofAto 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 matrixA.N >= 0.KDβKD is INTEGER. The number of superdiagonals or subdiagonals of the triangular band matrixA.KD >= 0.NRHSβNRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.ABβAB is DOUBLE PRECISION 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βLDAB is INTEGER. The leading dimension of the arrayAB.LDAB >= KD+1.BβB is DOUBLE PRECISION array, dimension (LDB,NRHS). On entry, the right hand side matrixB. On exit, ifINFO = 0, the solution matrixX.LDBβLDB is INTEGER. The leading dimension of the arrayB.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 thatAis nonsingular, but callers should note that only exact singularity is detected. It is conceivable for one or more diagonal elements ofAto 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 matrixA.N >= 0.KDβKD is INTEGER. The number of superdiagonals or subdiagonals of the triangular band matrixA.KD >= 0.NRHSβNRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.ABβAB is REAL 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βLDAB is INTEGER. The leading dimension of the arrayAB.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 aREALarray, dimension(LDB,NRHS). On entry, bestie, this is the right hand side matrixB. On exit, ifINFO = 0, itβs the solution matrixX. β¨LDBβLDBisINTEGER. Itβs the leading dimension of the arrayB, and the vibe check isLDB >= max(1,N). πINFOβINFOisINTEGER, and its exit statuses are literally:= 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 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βUPLOisCHARACTER*1. The options are:= '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*16array, dimension(LDAB,N). Itβs 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)formax(1,j-kd)<=i<=j; - if
UPLO = 'L',AB(1+i-j,j) = A(i,j)forj<=i<=min(n,j+kd). IfDIAG = 'U', the diagonal elements ofAare not referenced and are assumed to be1. π
- if
LDABβLDABisINTEGER. The leading dimension of the arrayAB.LDAB >= KD+1. πBβBisCOMPLEX*16array, 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, and its exit codes are:= 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 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
- 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