/home/abui...ksy_rook.f(3)
π /home/abui...ksy_rook.f(3) β Library Functions Manual π
okay so bestie, welcome to the LAPACK testing zone β¨ this one is a <pink>Library Functions Manual</pink> page and honestly it's giving "the most thorough test suite you've ever met" π no cap, this file is a whole vibe check for symmetric rook-pivoting routines.
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/schksy_rook.f
yep that's the whole name, it's a path, it's long, it's iconic, we love her π«Ά literally the full filesystem glow-up of a test file.
β¨ SYNOPSIS β¨
π¦ Functions/Subroutines
subroutine SCHKSY_ROOKβ(dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout)
lowkey the whole crew is here, SCHKSY_ROOK is the main character π
subroutine SCHKSY_ROOK (dotype, nn, nval, nnb, nbval, nns, nsval,
thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork,
nout)
π Function/Subroutine Documentation π
π subroutine SCHKSY_ROOK
here's the full signature with all the type tea β every argument spelled out exactly, don't come for me:
subroutine SCHKSY_ROOK (logical, dimension( * ) dotype, integer nn, integer,
dimension( * ) nval, integer nnb, integer, dimension( * ) nbval, integer
nns, integer, dimension( * ) nsval, real thresh, logical tsterr, integer
nmax, real, dimension( * ) a, real, dimension( * ) afac, real,
dimension( * ) ainv, real, dimension( * ) b, real, dimension( * ) x,
real, dimension( * ) xact, real, dimension( * ) work, real, dimension( *
) rwork, integer, dimension( * ) iwork, integer nout)
SCHKSY_ROOK π
π Purpose:
!>!> SCHKSY_ROOK tests SSYTRF_ROOK, -TRI_ROOK, -TRS_ROOK,!> and -CON_ROOK.!>
so yeah bestie, she tests four whole routines: SSYTRF_ROOK, -TRI_ROOK, -TRS_ROOK and -CON_ROOK π that's the entire rook-pivot family getting a full inspection. obsessed.
π§ Parameters π§
okay this is the long part, grab a strawberry π, we're going through every single one:
DOTYPEβ!> DOTYPE is LOGICAL array, dimension (NTYPES)β!> The matrix types to be used for testing. Matrices of type jβ!> (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =β!> .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.β!>β basically a yes/no list of which matrix types get invited to the party β¨.TRUE.= you're on the list,.FALSE.= not today honey πNNβ!> NN is INTEGERβ!> The number of values of N contained in the vector NVAL.β!>β how many N values are living inNVALfr frNVALβ!> NVAL is INTEGER array, dimension (NN)β!> The values of the matrix dimension N.β!>β the actual matrix dimensions, one per entry πNNBβ!> NNB is INTEGERβ!> The number of values of NB contained in the vector NBVAL.β!>β headcount of block sizes inNBVALNBVALβ!> NBVAL is INTEGER array, dimension (NNB)β!> The values of the blocksize NB.β!>β the blocksizes themselves, iconic blocky behaviour π§±NNSβ!> NNS is INTEGERβ!> The number of values of NRHS contained in the vector NSVAL.β!>β how many right-hand-side counts are inNSVALNSVALβ!> NSVAL is INTEGER array, dimension (NNS)β!> The values of the number of right hand sides NRHS.β!>β the NRHS values, i.e. how many right-hand sides we're solving for πTHRESHβ!> 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.β!>β the cutoff, the vibe check line π anything withRESULT >= THRESHmakes it into the output file. want everything printed? setTHRESH = 0and prepare to be flooded πTSTERRβ!> TSTERR is LOGICALβ!> Flag that indicates whether error exits are to be tested.β!>β.TRUE.means yes we're testing the error exits too, hold on tight π«ΆNMAXβ!> NMAX is INTEGERβ!> The maximum value permitted for N, used in dimensioning theβ!> work arrays.β!>β the biggest N allowed, aka the reason all the work arrays are sized the way they are πAβ!> A is REAL array, dimension (NMAX*NMAX)β!>β the matrix itself, no!>prose here, just vibes andNMAX*NMAXreal numbersAFACβ!> AFAC is REAL array, dimension (NMAX*NMAX)β!>β the factored version, same size, slayAINVβ!> AINV is REAL array, dimension (NMAX*NMAX)β!>β the inverse, same size again, consistent queenBβ!> B is REAL array, dimension (NMAX*NSMAX)β!> where NSMAX is the largest entry in NSVAL.β!>β right-hand side central π note theNSMAXdefinition, that'sNSMAX= largest entry inNSVAL, iykykXβ!> X is REAL array, dimension (NMAX*NSMAX)β!>β the solution array, same dimensions asBπ¦XACTβ!> XACT is REAL array, dimension (NMAX*NSMAX)β!>β the exact solution, for comparison purposes, the reference bestie πΈWORKβ!> WORK is REAL array, dimension (NMAX*max(3,NSMAX))β!>β scratch space, sizedNMAX*max(3,NSMAX), carry on β¨RWORKβ!> RWORK is REAL array, dimension (max(NMAX,2*NSMAX))β!>β more scratch, this timemax(NMAX,2*NSMAX)πIWORKβ!> IWORK is INTEGER array, dimension (2*NMAX)β!>β the integer scratch space,2*NMAX, ints only obviously πNOUTβ!> NOUT is INTEGERβ!> The unit number for output.β!>β where all the output goes, the unit number, that's it, that's the whole job π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
all four of them, credited together, a whole collab π₯
Definition at line 168 of file schksy_rook.f. β that's the exact spot, no cap π
πΊ Author πΊ
Generated automatically by Doxygen for LAPACK from the source code.
like, the docs wrote themselves bestie, Doxygen did that π
πβ¨ and that's the whole page β¨π this was LAPACK, Version 3.12.0, served fresh from /home/abui...ksy_rook.f(3) β drink water, cite your sources, and remember: the rook pivots are rooting for you π«Άππ¦
π¦ 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