TESTING/EIG/zget24.f(3)
π¦ TESTING/EIG/zget24.f(3) π¦
Ok bestie, welcome to the glow-up of TESTING/EIG/zget24.f(3) from the Library Functions Manual. This is part 1, and the energy is immaculate.
π NAME π
TESTING/EIG/zget24.f β that's the name, literally. No cap, that's the whole NAME section. π
β¨ SYNOPSIS β¨
πΈ Functions/Subroutines πΈ
subroutine zget24β the subroutine entry, with the full exact signature looking like this:
subroutine zget24 (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)
ZGET24
ZGET24β the label that shows up right after the signature in the synopsis, uppercase and iconic. π
π Function/Subroutine Documentation π
okay so here's the signature, preserved exactly because we do not play with code, bestie:
subroutine zget24 (logical comp, integer jtype, double precision thresh,
integer, dimension( 4 ) iseed, integer nounit, integer n, complex*16,
dimension( lda, * ) a, integer lda, complex*16, dimension( lda, * ) h,
complex*16, dimension( lda, * ) ht, complex*16, dimension( * ) w,
complex*16, dimension( * ) wt, complex*16, dimension( * ) wtmp,
complex*16, dimension( ldvs, * ) vs, integer ldvs, complex*16,
dimension( ldvs, * ) vs1, double precision rcdein, double precision
rcdvin, integer nslct, integer, dimension( * ) islct, integer isrt,
double precision, dimension( 17 ) result, complex*16, dimension( * )
work, integer lwork, double precision, dimension( * ) rwork, logical,
dimension( * ) bwork, integer info)
πΈ ZGET24 πΈ
β¨ Purpose β¨
okay so ZGET24 is the vibe check for the nonsymmetric eigenvalue (Schur form) problem expert driver ZGEESX. iconic.
If COMP = .FALSE., the first 13 of the following tests will be 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. <em>yes, bestie, the original said βtest,β we are keeping the facts and moving.</em>
- Test (1):
0ifTis in Schur form,1/ulpotherwise β no sorting of eigenvalues. - Test (2):
| 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.
- Test (3):
| I - VS VS' | / ( n ulp )β no sorting of eigenvalues. - Test (4):
0ifWare eigenvalues ofT,1/ulpotherwise β no sorting of eigenvalues. - Test (5):
0ifT(with VS) = T(without VS),1/ulpotherwise β no sorting of eigenvalues. - Test (6):
0if eigenvalues(with VS) = eigenvalues(without VS),1/ulpotherwise β no sorting of eigenvalues. - Test (7):
0ifTis in Schur form,1/ulpotherwise β with sorting of eigenvalues. - Test (8):
| 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.
- Test (9):
| I - VS VS' | / ( n ulp )β with sorting of eigenvalues. - Test (10):
0ifWare eigenvalues ofT,1/ulpotherwise. If workspace sufficient, also compareWwith and without reciprocal condition numbers β with sorting of eigenvalues. - Test (11):
0ifT(with VS) = T(without VS),1/ulpotherwise. If workspace sufficient, also compareTwith and without reciprocal condition numbers β with sorting of eigenvalues. - Test (12):
0if eigenvalues(with VS) = eigenvalues(without VS),1/ulpotherwise. If workspace sufficient, also compareVSwith and without reciprocal condition numbers β with sorting of eigenvalues. - Test (13): if sorting worked and
SDIMis the number of eigenvalues which were SELECTed. If workspace sufficient, also compareSDIMwith and without reciprocal condition numbers. - Test (14): if
RCONDEthe same no matter ifVSand/orRCONDVcomputed. - Test (15): if
RCONDVthe same no matter ifVSand/orRCONDEcomputed. - Test (16):
|RCONDE - RCDEIN| / cond(RCONDE)
RCONDE is the reciprocal average eigenvalue condition number computed by ZGEESX 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.
- Test (17):
|RCONDV - RCDVIN| / cond(RCONDV)
RCONDV is the reciprocal right invariant subspace condition number computed by ZGEESX 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βCOMPisLOGICAL.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βJTYPEisINTEGER. Type of input matrix. Used to label output if error occurs.ISEEDβISEEDisINTEGERarray, 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βTHRESHisDOUBLE PRECISION. A test will count as a fail if the value, computed as described above, exceedsTHRESH. 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βNOUNITisINTEGER. TheFORTRANunit number for printing out error messages (e.g., if a routine returnsINFOnot equal to0).NβNisINTEGER. The dimension ofA.Nmust be at least0.AβAisCOMPLEX*16array, dimension(LDA, N). Used to hold the matrix whose eigenvalues are to be computed.LDAβLDAisINTEGER. The leading dimension ofA, andH.LDAmust be at least1and at leastN.HβHisCOMPLEX*16array, dimension(LDA, N). Another copy of the test matrixA, modified byZGEESX.HTβHTisCOMPLEX*16array, dimension(LDA, N). Yet another copy of the test matrixA, modified byZGEESX.WβWisCOMPLEX*16array, dimension(N). The computed eigenvalues ofA.WTβWTisCOMPLEX*16array, dimension(N). LikeW, this array contains the eigenvalues ofA, but those computed whenZGEESXonly computes a partial eigendecomposition, i.e. not Schur vectors.WTMPβWTMPisCOMPLEX*16array, dimension(N). LikeW, this array contains the eigenvalues ofA, but sorted by increasing real or imaginary part.VSβVSisCOMPLEX*16array, dimension(LDVS, N).VSholds the computed Schur vectors.LDVSβLDVSisINTEGER. Leading dimension ofVS. Must be at leastmax(1, N).VS1βVS1isCOMPLEX*16array, dimension(LDVS, N).VS1holds another copy of the computed Schur vectors.RCDEINβRCDEINisDOUBLE PRECISION. WhenCOMP = .TRUE.RCDEINholds the precomputed reciprocal condition number for the average of selected eigenvalues.RCDVINβRCDVINisDOUBLE PRECISION. WhenCOMP = .TRUE.RCDVINholds the precomputed reciprocal condition number for the selected right invariant subspace.NSLCTβNSLCTisINTEGER. WhenCOMP = .TRUE.the number of selected eigenvalues corresponding to the precomputed valuesRCDEINandRCDVIN.ISLCTβISLCTisINTEGERarray, 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 the J-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βISRTisINTEGER. WhenCOMP = .TRUE.,ISRTdescribes howISLCTis used to choose a subset of the spectrum. Not referenced ifCOMP = .FALSE..RESULTβRESULTisDOUBLE PRECISIONarray, dimension(17). The values computed by the 17 tests described above. The values are currently limited to1/ulp, to avoid overflow.WORKβWORKisCOMPLEX*16array, dimension(2*N*N).LWORKβLWORKisINTEGER. The number of entries inWORKto be passed toZGEESX. This must be at least2*N, andN*(N+1)/2if tests 14--16 are to be performed.RWORKβRWORKisDOUBLE PRECISIONarray, dimension(N).BWORKβBWORKisLOGICALarray, dimension(N).INFOβINFOisINTEGER. If0, successful exit. If<0, input parameter-INFOhad an incorrect value. If>0,ZGEESXreturned 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 π¦
Definition at line 331 of file zget24.f.
β¨ Author β¨
So likeβ¦ nobody actually wrote this page by hand, bestie π it's generated automatically by Doxygen for LAPACK from the source code. That's it, that's the whole author situation β the source code is the main character here and Doxygen just did its lil copy-paste slay π
π real talk: if you're citing this, cite the source code, not the auto-generated page. Doxygen is just the messenger, no cap.
And that's a wrap on TESTING/EIG/zget24.f! π¦ Go forth and vibe check your eigenvalues, bestie β you've got this, fr fr β¨
This page lived its best life as part of LAPACK, Version 3.12.0, specifically TESTING/EIG/zget24.f(3) β and it was generated from the source code with love (and by Doxygen, not by a human π«Ά). Byeee! ππ
π¦ 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