CGET24(3)
πΈ NAME πΈ
So like, the name of this whole thing is a whole entire file path, bestie β no cute little one-word name, just the full road trip:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/EIG/cget24.f
That's it. That's the name. She's a Fortran file chilling in the LAPACK testing directory, and we're reading her manual page from the Library Functions Manual, section 3 (iykyk β section 3 is where the library functions live π ).
β¨ SYNOPSIS β¨
π Functions/Subroutines π
subroutine CGET24 (comp, jtype, thresh, iseed, nounit, n, a, lda, h, ht, w, wt, wtmp, vs, ldvs, vs1, rcdein, rcdvin, nslct, islct, isrt, result, work, lwork, rwork, bwork, info)β okay so this is the subroutine, and yes, that is a casual twenty-seven arguments. Twenty-seven. Miss girl is not doing minimalism. π«Ά
Here it is laid out exactly like the page has it, line breaks and all, so nothing gets lost in the group chat:
subroutine CGET24 (comp, jtype, thresh, iseed, nounit, n, a, lda, h, ht,
w, wt, wtmp, vs, ldvs, vs1, rcdein, rcdvin, nslct, islct, isrt,
result, work, lwork, rwork, bwork, info)
And the one-line tagline the page gives her? Literally just:
CGET24
No notes. No filler. She said "my name is my name." π
bestie you're gonna want to actually read the rest of this β that argument list is giving main character energy and we are not done. don't go anywhere π
πΈ Function/Subroutine Documentation πΈ
Okay bestie, this is the actual CGET24 signature β yes, the line breaks are part of the look, so keep them cute and exact:
subroutine CGET24 (logical comp, integer jtype, real thresh, integer,
dimension( 4 ) iseed, integer nounit, integer n, complex, dimension(
lda, * ) a, integer lda, complex, dimension( lda, * ) h, complex,
dimension( lda, * ) ht, complex, dimension( * ) w, complex, dimension( *
) wt, complex, dimension( * ) wtmp, complex, dimension( ldvs, * ) vs,
integer ldvs, complex, dimension( ldvs, * ) vs1, real rcdein, real
rcdvin, integer nslct, integer, dimension( * ) islct, integer isrt,
real, dimension( 17 ) result, complex, dimension( * ) work, integer
lwork, real, dimension( * ) rwork, logical, dimension( * ) bwork,
integer info)
π― Purpose π―
CGET24 is the vibe-check routine for the nonsymmetric eigenvalue (Schur form) problem expert driver CGEESX. Like, it runs the tests so you don't have to.
If COMP = .FALSE., the first 13 of the following tests will be performed on the input matrix A, and also tests 14 and 15 if LWORK is sufficiently large.
If COMP = .TRUE., all 17 test will be performed. (Yes, the source says βtestβ right there. We're not fixing it. It's iconic.)
0ifTis in Schur form,1/ulpotherwise β no sorting of eigenvalues.| A - VS T VS' | / ( n |A| ulp )
Here VS is the matrix of Schur eigenvectors, and T is in Schur form β no sorting of eigenvalues.
| I - VS VS' | / ( n ulp )β no sorting of eigenvalues.0ifWare eigenvalues ofT,1/ulpotherwise β no sorting of eigenvalues.0ifT(with VS) = T(without VS),1/ulpotherwise β no sorting of eigenvalues.0ifeigenvalues(with VS) = eigenvalues(without VS),1/ulpotherwise β no sorting of eigenvalues.0ifTis in Schur form,1/ulpotherwise β with sorting of eigenvalues.| A - VS T VS' | / ( n |A| ulp )
Here VS is the matrix of Schur eigenvectors, and T is in Schur form β with sorting of eigenvalues.
| I - VS VS' | / ( n ulp )β with sorting of eigenvalues.0ifWare eigenvalues ofT,1/ulpotherwise. If workspace sufficient, also compareWwith and without reciprocal condition numbers β with sorting of eigenvalues.0ifT(with VS) = T(without VS),1/ulpotherwise. If workspace sufficient, also compareTwith and without reciprocal condition numbers β with sorting of eigenvalues.0ifeigenvalues(with VS) = eigenvalues(without VS),1/ulpotherwise. If workspace sufficient, also compareVSwith and without reciprocal condition numbers β with sorting of eigenvalues.- if sorting worked and
SDIMis the number of eigenvalues which wereSELECTed. If workspace sufficient, also compareSDIMwith and without reciprocal condition numbers. - if
RCONDEthe same no matter ifVSand/orRCONDVcomputed. - if
RCONDVthe same no matter ifVSand/orRCONDEcomputed. |RCONDE - RCDEIN| / cond(RCONDE)
RCONDE is the reciprocal average eigenvalue condition number computed by CGEESX and RCDEIN (the precomputed true value) is supplied as input. cond(RCONDE) is the condition number of RCONDE, and takes errors in computing RCONDE into account, so that the resulting quantity should be O(ULP). cond(RCONDE) is essentially given by norm(A)/RCONDV.
|RCONDV - RCDVIN| / cond(RCONDV)
RCONDV is the reciprocal right invariant subspace condition number computed by CGEESX and RCDVIN (the precomputed true value) is supplied as input. cond(RCONDV) is the condition number of RCONDV, and takes errors in computing RCONDV into account, so that the resulting quantity should be O(ULP). cond(RCONDV) is essentially given by norm(A)/RCONDE.
π§Έ Parameters π§Έ
COMPβCOMP is LOGICAL.COMPdescribes which input tests to perform:= .FALSE.if the computed condition numbers are not to be tested againstRCDVINandRCDEIN= .TRUE.if they are to be compared
JTYPEβJTYPE is INTEGER. Type of input matrix. Used to label output if error occurs.ISEEDβISEED is INTEGER array, dimension (4). IfCOMP = .FALSE., the random number generator seed used to produce matrix. IfCOMP = .TRUE.,ISEED(1)= the number of the example. Used to label output if error occurs.THRESHβTHRESH is REAL. The original text has blanks here, so I'm keeping them as-is: A test will count as if the , computed as described above, exceeds THRESH. Note that the error is scaled to beO(1), soTHRESHshould be a reasonably small multiple of 1, e.g.,10or100. In particular, it should not depend on the precision (single vs. double) or the size of the matrix. It must be at least zero.NOUNITβNOUNIT is INTEGER. The FORTRAN unit number for printing out error messages (e.g., if a routine returnsINFOnot equal to0.)NβN is INTEGER. The dimension ofA.Nmust be at least0.AβA is COMPLEX array, dimension (LDA, N). Used to hold the matrix whose eigenvalues are to be computed.LDAβLDA is INTEGER. The leading dimension ofA, andH.LDAmust be at least1and at leastN.HβH is COMPLEX array, dimension (LDA, N). Another copy of the test matrixA, modified byCGEESX.HTβHT is COMPLEX array, dimension (LDA, N). Yet another copy of the test matrixA, modified byCGEESX.WβW is COMPLEX array, dimension (N). The computed eigenvalues ofA.WTβWT is COMPLEX array, dimension (N). LikeW, this array contains the eigenvalues ofA, but those computed whenCGEESXonly computes a partial eigendecomposition, i.e. not Schur vectors.WTMPβWTMP is COMPLEX array, dimension (N). LikeW, this array contains the eigenvalues ofA, but sorted by increasing real or imaginary part.VSβVS is COMPLEX array, dimension (LDVS, N).VSholds the computed Schur vectors.LDVSβLDVS is INTEGER. Leading dimension ofVS. Must be at leastmax(1, N).VS1βVS1 is COMPLEX array, dimension (LDVS, N).VS1holds another copy of the computed Schur vectors.RCDEINβRCDEIN is REAL. WhenCOMP = .TRUE.RCDEINholds the precomputed reciprocal condition number for the average of selected eigenvalues.RCDVINβRCDVIN is REAL. WhenCOMP = .TRUE.RCDVINholds the precomputed reciprocal condition number for the selected right invariant subspace.NSLCTβNSLCT is INTEGER. WhenCOMP = .TRUE.the number of selected eigenvalues corresponding to the precomputed valuesRCDEINandRCDVIN.ISLCTβISLCT is INTEGER array, dimension (NSLCT). WhenCOMP = .TRUE.ISLCTselects the eigenvalues of the input matrix corresponding to the precomputed valuesRCDEINandRCDVIN. ForI=1, ... ,NSLCT, ifISLCT(I) = J, then the eigenvalue with theJ-th largest real or imaginary part is selected. The real part is used ifISRT = 0, and the imaginary part ifISRT = 1. Not referenced ifCOMP = .FALSE.ISRTβISRT is INTEGER. WhenCOMP = .TRUE.,ISRTdescribes howISLCTis used to choose a subset of the spectrum. Not referenced ifCOMP = .FALSE.RESULTβRESULT is REAL array, dimension (17). The values computed by the 17 tests described above. The values are currently limited to1/ulp, to avoid overflow.WORKβWORK is COMPLEX array, dimension (2*N*N).LWORKβLWORK is INTEGER. The number of entries inWORKto be passed toCGEESX. This must be at least2*N, andN*(N+1)/2if tests14--16are to be performed.RWORKβRWORK is REAL array, dimension (N).BWORKβBWORK is LOGICAL array, dimension (N).INFOβINFO is INTEGER. If0, successful exit. If<0, input parameter-INFOhad an incorrect value. If>0,CGEESXreturned an error code, the absolute value of which is returned.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 331 of file cget24.f.
π§ Author (the Doxygen-generated one) π§
Generated automatically by Doxygen for LAPACK from the source code.
π That's the whole page, bestie β LAPACK Version 3.12.0, from /home/abui...IG/cget24.f(3). Byeee! π
π¦ 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