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

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

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