DCHKPO(3)
π DCHKPO(3) β from the Library Functions Manual π
okay so bestie, welcome to dchkpo.f(3), a page from the Library Functions Manual β and honestly? it's giving "LAPACK testing internals" and honestly I'm obsessed. it's a Fortran subroutine that exists purely to bully DPOTRF into proving itself. let's get into it π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/dchkpo.f
like yeah that's the whole path, that's the name, that's the main character. no cap, the entire NAME section is just a file path and I respect the audacity π«Ά
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine DCHKPO (dotype, nn, nval, nnb, nbval, nns, nsval, thresh,
tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout)
DCHKPO
(that second DCHKPO is just the vibe check confirming yes, it's still DCHKPO β¨)
π¦ Function/Subroutine Documentation π¦
subroutine DCHKPO (logical, dimension( * ) dotype, integer nn, integer,
dimension( * ) nval, integer nnb, integer, dimension( * ) nbval, 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)
DCHKPO
π₯ Purpose π₯
fortran !> !> DCHKPO tests DPOTRF, -TRI, -TRS, -RFS, and -CON !>
literally that's it. that's the whole purpose. it runs the whole positive-definite gauntlet β DPOTRF, -TRI, -TRS, -RFS, and -CON β and makes sure none of them are faking it. queen behavior π
π Parameters π
π DOTYPE
fortran !> 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 for every matrix type j where 1 <= j <= NTYPES, you flip DOTYPE(j) = .TRUE. to say "yes bestie test this one" or .FALSE. to say "not this one, we're good." it's a whole menu and you're ordering Γ la carte π
π NN
fortran !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !>
the count of N values chilling inside NVAL. like a headcount for the dimension squad.
π NVAL
fortran !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !>
all the matrix dimensions N we're about to test. NN of them. that's the math, iykyk β¨
π NNB
fortran !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !>
same energy as NN but for blocksizes β it's how many entries live in NBVAL.
π NBVAL
fortran !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !>
the blocksize values NB. block it out bestie π§±
π NNS
fortran !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !>
headcount for the right-hand-side counts sitting in NSVAL.
π NSVAL
fortran !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !>
the actual NRHS values β i.e. how many right hand sides we're solving for. so many hands, so many sides π«Ά
π THRESH
fortran !> 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. !>
the cutoff for test ratios, in DOUBLE PRECISION. if RESULT >= THRESH, it gets written to the output file. want literally everything printed, no filter, main character energy? set THRESH = 0. that's the chaos option and I love her π
π TSTERR
fortran !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !>
a yes/no flag for "are we testing the error exits too?" β .TRUE. means yes, we're checking the messy paths.
π NMAX
fortran !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !>
the biggest allowable N. it's what sizes all the work arrays, so don't go over it or the vibes (and the memory) collapse π
π A
fortran !> A is DOUBLE PRECISION array, dimension (NMAX*NMAX) !>
the matrix itself, DOUBLE PRECISION, dimension (NMAX*NMAX). yes it's huge. yes it's fine. she's the star of the show β
π AFAC
fortran !> AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX) !>
the factored version of A, same size, (NMAX*NMAX). also DOUBLE PRECISION. no notes.
π AINV
fortran !> AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX) !>
the inverse, DOUBLE PRECISION, dimension (NMAX*NMAX). third massive array, third time slaying π
π B
fortran !> B is DOUBLE PRECISION array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !>
DOUBLE PRECISION, dimension (NMAX*NSMAX), and reminder: NSMAX is the largest entry in NSVAL. keep that in your notes π
π X
fortran !> X is DOUBLE PRECISION array, dimension (NMAX*NSMAX) !>
the solution array, DOUBLE PRECISION, dimension (NMAX*NSMAX). same shape as B, obvs.
π XACT
fortran !> XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX) !>
the exact solution array (hence the name, genius tbh), DOUBLE PRECISION, dimension (NMAX*NSMAX). she's the reference, the benchmark, the standard.
π WORK
fortran !> WORK is DOUBLE PRECISION array, dimension !> (NMAX*max(3,NSMAX)) !>
scratch space, DOUBLE PRECISION, dimension (NMAX*max(3,NSMAX)). note the max(3,NSMAX) β it's at least 3, no matter what NSMAX says π
π RWORK
fortran !> RWORK is DOUBLE PRECISION array, dimension !> (max(NMAX,2*NSMAX)) !>
DOUBLE PRECISION workspace, dimension (max(NMAX,2*NSMAX)). different max, different formula, same queen energy.
π IWORK
fortran !> IWORK is INTEGER array, dimension (NMAX) !>
the integer workspace, dimension (NMAX). finally a small one π
π NOUT
fortran !> NOUT is INTEGER !> The unit number for output. !>
the Fortran unit number where all the output goes. that's where your results land, bestie π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
(the whole academic + lab squad, we stan a collaborative effort πΈ)
π Definition at line 169 of file dchkpo.f.
π§ Author (the other one) π§
Generated automatically by Doxygen for LAPACK from the source code.
(so nobody hand-wrote this page, a robot did it, and honestly? the robot ate. not me being jealous of a documentation generator π)
and that's the whole page bestie β LAPACK, Version 3.12.0, footer date and all, dchkpo.f(3), no details left behind β¨ππ
π¦ 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