CLARFG(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’… 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:

  • H is NOT hermitian β€” the page says it right there, don't come for me. πŸ™ˆ
  • If every element of x is zero and alpha is real β†’ tau = 0 and H is just the unit matrix. Chill. πŸ’…
  • Otherwise you get 1 <= real(tau) <= 2 and abs(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: TAU is an output, ALPHA and X get overwritten, and H is 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