TESTING/EIG/sget23.f(3)
π NAME π
okay bestie, this page is from the Library Functions Manual and it's literally all about TESTING/EIG/sget23.f π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine sget23 (comp, balanc, jtype, thresh, iseed, nounit, n, a,
lda, h, wr, wi, wr1, wi1, vl, ldvl, vr, ldvr, lre, ldlre, rcondv,
rcndv1, rcdvin, rconde, rcnde1, rcdein, scale, scale1, result, work,
lwork, iwork, info)
SGET23
πΈ Function/Subroutine Documentation πΈ
subroutine sget23 (logical comp, character balanc, integer jtype, real thresh, integer, dimension( 4 ) iseed, integer nounit, integer n, real, dimension( lda, * ) a, integer lda, real, dimension( lda, * ) h, real, dimension( * ) wr, real, dimension( * ) wi, real, dimension( * ) wr1, real, dimension( * ) wi1, real, dimension( ldvl, * ) vl, integer ldvl, real, dimension( ldvr, * ) vr, integer ldvr, real, dimension( ldlre, * ) lre, integer ldlre, real, dimension( * ) rcondv, real, dimension( * ) rcndv1, real, dimension( * ) rcdvin, real, dimension( * ) rconde, real, dimension( * ) rcnde1, real, dimension( * ) rcdein, real, dimension( * ) scale, real, dimension( * ) scale1, real, dimension( 11 ) result, real, dimension( * ) work, integer lwork, integer, dimension( * ) iwork, integer info)
subroutine sget23 (logical comp, character balanc, integer jtype, real
thresh, integer, dimension( 4 ) iseed, integer nounit, integer n, real,
dimension( lda, * ) a, integer lda, real, dimension( lda, * ) h, real,
dimension( * ) wr, real, dimension( * ) wi, real, dimension( * ) wr1,
real, dimension( * ) wi1, real, dimension( ldvl, * ) vl, integer ldvl,
real, dimension( ldvr, * ) vr, integer ldvr, real, dimension( ldlre, * )
lre, integer ldlre, real, dimension( * ) rcondv, real, dimension( * )
rcndv1, real, dimension( * ) rcdvin, real, dimension( * ) rconde, real,
dimension( * ) rcnde1, real, dimension( * ) rcdein, real, dimension( * )
scale, real, dimension( * ) scale1, real, dimension( 11 ) result, real,
dimension( * ) work, integer lwork, integer, dimension( * ) iwork,
integer info)
SGET23
this is the whole signature, no cap. every single argument is iconic in its own way π«Ά
π― Purpose π―
okay so SGET23 checks the nonsymmetric eigenvalue problem driver SGEEVX. here's the tea:
- if
COMP = .FALSE., the first 8 of the following tests will be performed on the input matrixA, and also test 9 ifLWORKis sufficiently large. - if
COMPis.TRUE., all 11 tests will be performed.
now the tests, bestie:
| A * VR - VR * W | / ( n |A| ulp )hereVRis the matrix of unit right eigenvectors.Wis a block diagonal matrix, with a 1x1 block for each real eigenvalue and a 2x2 block for each complex conjugate pair. if eigenvaluesjandj+1are a complex conjugate pair, soWR(j) = WR(j+1) = wrandWI(j) = - WI(j+1) = wi, then the 2 x 2 block corresponding to the pair will be:
( wr wi )
( -wi wr )
such a block multiplying an n x 2 matrix ( ur ui ) on the right will be the same as multiplying ur + i*ui by wr + i*wi.
| A**H * VL - VL * W**H | / ( n |A| ulp )hereVLis the matrix of unit left eigenvectors,A**His the conjugate transpose ofA, andWis as above.| |VR(i)| - 1 | / ulpand largest component realVR(i)denotes the i-th column ofVR.| |VL(i)| - 1 | / ulpand largest component realVL(i)denotes the i-th column ofVL.0ifW(full) = W(partial),1/ulpotherwiseW(full)denotes the eigenvalues computed whenVR,VL,RCONDVandRCONDEare also computed, andW(partial)denotes the eigenvalues computed when only some ofVR,VL,RCONDV, andRCONDEare computed.0ifVR(full) = VR(partial),1/ulpotherwiseVR(full)denotes the right eigenvectors computed whenVL,RCONDVandRCONDEare computed, andVR(partial)denotes the result when only some ofVLandRCONDVare computed.0ifVL(full) = VL(partial),1/ulpotherwiseVL(full)denotes the left eigenvectors computed whenVR,RCONDVandRCONDEare computed, andVL(partial)denotes the result when only some ofVRandRCONDVare computed.0ifSCALE, ILO, IHI, ABNRM (full) = SCALE, ILO, IHI, ABNRM (partial),1/ulpotherwiseSCALE,ILO,IHIandABNRMdescribe how the matrix is balanced.(full)is whenVR,VL,RCONDEandRCONDVare also computed, and(partial)is when some are not computed.0ifRCONDV(full) = RCONDV(partial),1/ulpotherwiseRCONDV(full)denotes the reciprocal condition numbers of the right eigenvectors computed whenVR,VLandRCONDEare also computed.RCONDV(partial)denotes the reciprocal condition numbers when only some ofVR,VLandRCONDEare computed.|RCONDV - RCDVIN| / cond(RCONDV)RCONDVis the reciprocal right eigenvector condition number computed bySGEEVXandRCDVIN(the precomputed true value) is supplied as input.cond(RCONDV)is the condition number ofRCONDV, and takes errors in computingRCONDVinto account, so that the resulting quantity should beO(ULP).cond(RCONDV)is essentially given bynorm(A)/RCONDE.|RCONDE - RCDEIN| / cond(RCONDE)RCONDEis the reciprocal eigenvalue condition number computed bySGEEVXandRCDEIN(the precomputed true value) is supplied as input.cond(RCONDE)is the condition number ofRCONDE, and takes errors in computingRCONDEinto account, so that the resulting quantity should beO(ULP).cond(RCONDE)is essentially given bynorm(A)/RCONDV.
π Parameters π
okay now the parameters, one by one. no skipping, bestie.
COMPβLOGICAL. describes which input tests to perform:= .FALSE.if the computed condition numbers are not to be tested againstRCDVINandRCDEIN= .TRUE.if they are to be compared
BALANCβCHARACTER. describes the balancing option to be tested.= 'N'for no permuting or diagonal scaling= 'P'for permuting but no diagonal scaling= 'S'for no permuting but diagonal scaling= 'B'for permuting and diagonal scaling
JTYPEβINTEGER. type of input matrix. used to label output if error occurs.THRESHβREAL. a test will count as a fail if the error, 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.
bestie, THRESH must be at least zero, no cap. don't come at me with negative numbers π
ISEEDβ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.NOUNITβINTEGER. the FORTRAN unit number for printing out error messages (e.g., if a routine returnsINFOnot equal to0.)NβINTEGER. the dimension ofA.Nmust be at least0.AβREAL array, dimension (LDA,N). used to hold the matrix whose eigenvalues are to be computed.LDAβINTEGER. the leading dimension ofA, andH.LDAmust be at least1and at leastN.HβREAL array, dimension (LDA,N). another copy of the test matrixA, modified bySGEEVX.WRβREAL array, dimension (N).WIβREAL array, dimension (N). the real and imaginary parts of the eigenvalues ofA. on exit,WR + WI*iare the eigenvalues of the matrix inA.WR1βREAL array, dimension (N).WI1βREAL array, dimension (N). likeWR,WI, these arrays contain the eigenvalues ofA, but those computed whenSGEEVXonly computes a partial eigendecomposition, i.e. not the eigenvalues and left and right eigenvectors.VLβREAL array, dimension (LDVL,N).VLholds the computed left eigenvectors.LDVLβINTEGER. leading dimension ofVL. must be at leastmax(1,N).VRβREAL array, dimension (LDVR,N).VRholds the computed right eigenvectors.LDVRβINTEGER. leading dimension ofVR. must be at leastmax(1,N).LREβREAL array, dimension (LDLRE,N).LREholds the computed right or left eigenvectors.LDLREβINTEGER. leading dimension ofLRE. must be at leastmax(1,N).RCONDVβREAL array, dimension (N).RCONDVholds the computed reciprocal condition numbers for eigenvectors.RCNDV1βREAL array, dimension (N).RCNDV1holds more computed reciprocal condition numbers for eigenvectors.RCDVINβREAL array, dimension (N). whenCOMP = .TRUE.RCDVINholds the precomputed reciprocal condition numbers for eigenvectors to be compared withRCONDV.RCONDEβREAL array, dimension (N).RCONDEholds the computed reciprocal condition numbers for eigenvalues.RCNDE1βREAL array, dimension (N).RCNDE1holds more computed reciprocal condition numbers for eigenvalues.RCDEINβREAL array, dimension (N). whenCOMP = .TRUE.RCDEINholds the precomputed reciprocal condition numbers for eigenvalues to be compared withRCONDE.SCALEβSCALEβ itβs aREALarray, dimension (N). It holds the info describing the balancing of the matrix. π«ΆSCALE1β also aREALarray, dimension (N), and it holds information describing balancing of the matrix. β¨RESULTβ aREALarray, dimension (11). These are the values computed by the 11 tests described above, and theyβre currently limited to1/ulp, to avoid overflow. πWORKβ aREALarray, dimension (LWORK). π§LWORKβINTEGER. This is the number of entries inWORK. It must be at least3*N, and6*N+N**2if tests 9, 10 or 11 are to be performed. π₯IWORKβ anINTEGERarray, dimension (2*N). πΈINFOβINTEGER. The vibe check goes like this:- If
0, successful exit. β - If
<0, input parameter-INFOhad an incorrect value. π - If
>0,SGEEVXreturned an error code, the absolute value of which is returned. π
- If
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 373 of file sget23.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code.
π Source/version check, bestie: LAPACK Version 3.12.0, page TESTING/EIG/sget23.f(3) β and the footerβs date isnβt separately listed here, so no invented date, periodt. Stay iconic! β¨
π¦ 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