SRC/strtrs.f(3)
π NAME π
SRC/strtrs.f
okay so this is SRC/strtrs.f(3) from the Library Functions Manual β bestie, we're in Fortran linear algebra land and the vibes are immaculate. β¨
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine strtrs (uplo, trans, diag, n, nrhs, a, lda, b, ldb, info)βSTRTRS
π Function/Subroutine Documentation π
subroutine strtrs
subroutine strtrs (character uplo, character trans, character diag, integer n, integer nrhs, real, dimension( lda, * ) a, integer lda, real, dimension( ldb, * ) b, integer ldb, integer info)
STRTRS
Purpose
okay so STRTRS solves a triangular system of the form
A * X = B or A**T * X = B,
where A is a triangular 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.
bestie, this is the important part: it catches exact singularity only. Tiny diagonal elements can slip by without an error, so if near-singular precision is a worry, do your own tolerance check before calling. π
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 = 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.
- The order of the matrix
NRHSβNRHS is INTEGER- The number of right hand sides, i.e., the number of columns of the matrix
B.NRHS >= 0.
- The number of right hand sides, i.e., the number of columns of the matrix
AβA is REAL array, dimension (LDA,N)- The triangular matrix
A. IfUPLO = 'U', the leadingN-by-Nupper triangular part of the arrayAcontains the upper triangular matrix, and the strictly lower triangular part ofAis not referenced. IfUPLO = 'L', the leadingN-by-Nlower triangular part of the arrayAcontains the lower triangular matrix, and the strictly upper triangular part ofAis not referenced. IfDIAG = 'U', the diagonal elements ofAare also not referenced and are assumed to be1.
- The triangular matrix
LDAβLDA is INTEGER- The leading dimension of the array
A.LDA >= max(1,N).
- The leading dimension of the array
BβB is REAL array, dimension (LDB,NRHS)- On entry, the right hand side matrix
B. - On exit, if
INFO = 0, the solution matrixX.
- On entry, the right hand side matrix
LDBβLDB is INTEGER- The leading dimension of the array
B.LDB >= max(1,N).
- The leading dimension of the array
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 144 of file strtrs.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
okay bestie, that's the whole page. Cute sign-off time: this is LAPACK Version 3.12.0, and we're closing out SRC/strtrs.f(3) β go solve those triangular systems responsibly. πβ¨
π¦ 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