CLARFG(3)
π
CLARFG (3) β from the Library Functions Manual π
So bestie, the file we're talking about is literally this one:
/home/abuild/rpmbuild/BUILD/lapack-
static-3.12.0-build/lapack-3.12.0/SRC/clarfg.f
That's the NAME section, yeah β it's a Fortran source file, iykyk. β¨
β¨ SYNOPSIS β¨
π¦ Functions/Subroutines
subroutine CLARFG (n, alpha, x, incx, tau)
CLARFG generates an elementary reflector (Householder matrix).
πΈ Function/Subroutine Documentation πΈ
subroutine CLARFG (integer n, complex alpha, complex, dimension( * ) x,
integer incx, complex tau)
CLARFG generates an elementary reflector (Householder matrix). periodt. π
π Purpose:
!>
!> CLARFG generates a complex elementary reflector H of order n, such
!> that
!>
!> H**H * ( alpha ) = ( beta ), H**H * H = I.
!> ( x ) ( 0 )
!>
!> where alpha and beta are scalars, with beta real, and x is an
!> (n-1)-element complex vector. H is represented in the form
!>
!> H = I - tau * ( 1 ) * ( 1 v**H ) ,
!> ( v )
!>
!> where tau is a complex scalar and v is a complex (n-1)-element
!> vector. Note that H is not hermitian.
!>
!> If the elements of x are all zero and alpha is real, then tau = 0
!> and H is taken to be the unit matrix.
!>
!> Otherwise 1 <= real(tau) <= 2 and abs(tau-1) <= 1 .
!>
Okay so like, translation bestie: you hand it a scalar alpha and a vector x, and it builds you a complex elementary reflector H of order n that zeroes out x and leaves you with a real beta. Math slay. π₯
Big mood notes though, fr fr:
His NOT hermitian β the page says it right there, don't come for me. π- If every element of
xis zero andalphais real βtau = 0andHis just the unit matrix. Chill. π - Otherwise you get
1 <= real(tau) <= 2andabs(tau-1) <= 1. Those are the bounds, no cap. β
π Parameters
N
!> N is INTEGER
!> The order of the elementary reflector.
It's an INTEGER, and it's literally the order of the elementary reflector. Main character parameter. β¨
ALPHA
!> ALPHA is COMPLEX
!> On entry, the value alpha.
!> On exit, it is overwritten with the value beta.
COMPLEX. Comes in as alpha, leaves as beta β she gets a whole glow-up on the way out. π overwritten, bestie, so don't go looking for alpha afterwards.
X
!> X is COMPLEX array, dimension
!> (1+(N-2)*abs(INCX))
!> On entry, the vector x.
!> On exit, it is overwritten with the vector v.
COMPLEX array, dimension (1+(N-2)*abs(INCX)) β copy that exactly, it's giving "you will need this many elements" energy. Goes in as x, comes out as v. π¦
INCX
!> INCX is INTEGER
!> The increment between elements of X. INCX > 0.
INTEGER, the stride between elements of X, and INCX > 0 β that's a requirement, not a suggestion, okay? π
TAU
!> TAU is COMPLEX
!> The value tau.
COMPLEX, and it's the value tau. Short king, does its job. π«Ά
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
The whole squad, icons only. π
β Definition at line 105 of file clarfg.f.
π Author (again, but the meta one)
Generated automatically by Doxygen for LAPACK from the source code. Not me writing it by hand, the robots did that part. π§
Quick vibe check before you go:TAUis an output,ALPHAandXget overwritten, andHis not hermitian. That's the whole tea. π
~ and that's the page, bestie ~ π
β¨ This little number comes from LAPACK, Version 3.12.0, and the source file lives at /home/abui...RC/clarfg.f(3) β go off, Householder icon. ππ¦π
π¦ 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