DCHKPP(3)
πΈ DCHKPP(3) β like, the manual page, bestie πΈ
okay so before we even start: this is a Library Functions Manual page, and the file it's documenting is literally this path right here:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/dchkpp.f
that's the whole NAME section, no cap. it's a .f file, it lives in TESTING/LIN, and it is a main character π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine DCHKPP (dotype, nn, nval, nns, nsval, thresh, tsterr, nmax,
a, afac, ainv, b, x, xact, work, rwork, iwork, nout)
yeah. that's a lot of arguments. she's got range π
π¦ Function/Subroutine Documentation π¦
okay buckle up, here's the full signature with all the types spelled out, exactly as written:
subroutine DCHKPP (logical, dimension( * ) dotype, integer nn, integer,
dimension( * ) nval, integer nns, integer, dimension( * ) nsval, double
precision thresh, logical tsterr, integer nmax, double precision,
dimension( * ) a, double precision, dimension( * ) afac, double
precision, dimension( * ) ainv, double precision, dimension( * ) b,
double precision, dimension( * ) x, double precision, dimension( * )
xact, double precision, dimension( * ) work, double precision,
dimension( * ) rwork, integer, dimension( * ) iwork, integer nout)
DCHKPP β that's the name, say it with me π£οΈ
π Purpose π
!> !> DCHKPP tests DPPTRF, -TRI, -TRS, -RFS, and -CON !>
so basically she's the vibe-checker for five routines: DPPTRF, -TRI, -TRS, -RFS, and -CON. that's the whole job. iconic honestly β
π Parameters π
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.
!>
so this is a LOGICAL array sized (NTYPES), and it's lowkey the guest list for the matrix-type party π matrix type j (for 1 <= j <= NTYPES) gets tested if DOTYPE(j) = .TRUE. β and if DOTYPE(j) = .FALSE., type j is not used. not invited. blocked. π
NN
!> NN is INTEGER
!> The number of values of N contained in the vector NVAL.
!>
an INTEGER, and it's just counting how many N values are chilling inside NVAL.
NVAL
!> NVAL is INTEGER array, dimension (NN)
!> The values of the matrix dimension N.
!>
INTEGER array, dimension (NN), and these are literally the matrix dimension N values. the actual numbers. the substance. π
NNS
!> NNS is INTEGER
!> The number of values of NRHS contained in the vector NSVAL.
!>
INTEGER, counting how many NRHS values live in NSVAL. same energy as NN but for right-hand sides, iykyk.
NSVAL
!> NSVAL is INTEGER array, dimension (NNS)
!> The values of the number of right hand sides NRHS.
!>
INTEGER array, dimension (NNS) β the actual NRHS values, aka the number of right hand sides. π«Ά
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.
!>
DOUBLE PRECISION threshold for the test ratios, bestie. a result makes it into the output file only if RESULT >= THRESH. and if you want every single test ratio printed? set THRESH = 0. maximum chaos, maximum output, we love that for you π₯
TSTERR
!> TSTERR is LOGICAL
!> Flag that indicates whether error exits are to be tested.
!>
LOGICAL flag β yes/no on whether the error exits get tested. that's it, that's the whole vibe check. β
NMAX
!> NMAX is INTEGER
!> The maximum value permitted for N, used in dimensioning the
!> work arrays.
!>
INTEGER, the biggest N allowed, and it's what dimensions the work arrays. she's the ceiling fr fr.
A
!> A is DOUBLE PRECISION array, dimension
!> (NMAX*(NMAX+1)/2)
!>
DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2). noted β¨
AFAC
!> AFAC is DOUBLE PRECISION array, dimension
!> (NMAX*(NMAX+1)/2)
!>
DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2). same shape, different girl.
AINV
!> AINV is DOUBLE PRECISION array, dimension
!> (NMAX*(NMAX+1)/2)
!>
DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2). third time's the charm π«
B
!> B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
!> where NSMAX is the largest entry in NSVAL.
!>
DOUBLE PRECISION array, dimension (NMAX*NSMAX) β and important: NSMAX is the largest entry in NSVAL. don't forget that part π§
X
!> X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
!>
DOUBLE PRECISION array, dimension (NMAX*NSMAX).
XACT
!> XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
!>
DOUBLE PRECISION array, dimension (NMAX*NSMAX). the "act" is for exact, get it? okay moving on π
WORK
!> WORK is DOUBLE PRECISION array, dimension
!> (NMAX*max(3,NSMAX))
!>
DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX)). yes, max(3,NSMAX) β that's a real thing in there, keep it.
RWORK
!> RWORK is DOUBLE PRECISION array, dimension
!> (max(NMAX,2*NSMAX))
!>
DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX)). the 2* matters, don't drop it π
IWORK
!> IWORK is INTEGER array, dimension (NMAX)
!>
INTEGER array, dimension (NMAX). short and sweet.
NOUT
!> NOUT is INTEGER
!> The unit number for output.
!>
INTEGER β the unit number where the output goes. that's her whole personality π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 160 of file dchkpp.f.
β Author (again, yes really) β
Generated automatically by Doxygen for LAPACK from the source code. she was born this way, no manual labour involved π¦
okay and that's the whole page, bestie β every flag, every array, every dimension, every !> comment survived the glow-up π
no facts were harmed in the making of this rewrite.
LAPACK Β· Version 3.12.0 Β· /home/abui...IN/dchkpp.f(3) β mwah, thats the sign-off, go test some packed matrices π«Άβ¨
π¦ 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