larz(3)
πΈ NAME πΈ
larz β larz: apply reflector
Okay so real talk, bestie: this is the larz(3) page from the Library Functions Manual, and it's the whole family of reflector-applying routines π«Ά. That's clarz, dlarz, slarz and zlarz β one for each flavour of arithmetic, all doing the same iconic little job. Buckle up, there's a lot of parameters, but it's all gonna make sense π
β¨ SYNOPSIS β¨
π« Functions
subroutine clarz (side, m, n, l, v, incv, tau, c, ldc, work)
subroutine dlarz (side, m, n, l, v, incv, tau, c, ldc, work)
subroutine slarz (side, m, n, l, v, incv, tau, c, ldc, work)
subroutine zlarz (side, m, n, l, v, incv, tau, c, ldc, work)
clarzβ CLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix. πdlarzβ DLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix. πslarzβ SLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix. πzlarzβ ZLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix. π
π Detailed Description π
Not gonna lie, this section is literally empty in the original β the actual detail lives down in Function Documentation, so scroll with me, bestie β¬οΈπ
π Function Documentation π
π clarz β the complex one
subroutine clarz (character side, integer m, integer n, integer l, complex, dimension( * ) v, integer incv, complex tau, complex, dimension( ldc, * ) c, integer ldc, complex, dimension( * ) work)
CLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix.
π₯ Purpose
Okay so CLARZ applies a complex elementary reflector H to a complex M-by-N matrix C, and it can do it from either the left or the right. Neat, right? π¦
H is represented in the form
H = I - tau * v * v**H
where tau is a complex scalar and v is a complex vector. No cap.
If tau = 0, then H is taken to be the unit matrix. (RIP to the reflector, it's just the identity now π)
To apply H**H (the conjugate transpose of H), supply conjg(tau) instead. β¨
H is a product of k elementary reflectors as returned by CTZRZF.
π§ Parameters
SIDEβSIDEisCHARACTER*1= 'L': formH * C= 'R': formC * H
MβMisINTEGER. The number of rows of the matrixC.NβNisINTEGER. The number of columns of the matrixC.LβLisINTEGER. The number of entries of the vectorVcontaining the meaningful part of the Householder vectors. IfSIDE = 'L',M >= L >= 0; ifSIDE = 'R',N >= L >= 0. π―VβVisCOMPLEXarray, dimension(1+(L-1)*abs(INCV)). The vectorvin the representation ofHas returned byCTZRZF.Vis not used ifTAU = 0.INCVβINCVisINTEGER. The increment between elements ofv.INCV <> 0. β οΈ That's a "not equal to zero", bestie, don't test it with a zero.TAUβTAUisCOMPLEX. The valuetauin the representation ofH.CβCisCOMPLEXarray, dimension(LDC,N). On entry, theM-by-NmatrixC. On exit,Cis overwritten by the matrixH * CifSIDE = 'L', orC * HifSIDE = 'R'. π«Ά (yes, overwritten β it's giving destructive and unbothered)LDCβLDCisINTEGER. The leading dimension of the arrayC.LDC >= max(1,M).WORKβWORKisCOMPLEXarray, dimension(N)ifSIDE = 'L'or(M)ifSIDE = 'R'.
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Contributors:
- A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA
β Further Details:
(empty in the original β there is literally nothing after the !> marker, so nothing to report, bestie π)
Definition at line 146 of file clarz.f.
πΈ dlarz β the double precision one
subroutine dlarz (character side, integer m, integer n, integer l, double precision, dimension( * ) v, integer incv, double precision tau, double precision, dimension( ldc, * ) c, integer ldc, double precision, dimension( * ) work)
DLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix.
π₯ Purpose
DLARZ applies a real elementary reflector H to a real M-by-N matrix C, from either the left or the right. H is represented in the form
H = I - tau * v * v**T
where tau is a real scalar and v is a real vector.
If tau = 0, then H is taken to be the unit matrix. π«Ά
H is a product of k elementary reflectors as returned by DTZRZF.
Heads up: this one is the real/transpose flavour β no**Hconjugate business here, it'sv**Tall the way. π
π§ Parameters
SIDEβSIDEisCHARACTER*1= 'L': formH * C= 'R': formC * H
MβMisINTEGER. The number of rows of the matrixC.NβNisINTEGER. The number of columns of the matrixC.LβLisINTEGER. The number of entries of the vectorVcontaining the meaningful part of the Householder vectors. IfSIDE = 'L',M >= L >= 0; ifSIDE = 'R',N >= L >= 0. π―VβVisDOUBLE PRECISIONarray, dimension(1+(L-1)*abs(INCV)). The vectorvin the representation ofHas returned byDTZRZF.Vis not used ifTAU = 0.INCVβINCVisINTEGER. The increment between elements ofv.INCV <> 0. β οΈTAUβTAUisDOUBLE PRECISION. The valuetauin the representation ofH.CβCisDOUBLE PRECISIONarray, dimension(LDC,N). On entry, theM-by-NmatrixC. On exit,Cis overwritten by the matrixH * CifSIDE = 'L', orC * HifSIDE = 'R'.LDCβLDCisINTEGER. The leading dimension of the arrayC.LDC >= max(1,M).WORKβWORKisDOUBLE PRECISIONarray, dimension(N)ifSIDE = 'L'or(M)ifSIDE = 'R'.
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Contributors:
- A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA
β Further Details:
(also empty, iconically π)
Definition at line 144 of file dlarz.f.
πΌ slarz β the single precision one
subroutine slarz (character side, integer m, integer n, integer l, real, dimension( * ) v, integer incv, real tau, real, dimension( ldc, * ) c, integer ldc, real, dimension( * ) work)
SLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix.
π₯ Purpose
SLARZ applies a real elementary reflector H to a real M-by-N matrix C, from either the left or the right. H is represented in the form
H = I - tau * v * v**T
where tau is a real scalar and v is a real vector.
If tau = 0, then H is taken to be the unit matrix. π«Ά
H is a product of k elementary reflectors as returned by STZRZF.
Same shape asdlarz, justREALinstead ofDOUBLE PRECISIONβ think of it as the lowkey version, differentSTZRZForigin story and everything. π¦
π§ Parameters
SIDEβSIDEisCHARACTER*1= 'L': formH * C= 'R': formC * H
MβMisINTEGER. The number of rows of the matrixC.NβNisINTEGER. The number of columns of the matrixC.LβLisINTEGER. The number of entries of the vectorVcontaining the meaningful part of the Householder vectors. IfSIDE = 'L',M >= L >= 0; ifSIDE = 'R',N >= L >= 0. π―VβVisREALarray, dimension(1+(L-1)*abs(INCV)). The vectorvin the representation ofHas returned bySTZRZF.Vis not used ifTAU = 0.INCVβINCVisINTEGER. The increment between elements ofv.INCV <> 0. β οΈTAUβTAUisREAL. The valuetauin the representation ofH.CβCisREALarray, dimension(LDC,N). On entry, theM-by-NmatrixC. On exit,Cis overwritten by the matrixH * CifSIDE = 'L', orC * HifSIDE = 'R'.LDCβLDCisINTEGER. The leading dimension of the arrayC.LDC >= max(1,M).WORKβWORKisREALarray, dimension(N)ifSIDE = 'L'or(M)ifSIDE = 'R'.
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Contributors:
- A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA
β Further Details:
(empty again β the !> is just sitting there, doing nothing π)
Definition at line 144 of file slarz.f.
π¦ zlarz β the COMPLEX*16 one
subroutine zlarz (character side, integer m, integer n, integer l, complex*16, dimension( * ) v, integer incv, complex*16 tau, complex*16, dimension( ldc, * ) c, integer ldc, complex*16, dimension( * ) work)
ZLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix.
π₯ Purpose
ZLARZ applies a complex elementary reflector H to a complex M-by-N matrix C, from either the left or the right. H is represented in the form
H = I - tau * v * v**H
where tau is a complex scalar and v is a complex vector.
If tau = 0, then H is taken to be the unit matrix. π«Ά
To apply H**H (the conjugate transpose of H), supply conjg(tau) instead. β¨
H is a product of k elementary reflectors as returned by ZTZRZF.
π§ Parameters
SIDEβSIDEisCHARACTER*1= 'L': formH * C= 'R': formC * H
MβMisINTEGER. The number of rows of the matrixC.NβNisINTEGER. The number of columns of the matrixC.LβLisINTEGER. The number of entries of the vectorVcontaining the meaningful part of the Householder vectors. IfSIDE = 'L',M >= L >= 0; ifSIDE = 'R',N >= L >= 0. π―VVβ aCOMPLEX*16array, dimension(1+(L-1)*abs(INCV)). Itβs the vectorvin the representation ofHas returned byZTZRZF. Important:Vis not used ifTAU = 0β so when tau is zero, V gets to sit this one out π .INCVβINTEGER. The increment between elements ofv.INCV <> 0. No zero-step nonsense, periodt.TAUβCOMPLEX*16. The valuetauin the representation ofH. Iconic little scalar β¨.CβCOMPLEX*16array, dimension(LDC,N). On entry, theM-by-NmatrixC. On exit,Cis overwritten by the matrixH * CifSIDE = 'L', orC * HifSIDE = 'R'. She gets rewritten in place, bestie β thatβs the assignment π₯.LDCβINTEGER. The leading dimension of the arrayC.LDC >= max(1,M). Respect the minimum, fr fr.WORKβCOMPLEX*16array, dimension(N)ifSIDE = 'L'- or
(M)ifSIDE = 'R'
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Contributors:
A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA
Further Details:
Under here, the source block is literally just a lone !> β no extra lore, no side quest π«Ά.
Definition at line 146 of file zlarz.f.
Author
Generated automatically by Doxygen for LAPACK from the source code.
Thatβs the whole page, bestie π β footer check: LAPACK Version 3.12.0, page tag larz(3). The date slot is a lil empty in this footer, no cap ππ
π¦ 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