/home/abui.../sdrvrfp.f(3)
π
SDRVRFP β the sdrvrfp.f(3) glow-up
okay so bestie, welcome to the Library Functions Manual entry for /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/sdrvrfp.f β yes the whole path, she's a long one, we respect her π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/sdrvrfp.f β that's the file, that's the whole name, no notes π
π¦ SYNOPSIS π¦
Functions/Subroutines
the subroutine itself, in all her glory:
subroutine SDRVRFP (nout, nn, nval, nns, nsval, nnt, ntval, thresh, a,
asav, afac, ainv, b, bsav, xact, x, arf, arfinv, s_work_slatms,
s_work_spot01, s_temp_spot02, s_temp_spot03, s_work_slansy,
s_work_spot02, s_work_spot03)
she's giving SDRVRFP and honestly? iconic π
πΈ Function/Subroutine Documentation πΈ
π subroutine SDRVRFP
the full signature with every type spelled out, because we do NOT skim here, periodt:
subroutine SDRVRFP (integer nout, integer nn, integer, dimension( nn ) nval,
integer nns, integer, dimension( nns ) nsval, integer nnt, integer,
dimension( nnt ) ntval, real thresh, real, dimension( * ) a, real,
dimension( * ) asav, real, dimension( * ) afac, real, dimension( * )
ainv, real, dimension( * ) b, real, dimension( * ) bsav, real,
dimension( * ) xact, real, dimension( * ) x, real, dimension( * ) arf,
real, dimension( * ) arfinv, real, dimension( * ) s_work_slatms, real,
dimension( * ) s_work_spot01, real, dimension( * ) s_temp_spot02, real,
dimension( * ) s_temp_spot03, real, dimension( * ) s_work_slansy, real,
dimension( * ) s_work_spot02, real, dimension( * ) s_work_spot03)
SDRVRFP β¨ (yes, that's her name, twice, she's that confident)
π Purpose π
okay so what does she actually do? buckle up π«Ά
SDRVRFP tests the LAPACK RFP routines:
SPFTRFSPFTRSSPFTRI
this testing routine follows the same tests as DDRVPO (which is the test for the full-format Symmetric Positive Definite solver) β like, same energy, different format, iykyk π
all the tests happen in Full Format, and the conversion back and forth from full format to RFP format is done with the routines STRTTF and STFTTR.
first, a specific matrix A of size N is created, and there are nine types of different matrixes possible:
- Diagonal
- Random,
CNDNUM = 2 - *First row and column zero
- *Last row and column zero
- *Middle row and column zero
- Random,
CNDNUM = sqrt(0.1/EPS) - Random,
CNDNUM = 0.1/EPS - Scaled near underflow
- Scaled near overflow
* β these ones test the error exits from SPFTRF, and no test ratios are computed for them. no cap, that's just how it is π«Ά
a solution XACT of size N-by-NRHS gets created, and the associated right hand side B as well. then SPFTRF 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, which gives X. then L (or U) is used to compute the inverse of A, AINV. and after all that slay, these four tests are 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( . ) is the 1-norm for (1,2,3) and the inf-norm for (4) π (yes, the norms switch up, keep up bestie)
errors occur when the INFO parameter is not as expected. failures occur when a test ratio is greater than THRES. literally that simple π
β Parameters β
every single one of them, in order, no skipping, we are thorough in this house π
NOUTβ isINTEGER. the unit number for output.NNβ isINTEGER. the number of values ofNcontained in the vectorNVAL.NVALβ isINTEGERarray, dimension(NN). the values of the matrix dimensionN.NNSβ isINTEGER. the number of values ofNRHScontained in the vectorNSVAL.NSVALβ isINTEGERarray, dimension(NNS). the values of the number of right-hand sidesNRHS.NNTβ isINTEGER. the number of values ofMATRIX TYPEcontained in the vectorNTVAL.NTVALβ isINTEGERarray, dimension(NNT). the values of matrix type (between0and9for PO/PP/PF matrices).THRESHβ isREAL. the threshold value for the test ratios. a result is included in the output file ifRESULT >= THRESH. to have every test ratio printed, useTHRESH = 0.Aβ isREALarray, dimension(NMAX*NMAX).ASAVβ isREALarray, dimension(NMAX*NMAX).AFACβ isREALarray, dimension(NMAX*NMAX).AINVβ isREALarray, dimension(NMAX*NMAX).Bβ isREALarray, dimension(NMAX*MAXRHS).BSAVβ isREALarray, dimension(NMAX*MAXRHS).XACTβ isREALarray, dimension(NMAX*MAXRHS).Xβ isREALarray, dimension(NMAX*MAXRHS).ARFβ isREALarray, dimension((NMAX*(NMAX+1))/2).ARFINVβ isREALarray, dimension((NMAX*(NMAX+1))/2).S_WORK_SLATMSβ isREALarray, dimension( 3*NMAX ). (yes, the3*matters, don't come for me π)S_WORK_SPOT01β isREALarray, dimension( NMAX ).S_TEMP_SPOT02β isREALarray, dimension( NMAX*MAXRHS ).S_TEMP_SPOT03β isREALarray, dimension( NMAX*NMAX ).S_WORK_SLANSYβ isREALarray, dimension( NMAX ).S_WORK_SPOT02β isREALarray, dimension( NMAX ).S_WORK_SPOT03β isREALarray, dimension( NMAX ).
π Author π
slay, the whole squad:
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π₯ Definition π₯
definition at line 232 of file sdrvrfp.f β go look, she's really there π
π Author (the meta one) π
generated automatically by Doxygen for LAPACK from the source code. not a human, but honestly? she ate π§
and that's the whole page bestie π«Ά LAPACK, Version 3.12.0 β that's the version and the vibe, sdrvrfp.f(3) forever, mwah πβ¨π
π¦ 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