/home/abui.../sdrvrfp.f(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’… 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:

  • SPFTRF
  • SPFTRS
  • SPFTRI

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:

  1. Diagonal
  2. Random, CNDNUM = 2
  3. *First row and column zero
  4. *Last row and column zero
  5. *Middle row and column zero
  6. Random, CNDNUM = sqrt(0.1/EPS)
  7. Random, CNDNUM = 0.1/EPS
  8. Scaled near underflow
  9. 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 β€” is INTEGER. the unit number for output.
  • NN β€” is INTEGER. the number of values of N contained in the vector NVAL.
  • NVAL β€” is INTEGER array, dimension (NN). the values of the matrix dimension N.
  • NNS β€” is INTEGER. the number of values of NRHS contained in the vector NSVAL.
  • NSVAL β€” is INTEGER array, dimension (NNS). the values of the number of right-hand sides NRHS.
  • NNT β€” is INTEGER. the number of values of MATRIX TYPE contained in the vector NTVAL.
  • NTVAL β€” is INTEGER array, dimension (NNT). the values of matrix type (between 0 and 9 for PO/PP/PF matrices).
  • THRESH β€” is REAL. 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.
  • A β€” is REAL array, dimension (NMAX*NMAX).
  • ASAV β€” is REAL array, dimension (NMAX*NMAX).
  • AFAC β€” is REAL array, dimension (NMAX*NMAX).
  • AINV β€” is REAL array, dimension (NMAX*NMAX).
  • B β€” is REAL array, dimension (NMAX*MAXRHS).
  • BSAV β€” is REAL array, dimension (NMAX*MAXRHS).
  • XACT β€” is REAL array, dimension (NMAX*MAXRHS).
  • X β€” is REAL array, dimension (NMAX*MAXRHS).
  • ARF β€” is REAL array, dimension ((NMAX*(NMAX+1))/2).
  • ARFINV β€” is REAL array, dimension ((NMAX*(NMAX+1))/2).
  • S_WORK_SLATMS β€” is REAL array, dimension ( 3*NMAX ). (yes, the 3* matters, don't come for me πŸ™ˆ)
  • S_WORK_SPOT01 β€” is REAL array, dimension ( NMAX ).
  • S_TEMP_SPOT02 β€” is REAL array, dimension ( NMAX*MAXRHS ).
  • S_TEMP_SPOT03 β€” is REAL array, dimension ( NMAX*NMAX ).
  • S_WORK_SLANSY β€” is REAL array, dimension ( NMAX ).
  • S_WORK_SPOT02 β€” is REAL array, dimension ( NMAX ).
  • S_WORK_SPOT03 β€” is REAL array, 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