/home/abui.../ddrvrfp.f(3)
π ddrvrfp.f β the LAPACK RFP tester, explained by your unix bestie
okay so, bestie, you're looking at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/ddrvrfp.f from the Library Functions Manual (section 3, the "functions" section, iykyk). sit down, hydrate, and let's get into it π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/ddrvrfp.f
that's it. that's the whole name. it's giving long-path energy but honestly she's worth it π
π¦ SYNOPSIS π¦
Functions/Subroutines
one singular icon, one singular subroutine:
subroutine DDRVRFP (nout, nn, nval, nns, nsval, nnt, ntval, thresh, a,
asav, afac, ainv, b, bsav, xact, x, arf, arfinv, d_work_dlatms,
d_work_dpot01, d_temp_dpot02, d_temp_dpot03, d_work_dlansy,
d_work_dpot02, d_work_dpot03)
DDRVRFP
πΈ Function/Subroutine Documentation πΈ
subroutine DDRVRFP β the full glow-up signature
here's her full typed-out self, no cap, verbatim:
subroutine DDRVRFP (integer nout, integer nn, integer, dimension( nn ) nval,
integer nns, integer, dimension( nns ) nsval, integer nnt, integer,
dimension( nnt ) ntval, double precision thresh, double precision,
dimension( * ) a, double precision, dimension( * ) asav, double
precision, dimension( * ) afac, double precision, dimension( * ) ainv,
double precision, dimension( * ) b, double precision, dimension( * )
bsav, double precision, dimension( * ) xact, double precision,
dimension( * ) x, double precision, dimension( * ) arf, double
precision, dimension( * ) arfinv, double precision, dimension( * )
d_work_dlatms, double precision, dimension( * ) d_work_dpot01, double
precision, dimension( * ) d_temp_dpot02, double precision, dimension( *
) d_temp_dpot03, double precision, dimension( * ) d_work_dlansy, double
precision, dimension( * ) d_work_dpot02, double precision, dimension( *
) d_work_dpot03)
DDRVRFP
π Purpose π
okay so this is the good part:
!>!> DDRVRFP tests the LAPACK RFP routines:!> DPFTRF, DPFTRS, and DPFTRI.!>!> This testing routine follow the same tests as DDRVPO (test for the full!> format Symmetric Positive Definite solver).!>!> The tests are performed in Full Format, conversion back and forth from!> full format to RFP format are performed using the routines DTRTTF and!> DTFTTR.!>!> First, a specific matrix A of size N is created. There is nine types of!> different matrixes possible.!> 1. Diagonal 6. Random, CNDNUM = sqrt(0.1/EPS)!> 2. Random, CNDNUM = 2 7. Random, CNDNUM = 0.1/EPS!> *3. First row and column zero 8. Scaled near underflow!> *4. Last row and column zero 9. Scaled near overflow!> *5. Middle row and column zero!> (* - tests error exits from DPFTRF, no test ratios are computed)!> A solution XACT of size N-by-NRHS is created and the associated right!> hand side B as well. Then DPFTRF is called to compute L (or U), the!> Cholesky factor of A. Then L (or U) is used to solve the linear system!> of equations AX = B. This gives X. Then L (or U) is used to compute the!> inverse of A, AINV. The following four tests are then performed:!> (1) norm( L*L' - A ) / ( N * norm(A) * EPS ) or!> norm( U'*U - A ) / ( N * norm(A) * EPS ),!> (2) norm(B - A*X) / ( norm(A) * norm(X) * EPS ),!> (3) norm( I - A*AINV ) / ( N * norm(A) * norm(AINV) * EPS ),!> (4) ( norm(X-XACT) * RCOND ) / ( norm(XACT) * EPS ),!> where EPS is the machine precision, RCOND the condition number of A, and!> norm( . ) the 1-norm for (1,2,3) and the inf-norm for (4).!> Errors occur when INFO parameter is not as expected. Failures occur when!> a test ratios is greater than THRES.!>
lowkey the whole personality of this routine is "nine matrix vibes and four ratio tests" and honestly? iconic. π₯
π Parameters π
every single one, bestie, no skipping. and yeah, the !> tags are literally part of the original doc comments β keep them, they're canon π
NOUT
!> NOUT is INTEGER!> The unit number for output.!>
NN
!> NN is INTEGER!> The number of values of N contained in the vector NVAL.!>
NVAL
!> NVAL is INTEGER array, dimension (NN)!> The values of the matrix dimension N.!>
NNS
!> NNS is INTEGER!> The number of values of NRHS contained in the vector NSVAL.!>
NSVAL
!> NSVAL is INTEGER array, dimension (NNS)!> The values of the number of right-hand sides NRHS.!>
NNT
!> NNT is INTEGER!> The number of values of MATRIX TYPE contained in the vector NTVAL.!>
NTVAL
!> NTVAL is INTEGER array, dimension (NNT)!> The values of matrix type (between 0 and 9 for PO/PP/PF matrices).!>
THRESH
!> THRESH is DOUBLE PRECISION!> The threshold value for the test ratios. A result is!> included in the output file if RESULT >= THRESH. To have!> every test ratio printed, use THRESH = 0.!>
β tiny note from me: if you want everything printed, THRESH = 0. that's the "turn off the filter" move, fr fr.
A
!> A is DOUBLE PRECISION array, dimension (NMAX*NMAX)!>
ASAV
!> ASAV is DOUBLE PRECISION array, dimension (NMAX*NMAX)!>
AFAC
!> AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)!>
AINV
!> AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)!>
B
!> B is DOUBLE PRECISION array, dimension (NMAX*MAXRHS)!>
BSAV
!> BSAV is DOUBLE PRECISION array, dimension (NMAX*MAXRHS)!>
XACT
!> XACT is DOUBLE PRECISION array, dimension (NMAX*MAXRHS)!>
X
!> X is DOUBLE PRECISION array, dimension (NMAX*MAXRHS)!>
ARF
!> ARF is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2)!>
ARFINV
!> ARFINV is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2)!>
D_WORK_DLATMS
!> D_WORK_DLATMS is DOUBLE PRECISION array, dimension ( 3*NMAX )!>
D_WORK_DPOT01
!> D_WORK_DPOT01 is DOUBLE PRECISION array, dimension ( NMAX )!>
D_TEMP_DPOT02
!> D_TEMP_DPOT02 is DOUBLE PRECISION array, dimension ( NMAX*MAXRHS )!>
D_TEMP_DPOT03
!> D_TEMP_DPOT03 is DOUBLE PRECISION array, dimension ( NMAX*NMAX )!>
D_WORK_DLANSY
!> D_WORK_DLANSY is DOUBLE PRECISION array, dimension ( NMAX )!>
D_WORK_DPOT02
!> D_WORK_DPOT02 is DOUBLE PRECISION array, dimension ( NMAX )!>
D_WORK_DPOT03
!> D_WORK_DPOT03 is DOUBLE PRECISION array, dimension ( NMAX )!>
π Author π
the whole squad, take a bow π«Ά
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 232 of file ddrvrfp.f. β go look, she's right there π
π Author (yes, again, the page does that) π
Generated automatically by Doxygen for LAPACK from the source code. machine-made but still cute π
okay that's the whole page bestie, and as a little sign-off: this is LAPACK, Version 3.12.0, and the page footer is literally just /home/abui.../ddrvrfp.f(3) β so there you go, no secret date lore, just the path doing its thing π¦β¨ periodt.
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms