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.
  • NRHS β€” NRHS is INTEGER
    • The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
  • A β€” A is REAL array, dimension (LDA,N)
    • The triangular matrix A. If UPLO = 'U', the leading N-by-N upper triangular part of the array A contains the upper triangular matrix, and the strictly lower triangular part of A is not referenced. If UPLO = 'L', the leading N-by-N lower triangular part of the array A contains the lower triangular matrix, and the strictly upper triangular part of A is not referenced. If DIAG = 'U', the diagonal elements of A are also not referenced and are assumed to be 1.
  • LDA β€” LDA is INTEGER
    • The leading dimension of the array A. LDA >= max(1,N).
  • B β€” B is REAL 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 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