CEBCHVXX(3)
π CEBCHVXX(3) β the LAPACK test page, but make it a group chat
okay so this is a page from the Library Functions Manual (yes, that's the manual name, we're folding it in right here at the top, you're welcome π«Ά), and it's all about one lil test subroutine. Let's get into it, bestie.
πΈ NAME πΈ
Literally just the whole entire path, no explanation, no notes:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/cebchvxx.f
that's it, that's the NAME section. iconic minimalism honestly π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine CEBCHVXX (thresh, path)β and the description of this one is, and I cannot stress this enough, justCEBCHVXX. it's giving "we ran out of words" energy but ok π
π Function/Subroutine Documentation π
subroutine CEBCHVXX (real thresh, character*3 path)
CEBCHVXX Purpose:
So the vibe here: CEBCHVXX will run CGESVXX on a series of Hilbert matrices and then compare the error bounds returned by CGESVXX to see if the returned answer indeed falls within those bounds. that's the whole job. queen behavior.
Eight test ratios will be computed. The tests will pass if they are .LT. THRESH. There are two cases that are determined by 1 / (SQRT( N ) * EPS). If that value is .LE. to the component wise reciprocal condition number, it uses the guaranteed case, other wise it uses the unguaranteed case.
ngl the page says eight test ratios and then lists six. I'm not fixing it, I'm not editing it, I'm just delivering the message with love π
π₯ Test ratios π₯ (the main character section)
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. Two flavors, same energy.
1. Normwise guaranteed forward error bound.
A: both of these have to hold:
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? β yes the question mark is canon, don't come for me π)
2. Componentwise guaranteed forward error bound.
A: this needs to hold for all j, AND the second bit too:
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. (copy-paste queen π)
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
2to the power of the number of bits in the fraction of the data type used plus one, which is24for single precision. - NMAX should be
6for single and11for double. write that down, it's on the test π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 95 of file cebchvxx.f. slay.
β Author (again, but the meta one) β
Generated automatically by Doxygen for LAPACK from the source code. not a human, a robot, and honestly it ate π€π
and that's the whole page bestie, no cap, every single number and flag and formula intact, you're gonna do amazing on this test ππ
signing off: LAPACK β Version 3.12.0, from /home/abui.../cebchvxx.f(3), brought to you by Doxygen doing its little auto-generate thing. 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