TESTING/LIN/zebchvxx.f(3)

πŸ“¦
version 3.12.1 Β· 3 versions
, in arch rolling

πŸ¦‹ NAME πŸ¦‹

TESTING/LIN/zebchvxx.f β€” bestie, this is the Fortran source file for the zebchvxx test routine, and it is so much more than it looks πŸ’…


✨ SYNOPSIS ✨

Functions/Subroutines

  • subroutine zebchvxx (thresh, path) β€” the one and only, ZEBCHVXX herself πŸ‘‘

πŸ’– Function/Subroutine Documentation πŸ’–

subroutine zebchvxx (double precision thresh, character*3 path)

🌸 ZEBCHVXX Purpose 🌸

okay so here's the whole vibe: ZEBCHVXX runs Z**SVXX on a whole series of Hilbert matrices, and then it takes the error bounds that Z**SVXX handed back and does a little vibe check on them β€” like, does the answer it returned actually fall inside those bounds? yes or no, no cap πŸ”₯

Eight test ratios will be computed. The tests pass if they are .LT. THRESH. And there are two whole cases, decided by 1 / (SQRT( N ) * EPS). If that value is .LE. to the component wise reciprocal condition number, it uses the guaranteed case; otherwise it uses the unguaranteed case. literally two timelines πŸ¦‹

πŸŽ€ Test ratios πŸŽ€

Let Xc be X_computed and Xt be X_truth. The norm used is the infinity norm ✨

Let A be the guaranteed case and B be the unguaranteed case.

  1. Normwise guaranteed forward error bound. πŸ‘‘
    • A: norm ( abs( Xc - Xt ) / norm ( Xt ) .LE. ERRBND( *, nwise_i, bnd_i ) and ERRBND( *, nwise_i, bnd_i ) .LE. MAX(SQRT(N),10) * EPS. If these conditions are met, the test ratio is set to be ERRBND( *, nwise_i, bnd_i ) / MAX(SQRT(N), 10). Otherwise it is 1/EPS.
    • B: For this case, CGESVXX should just return 1. If it is less than one, treat it the same as in 1A. Otherwise it fails. (Set test ratio to ERRBND( *, nwise_i, bnd_i ) * THRESH?)
  2. Componentwise guaranteed forward error bound. πŸ’…
    • A: norm ( abs( Xc(j) - Xt(j) ) ) / norm (Xt(j)) .LE. ERRBND( *, cwise_i, bnd_i ) for all j .AND. ERRBND( *, cwise_i, bnd_i ) .LE. MAX(SQRT(N), 10) * EPS. If these conditions are met, the test ratio is set to be ERRBND( *, cwise_i, bnd_i ) / MAX(SQRT(N), 10). Otherwise it is 1/EPS.
    • B: Same as normwise test ratio.
  3. Backwards error. πŸŒ€
    • A: The test ratio is set to BERR/EPS.
    • B: Same test ratio.
  4. Reciprocal condition number. 🌈
    • A: A condition number is computed with Xt and compared with the one returned from CGESVXX. Let RCONDc be the RCOND returned by CGESVXX and RCONDt be the RCOND from the truth value. Test ratio is set to MAX(RCONDc/RCONDt, RCONDt/RCONDc).
    • B: Test ratio is set to 1 / (EPS * RCONDc).
  5. Reciprocal normwise condition number. ⭐
    • A: The test ratio is set to MAX(ERRBND( *, nwise_i, cond_i ) / NCOND, NCOND / ERRBND( *, nwise_i, cond_i )).
    • B: Test ratio is set to 1 / (EPS * ERRBND( *, nwise_i, cond_i )).
  6. Reciprocal componentwise condition number. 🧚
    • A: Test ratio is set to MAX(ERRBND( *, cwise_i, cond_i ) / CCOND, CCOND / ERRBND( *, cwise_i, cond_i )).
    • B: Test ratio is set to 1 / (EPS * ERRBND( *, cwise_i, cond_i )).

πŸ“ .. Parameters .. πŸ“

NMAX is determined by the largest number in the inverse of the hilbert matrix. Precision is exhausted when the largest entry in it is greater than 2 to the power of the number of bits in the fraction of the data type used plus one, which is 24 for single precision. NMAX should be 6 for single and 11 for double. πŸ’€ (yes that precision is gone, she's exhausted, respect it)


πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition at line 95 of file zebchvxx.f. 🎯


🫢 Author 🫢

Generated automatically by Doxygen for LAPACK from the source code.


k that's the whole page bestie, no notes πŸ˜­πŸ’– this is LAPACK Version 3.12.0, TESTING/LIN/zebchvxx.f(3), mwah β€” study it, cite it, slay it πŸŒΈβœ¨πŸŽ€

πŸ“¦ where this page comes from