SRC/slarz.f(3)
SRC/slarz.f π
Okay so bestie, this is literally the manual for SRC/slarz.f β a Fortran file in LAPACK that does some iconic matrix magic. It's giving "linear algebra but make it fashion" β¨
β¨ SYNOPSIS β¨
Here's the function/subroutine tea:
subroutine slarz (side, m, n, l, v, incv, tau, c, ldc, work)
SLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix. No cap, that's the whole vibe.
π Function/Subroutine Documentation π
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. Like, it literally takes a reflector and slaps it onto a 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.
So basically H is this fancy reflector thing made from tau and v. If tau is zero, H just becomes the identity matrix β like it's not even trying, periodt. And H is actually a whole product of k elementary reflectors from STZRZF. Obsessed π₯
π Parameters π
SIDEβCHARACTER*1β tells you which side the reflector goes on:= 'L': formH * C(left side, left side, left side)= 'R': formC * H(right side, right side, right side)
MβINTEGERβ the number of rows of the matrixC. Like how tall it is πNβINTEGERβ the number of columns of the matrixC. How wide it is πLβINTEGERβ the number of entries of the vectorVthat contain the meaningful part of the Householder vectors. Constraints, bestie:- If
SIDE = 'L', thenM >= L >= 0 - If
SIDE = 'R', thenN >= L >= 0
- If
VβREAL array, dimension(1+(L-1)*abs(INCV))β the vectorvin the representation ofHas returned bySTZRZF. Lowkey important:Vis not used ifTAU = 0πINCVβINTEGERβ the increment between elements ofv. AndINCV <> 0β no zero increments allowed, fr fr π«TAUβREALβ the valuetauin the representation ofH. The main character of the equation β¨CβREAL array, dimension(LDC,N)β on entry, theM-by-NmatrixC. On exit,Cis overwritten by:H * CifSIDE = 'L'C * HifSIDE = 'R'Like it literally gets replaced, no take-backsies π
LDCβINTEGERβ the leading dimension of the arrayC. Must beLDC >= max(1,M). Respect the constraint, bestie π«ΆWORKβREAL array, dimension:(N)ifSIDE = 'L'- or
(M)ifSIDE = 'R'It's the workspace, doing the behind-the-scenes work π§
π 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: π¦
!>
(That's literally it β nothing else in the further details. Iconic minimalism π)
β Definition at line 144 of file slarz.f. β
π Author π
Generated automatically by Doxygen for LAPACK from the source code. Like the robots did this one, no cap π€β¨
And that's the whole manual, bestie! LAPACK Version 3.12.0, SRC/slarz.f(3), slaying since forever. Periodt π
π
π¦ 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