SRC/dlarfg.f(3)

πŸ’… SRC/dlarfg.f β€” dlarfg(3), from the LAPACK gang

okay so bestie, welcome to SRC/dlarfg.f(3) β€” yes that's the file name, that's the whole NAME section, she's lowkey mysterious like that. This page lives in the Library Functions Manual and it's all about one lil subroutine that does one big slay. πŸŽ€


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine dlarfg (n, alpha, x, incx, tau)

DLARFG generates an elementary reflector (Householder matrix). That's her whole personality, and honestly? Iconic. πŸ‘‘


πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine dlarfg (integer n, double precision alpha, double precision,
    dimension( * ) x, integer incx, double precision tau)

DLARFG generates an elementary reflector (Householder matrix). Fr fr, that's what she does.

πŸ’– Purpose:

!> !> DLARFG generates a real elementary reflector H of order n, such !> that !> !> H * ( alpha ) = ( beta ), HT * H = I. !> ( x ) ( 0 ) !> !> where alpha and beta are scalars, and x is an (n-1)-element real !> vector. H is represented in the form !> !> H = I - tau * ( 1 ) * ( 1 vT ) , !> ( v ) !> !> where tau is a real scalar and v is a real (n-1)-element !> vector. !> !> If the elements of x are all zero, then tau = 0 and H is taken to be !> the unit matrix. !> !> Otherwise 1 <= tau <= 2. !>

so like. she takes your alpha and your x, and she builds a real elementary reflector H of order n that annihilates x β€” sends it straight to zero town while alpha becomes beta. And H**T * H = I, meaning she's orthogonal, meaning she's that girl. 🌸

She stores H compactly as H = I - tau * ( 1 ) * ( 1 v**T ) with the vector v tucked underneath, tau a real scalar, v a real (n-1)-element vector.

And if every single element of x is zero (respect the introverts 🫢), then tau = 0 and H is just the unit matrix β€” nothing to see here. Otherwise 1 <= tau <= 2. No cap.


🌈 Parameters

  • N β€” N is INTEGER, the order of the elementary reflector. Like, how big is she.
  • ALPHA β€” ALPHA is DOUBLE PRECISION. On entry, the value alpha. On exit, it's overwritten with the value beta (yes bestie she will eat your input, that's the deal πŸ’€).
  • X β€” X is DOUBLE PRECISION array, dimension (1+(N-2)*abs(INCX)). On entry, the vector x. On exit, it's overwritten with the vector v. Same energy, new contents. ✨
  • INCX β€” INCX is INTEGER, the increment between elements of X. INCX > 0 β€” that's not optional, that's a requirement. mind the constraint bestie.
  • TAU β€” TAU is DOUBLE PRECISION, the value tau. she's the scalar main character.

πŸ‘‘ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition at line 105 of file dlarfg.f.


⭐ Author

Generated automatically by Doxygen for LAPACK from the source code. (not a human, a robot, and she ate πŸ’…)


that's the whole page babes β€” LAPACK Version 3.12.0, page SRC/dlarfg.f(3), and yeah the automagic generator did the authoring so don't come for me about the prose. mwah, go householder something πŸ§šπŸ’œ

πŸ“¦ where this page comes from