TESTING/LIN/strt03.f(3)
π 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 whetherAis upper or lower triangular:= 'U':Upper triangular= 'L':Lower triangular
TRANSβTRANS is CHARACTER*1. It specifies the operation applied toA:= '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 matrixAis unit triangular:= 'N':Non-unit triangular= 'U':Unit triangular
NβN is INTEGER. The order of the matrixA.N >= 0.NRHSβNRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matricesXandB.NRHS >= 0.AβA is REAL array, dimension (LDA,N). The triangular matrixA. IfUPLO = 'U', the leading n by n upper triangular part of the arrayAcontains the upper triangular matrix, and the strictly lower triangular part ofAis not referenced. IfUPLO = 'L', the leading n by n lower 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 be 1.LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= max(1,N).SCALEβSCALE is REAL. The scaling factorsused in solving the triangular system.CNORMβCNORM is REAL array, dimension (N). The 1-norms of the columns ofA, not counting the diagonal.TSCALβTSCAL is REAL. The scaling factor used in computing the 1-norms inCNORM.CNORMactually contains the column norms ofTSCAL*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 arrayX.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 arrayB.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
- 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