/home/abui...N/zlatme.f(3)
π /home/abui...N/zlatme.f(3) β Library Functions Manual π
okay so bestie, welcome to the manual page for /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/MATGEN/zlatme.f. This is the LAPACK test-matrix generator corner of the group chat, and it has main character energy. β¨
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/MATGEN/zlatme.f
β¨ SYNOPSIS β¨
π§ Functions/Subroutines π§
subroutine ZLATME (n, dist, iseed, d, mode, cond, dmax, rsign, upper,
sim, ds, modes, conds, kl, ku, anorm, a, lda, work, info)
ZLATME
π¦ Function/Subroutine Documentation π¦
subroutine ZLATME (integer n, character dist, integer, dimension( 4 ) iseed,
complex*16, dimension( * ) d, integer mode, double precision cond,
complex*16 dmax, character rsign, character upper, character sim, double
precision, dimension( * ) ds, integer modes, double precision conds,
integer kl, integer ku, double precision anorm, complex*16, dimension(
lda, * ) a, integer lda, complex*16, dimension( * ) work, integer info)
ZLATME
π Purpose π
ZLATME generates random non-symmetric square matrices with specified eigenvalues for testing LAPACK programs.
ZLATME operates by applying this sequence of operations β no cap, this is the whole flow:
- Set the diagonal to
D, whereDmay be input or computed according toMODE,COND,DMAX, andRSIGNas described below. - If
UPPER='T', the upper triangle ofAis set to random values out of distributionDIST. - If
SIM='T',Ais multiplied on the left by a random matrixX, whose singular values are specified byDS,MODES, andCONDS, and on the right byXinverse. - If
KL < N-1, the lower bandwidth is reduced toKLusing Householder transformations. IfKU < N-1, the upper bandwidth is reduced toKU. - If
ANORMis not negative, the matrix is scaled to have maximum-element-normANORM.
π note: since the matrix cannot be reduced beyond Hessenberg form, no packing options are available.
π Parameters π
NβNisINTEGER. The number of columns (or rows) ofA. Not modified.DISTβDISTisCHARACTER*1. On entry,DISTspecifies the type of distribution to be used to generate the random eigen-/singular values, and on the upper triangle (seeUPPER).'U'=>UNIFORM( 0, 1 )('U'for uniform)'S'=>UNIFORM( -1, 1 )('S'for symmetric)'N'=>NORMAL( 0, 1 )('N'for normal)'D'=> uniform on the complex disc|z| < 1. Not modified.
ISEEDβISEEDisINTEGER array, dimension ( 4 ). On entryISEEDspecifies the seed of the random number generator. They should lie between0and4095inclusive, andISEED(4)should be odd. The random number generator uses a linear congruential sequence limited to small integers, and so should produce machine independent random numbers. The values ofISEEDare changed on exit, and can be used in the next call toZLATMEto continue the same random number sequence. Changed on exit.DβDisCOMPLEX*16 array, dimension ( N ). This array is used to specify the eigenvalues ofA. IfMODE=0, thenDis assumed to contain the eigenvalues; otherwise they will be computed according toMODE,COND,DMAX, andRSIGNand placed inD. Modified ifMODEis nonzero.MODEβMODEisINTEGER. On entry this describes how the eigenvalues are to be specified:MODE = 0means useDas inputMODE = 1setsD(1)=1andD(2:N)=1.0/CONDMODE = 2setsD(1:N-1)=1andD(N)=1.0/CONDMODE = 3setsD(I)=COND**(-(I-1)/(N-1))MODE = 4setsD(i)=1 - (i-1)/(N-1)*(1 - 1/COND)MODE = 5setsDto random numbers in the range( 1/COND , 1 )such that their logarithms are uniformly distributed.MODE = 6setDto random numbers from same distribution as the rest of the matrix.MODE < 0has the same meaning asABS(MODE), except that the order of the elements ofDis reversed. Thus ifMODEis between1and4,Dhas entries ranging from1to1/COND; if between-1and-4,Dhas entries ranging from1/CONDto1. Not modified.
CONDβCONDisDOUBLE PRECISION. On entry, this is used as described underMODEabove. If used, it must be>= 1. Not modified.DMAXβDMAXisCOMPLEX*16. IfMODEis neither-6,0nor6, the contents ofD, as computed according toMODEandCOND, will be scaled byDMAX / max(abs(D(i))). Note thatDMAXneed not be positive or real: ifDMAXis negative or complex (or zero),Dwill be scaled by a negative or complex number (or zero). IfRSIGN='F'then the largest (absolute) eigenvalue will be equal toDMAX. Not modified.RSIGNβRSIGNisCHARACTER*1. IfMODEis not0,6, or-6, andRSIGN='T', then the elements ofD, as computed according toMODEandCOND, will be multiplied by a random complex number from the unit circle|z| = 1. IfRSIGN='F', they will not be.RSIGNmay only have the values'T'or'F'. Not modified.UPPERβUPPERisCHARACTER*1. IfUPPER='T', then the elements ofAabove the diagonal will be set to random numbers out ofDIST. IfUPPER='F', they will not.UPPERmay only have the values'T'or'F'. Not modified.SIMβSIMisCHARACTER*1. IfSIM='T', thenAwill be operated on by a (the original literally hasby a ,here, so Iβm not inventing a name, bestie), i.e., multiplied on the left by a matrixXand on the right byXinverse.X = U S V, whereUandVare random unitary matrices andSis a (diagonal) matrix of singular values specified byDS,MODES, andCONDS. IfSIM='F', thenAwill not be transformed. Not modified.DSβDSisDOUBLE PRECISION array, dimension ( N ). This array is used to specify the singular values ofX, in the same way thatDspecifies the eigenvalues ofA. IfMODE=0, theDScontains the singular values, which may not be zero. Modified ifMODEis nonzero.MODESβMODESisINTEGER. Thatβs the whole description in the source, bestie β no extra lore. π«ΆCONDSβCONDSisDOUBLE PRECISION. Similar toMODEandCOND, but for specifying the diagonal ofS.MODES=-6and+6are not allowed (since they would result in randomly ill-conditioned eigenvalues.)KLβKLisINTEGER. This specifies the lower bandwidth of the matrix.KL=1specifies upper Hessenberg form. IfKLis at leastN-1, thenAwill have full lower bandwidth. Not modified.KUβKUisINTEGER. This specifies the upper bandwidth of the matrix.KU=1specifies lower Hessenberg form. IfKUis at leastN-1, thenAwill have full upper bandwidth; ifKUandKLare both at leastN-1, thenAwill be dense. Only one ofKUandKLmay be less thanN-1. Not modified.ANORMβANORMisDOUBLE PRECISION. IfANORMis not negative, thenAwill be scaled by a non-negative real number to make the maximum-element-norm ofAto beANORM. Not modified.AβAisCOMPLEX*16 array, dimension ( LDA, N ). On exitAis the desired test matrix. Modified.LDAβLDAisINTEGER.LDAspecifies the first dimension ofAas declared in the calling program.LDAmust be at leastM. Not modified. (iykyk: yes, the source saysMthere β keeping it exactly as written, fr fr.)WORKβWORKisCOMPLEX*16 array, dimension ( 3*N ). Workspace. Modified.INFOβINFOisINTEGER. Error code. On exit,INFOwill be set to one of the following values β vibe check on every code:0=> normal return-1=>Nnegative-2=>DISTillegal string-5=>MODEnot in range-6to6-6=>CONDless than1.0, andMODEneither-6,0nor6-9=>RSIGNis not'T'or'F'-10=>UPPERis not'T'or'F'-11=>SIMis not'T'or'F'-12=>MODES=0andDShas a zero singular value.-13=>MODESis not in the range-5to5.-14=>MODESis nonzero andCONDSis less than1.-15=>KLis less than1.-16=>KUis less than1, orKLandKUare both less thanN-1.-19=>LDAis less thanM.1=> Error return fromZLATM1(computingD)2=> Cannot scale toDMAX(max. eigenvalue is0)3=> Error return fromDLATM1(computingDS)4=> Error return fromZLARGE5=> Zero singular value fromDLATM1.
π Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 296 of file zlatme.f.
β¨ AUTHOR β¨
Okay so plot twist: there's literally no human author here, bestie. π This page was generated automatically by Doxygen for LAPACK from the source code. That's it, that's the whole author. A robot read the source and spit out the docs, and honestly? It ate. π π€
So if you're out here like "who wrote this, I need to send them a thank-you note" β no you don't, it was Doxygen. No cap. The source code is the main character, Doxygen is just the hype girl. π«Ά
Lowkey important: because the docs are auto-generated from the actual source, the source is the vibe check. If something looks off, yell at the code (or the robot), not at a person. π
And that's the whole page, bestie β go forth and call ZLATME responsibly. πΈ
Source: LAPACK, Version 3.12.0. Page file: /home/abui...N/zlatme.f(3). Auto-generated by Doxygen, so, like, respect the machinery. β¨π¦
Stay slay, stay documented. ππ
π¦ 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