TESTING/LIN/strt03.f(3)

πŸ“¦
version 3.12.1 Β· 2 versions
, in arch rolling

πŸ’– NAME

Okay bestie, this is TESTING/LIN/strt03.f β€” and the manual name is TESTING/LIN/strt03.f(3), straight out of the Library Functions Manual. It’s a LAPACK testing page, and the way it checks residuals is lowkey iconic. No cap.

✨ SYNOPSIS

🧚 Functions/Subroutines

One subroutine, and she’s the main character:

subroutine strt03 (uplo, trans, diag, n, nrhs, a, lda, scale, cnorm,
    tscal, x, ldx, b, ldb, work, resid)
    STRT03

πŸ¦‹ Function/Subroutine Documentation

Here’s the whole signature, preserved exactly because we do not play with code names:

subroutine strt03 (character uplo, character trans, character diag, integer
    n, integer nrhs, real, dimension( lda, * ) a, integer lda, real scale,
    real, dimension( * ) cnorm, real tscal, real, dimension( ldx, * ) x,
    integer ldx, real, dimension( ldb, * ) b, integer ldb, real, dimension(
    * ) work, real resid)
    STRT03

🌸 Purpose

The way that STRT03 works: it computes the residual for the solution to a scaled triangular system of equations A*x = s*b or A'*x = s*b. Here A is a triangular matrix, A' is the transpose of A, s is a scalar, and x and b are N by NRHS matrices. The test ratio is the maximum over the number of right hand sides of:

norm(s*b - op(A)*x) / ( norm(op(A)) * norm(x) * EPS )

where op(A) denotes A or A' and EPS is the machine epsilon. Obsessed.

πŸŽ€ Parameters

  • UPLO β€” UPLO is CHARACTER*1. It tells you whether A is upper or lower triangular:
    • = 'U': Upper triangular
    • = 'L': Lower triangular
  • TRANS β€” TRANS is CHARACTER*1. It specifies the operation applied to A:
    • = 'N': A *x = s*b (No transpose)
    • = 'T': A'*x = s*b (Transpose)
    • = 'C': A'*x = s*b (Conjugate transpose = Transpose)
  • DIAG β€” DIAG is CHARACTER*1. It specifies whether or not the matrix A is unit triangular:
    • = 'N': Non-unit triangular
    • = 'U': 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 matrices X and 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).
  • SCALE β€” SCALE is REAL. The scaling factor s used in solving the triangular system.
  • CNORM β€” CNORM is REAL array, dimension (N). The 1-norms of the columns of A, not counting the diagonal.
  • TSCAL β€” TSCAL is REAL. The scaling factor used in computing the 1-norms in CNORM. CNORM actually contains the column norms of TSCAL*A.
  • X β€” X is REAL array, dimension (LDX,NRHS). The computed solution vectors for the system of linear equations.
  • LDX β€” LDX is INTEGER. The leading dimension of the array X. LDX >= max(1,N).
  • B β€” B is REAL array, dimension (LDB,NRHS). The right hand side vectors for the system of linear equations.
  • LDB β€” LDB is INTEGER. The leading dimension of the array B. LDB >= max(1,N).
  • WORK β€” WORK is REAL array, dimension (N).
  • RESID β€” RESID is REAL. The maximum over the number of right hand sides of:
norm(op(A)*x - s*b) / ( norm(op(A)) * norm(x) * EPS )

πŸ‘‘ Author

These legends cooked:

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition at line 167 of file strt03.f.

πŸŽ€ Author

Generated automatically by Doxygen for LAPACK from the source code. Periodt.


Cute sign-off from the footer: LAPACK Β· Version 3.12.0 Β· TESTING/LIN/strt03.f(3). The footer date field isn’t shown, so I’m not inventing one β€” mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from