/home/abui...D/dlatzm.f(3)
π dlatzm.f β from the LAPACK Library Functions Manual β¨
Okay bestie, so this whole file lives at:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/DEPRECATED/dlatzm.f
and yeah, you clocked it β that path literally has DEPRECATED in it. That's not me being shady, that's just the truth of it π«Ά
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/DEPRECATED/dlatzm.f
That's it, that's the name, the whole entire thing, no notes π (LAPACK manpages name things by their path, it's giving "my legal name is my social security number" energy)
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine DLATZM (side, m, n, v, incv, tau, c1, c2, ldc, work)β that's our girl. DLATZM. Say it with your chest.
π Function/Subroutine Documentation π
subroutine DLATZM (character side, integer m, integer n, double precision,
dimension( * ) v, integer incv, double precision tau, double precision,
dimension( ldc, * ) c1, double precision, dimension( ldc, * ) c2,
integer ldc, double precision, dimension( * ) work)
DLATZM. Again. For the people in the back π£
π Purpose π
β οΈ Okay so first things first, and I need you to hear me: this routine is deprecated and has been replaced by routineDORMRZ. She's retired, she's living her best life in the DEPRECATED folder, and you should probably be callingDORMRZinstead. But she still shows up to the function, and the facts are the facts, so let's learn her π
DLATZM applies a Householder matrix generated by DTZRQF to a matrix.
Let
P = I - tau*u*u**T, u = ( 1 ),
( v )
where v is an (m-1) vector if SIDE = 'L', or a (n-1) vector if SIDE = 'R'.
If SIDE equals 'L', let
C = [ C1 ] 1
[ C2 ] m-1
n
Then C is overwritten by P*C.
If SIDE equals 'R', let
C = [ C1, C2 ] m
1 n-1
Then C is overwritten by C*P.
Not her doing a little glow-up on your matrix. Iconic behavior, no cap πΈ
π Parameters π
β SIDE
SIDEisCHARACTER*1-= 'L': formP * C-= 'R': formC * P
Pick a side bestie, literally β left or right, those are the only two options π¦
β M
MisINTEGERThe number of rows of the matrixC.
Rows. The up-and-down ones. You got this π«Ά
β N
NisINTEGERThe number of columns of the matrixC.
Columns. The side-to-side ones. Slay β¨
β V
VisDOUBLE PRECISION array, dimensionfortran (1 + (M-1)*abs(INCV)) if SIDE = 'L' (1 + (N-1)*abs(INCV)) if SIDE = 'R'The vectorvin the representation ofP.Vis not used ifTAU = 0.
Little side note, and I mean this gently: if TAU = 0, V is quite literally not even looked at. She's off the clock π
β INCV
INCVisINTEGERThe increment between elements ofv.INCV <> 0
The stride, the skip, the "how far apart are we walking." And yes, INCV is not allowed to be 0 β that's a hard no π
β TAU
TAUisDOUBLE PRECISIONThe valuetauin the representation ofP.
The scalar. The moment. The tau. π
β C1
C1isDOUBLE PRECISION array, dimensionfortran (LDC,N) if SIDE = 'L' (M,1) if SIDE = 'R'On entry, then-vectorC1ifSIDE = 'L', or them-vectorC1ifSIDE = 'R'. On exit, the first row ofP*CifSIDE = 'L', or the first column ofC*PifSIDE = 'R'.
In she goes, out she comes. Main character energy, truly π
β C2
C2isDOUBLE PRECISION array, dimensionfortran (LDC, N) if SIDE = 'L' (LDC, N-1) if SIDE = 'R'On entry, the(m - 1) x nmatrixC2ifSIDE = 'L', or them x (n - 1)matrixC2ifSIDE = 'R'. On exit, rows2:mofP*CifSIDE = 'L', or columns2:mofC*PifSIDE = 'R'.
C2 is the supporting actress and honestly she's carrying the whole scene. Also note the exit description says columns 2:m of C*P for SIDE = 'R' β I'm just the messenger, writing it exactly as the source says it π
β LDC
LDCisINTEGERThe leading dimension of the arraysC1andC2.LDC >= (1,M)
The leading dimension, i.e. how wide the array actually is in memory. Hard requirement bestie: LDC >= (1,M). No negotiating π
β WORK
WORKisDOUBLE PRECISION array, dimensionfortran (N) if SIDE = 'L' (M) if SIDE = 'R'
Scratch space. Everybody needs a little room to think π
πΈ Author πΈ
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Four institutions, one subroutine. Group project that actually got finished, we love to see it π₯
π§ Definition at line 150 of file dlatzm.f.
Yeah. Line 150. You want to go read it yourself, she's right there π
β Author (again, yes, really) β
Generated automatically by Doxygen for LAPACK from the source code.
It wasn't even hand-written, the robots did this one. Not me being shady, that's just what the manpage says π
That's the whole tea, bestie β deprecated queen, Householder matrix, DORMRZ is the successor, go in peace π«Ά
LAPACK Β· Version 3.12.0 Β· /home/abui...D/dlatzm.f(3) β mwah, that's the sign-off, see you at the next man page πβ¨π
π¦ 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