TESTING/EIG/cckgsv.f(3)
π TESTING/EIG/cckgsv.f
okay bestie, so this is a page out of the LAPACK manual β specifically the TESTING/EIG corner of the universe β and it's literally the docs for cckgsv, a test routine. yes, a routine whose whole personality is testing another routine. iconic behavior honestly π
β¨ NAME β¨
TESTING/EIG/cckgsv.f β that's the file, that's the name, no notes π
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine cckgsv (nm, mval, pval, nval, nmats, iseed, thresh, nmax, a,
af, b, bf, u, v, q, alpha, beta, r, iwork, work, rwork, nin, nout,
info)
CCKGSV β yes that's the whole vibe, that's the name π₯
πΈ Function/Subroutine Documentation πΈ
subroutine cckgsv
here's the full signature in all its glory, bestie β every single argument, exactly as promised, no cap:
subroutine cckgsv (integer nm, integer, dimension( * ) mval, integer,
dimension( * ) pval, integer, dimension( * ) nval, integer nmats,
integer, dimension( 4 ) iseed, real thresh, integer nmax, complex,
dimension( * ) a, complex, dimension( * ) af, complex, dimension( * ) b,
complex, dimension( * ) bf, complex, dimension( * ) u, complex,
dimension( * ) v, complex, dimension( * ) q, real, dimension( * ) alpha,
real, dimension( * ) beta, complex, dimension( * ) r, integer,
dimension( * ) iwork, complex, dimension( * ) work, real, dimension( * )
rwork, integer nin, integer nout, integer info)
CCKGSV π
Purpose:
CCKGSV tests CGGSVD: the GSVD for M-by-N matrix A and P-by-N matrix B.
that's it, that's the job. it's a vibe check for CGGSVD, fr fr πβ¨
π§ Parameters π§
okay grab a snack, because there are a LOT of these and we're doing every single one π
NMβNM is INTEGER. it's the number of values of M hanging out inside the vectorMVAL.MVALβMVAL is INTEGER array, dimension (NM). these are the values of the matrix row dimension M. the M squad π«ΆPVALβPVAL is INTEGER array, dimension (NP). the values of the matrix row dimension P. yes, dimension(NP)β that's what it says, don't come for me πNVALβNVAL is INTEGER array, dimension (NN). the values of the matrix column dimension N. the N crew πNMATSβNMATS is INTEGER. the number of matrix types to be tested for each combination of matrix dimensions. and here's the tea: ifNMATS >= NTYPES(that's the maximum number of matrix types), then all the different types get generated for testing. ifNMATS < NTYPES, another input line is read to get the numbers of the matrix types to be used. so either you go all in or you get a second input line, no in between πISEEDβISEED is INTEGER array, dimension (4). on entry, this is the seed of the random number generator. the array elements should be between 0 and 4095 β otherwise they get reduced mod 4096 β andISEED(4)must be odd. on exit, it holds the next seed in the random number sequence after all the test matrices have been generated. so it's like the baton being passed in a relay race πββοΈTHRESHβTHRESH is REAL. the threshold value for the test ratios. a result gets included in the output file ifRESULT >= THRESH. want every test ratio printed? then useTHRESH = 0. no filter, all vibes πNMAXβNMAX is INTEGER. the maximum value permitted for M or N, used in dimensioning the work arrays. it's the ceiling, the limit, the moment of truth πAβA is COMPLEX array, dimension (NMAX*NMAX).AFβAF is COMPLEX array, dimension (NMAX*NMAX).BβB is COMPLEX array, dimension (NMAX*NMAX).BFβBF is COMPLEX array, dimension (NMAX*NMAX).UβU is COMPLEX array, dimension (NMAX*NMAX).VβV is COMPLEX array, dimension (NMAX*NMAX).QβQ is COMPLEX array, dimension (NMAX*NMAX).ALPHAβALPHA is REAL array, dimension (NMAX).BETAβBETA is REAL array, dimension (NMAX).RβR is COMPLEX array, dimension (NMAX*NMAX).IWORKβIWORK is INTEGER array, dimension (NMAX).WORKβWORK is COMPLEX array, dimension (NMAX*NMAX).RWORKβRWORK is REAL array, dimension (NMAX).
yes bestie, all of those work arrays really are NMAX*NMAX. big energy. huge allocation. we love a spacious workspace πΈ
NINβNIN is INTEGER. the unit number for input. that's where the reading happens π₯NOUTβNOUT is INTEGER. the unit number for output. that's where the writing happens π€INFOβINFO is INTEGER. the exit report card:= 0: successful exit β slay β¨> 0: ifCLATMSreturns an error code, the absolute value of it is returned. so you get the magnitude, not the sign π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 195 of file cckgsv.f. β go look, it's right there π
π Author (the other one) π
Generated automatically by Doxygen for LAPACK from the source code. not a human, just a robot doing its little tasks π§ββοΈ
okay that's the whole page bestie, you ate that π«Ά and for the sign-off: this was LAPACK, Version 3.12.0, dated way down at the bottom of TESTING/EIG/cckgsv.f(3) β mwah, go test some matrices ππ₯
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms