SRC/dlarf1f.f(3)

πŸ“¦ version 3.12.1, in arch rolling

πŸ’– NAME πŸ’–

Okay so bestie, this page is from the Library Functions Manual and it is literally all about SRC/dlarf1f.f. That's the file, that's the main character, that's the whole assignment. πŸŽ€


✨ SYNOPSIS ✨

🧸 Functions/Subroutines

  • subroutine dlarf1f (side, m, n, v, incv, tau, c, ldc, work) β€” DLARF1F applies an elementary reflector to a general rectangular. Periodt. πŸ¦‹

πŸ”₯ Function/Subroutine Documentation πŸ”₯

🌸 subroutine dlarf1f (character side, integer m, integer n, double precision, dimension( * ) v, integer incv, double precision tau, double precision, dimension( ldc, * ) c, integer ldc, double precision, dimension( * ) work)

DLARF1F applies an elementary reflector to a general rectangular. I know, iconic. πŸ’…

subroutine dlarf1f (character side, integer m, integer n, double precision, dimension( * ) v, integer incv, double precision tau, double precision, dimension( ldc, * ) c, integer ldc, double precision, dimension( * ) work)

🫧 Purpose

Bestie, here's the whole point: DLARF1F applies a real elementary reflector H to a real m by n matrix C, from either the left or the right. No cap. 🌈

H is represented in the form

H = I - tau * v * v**T

where tau is a real scalar and v is a real vector. Cute little formula, honestly. πŸ’œ

If tau = 0, then H is taken to be the unit matrix. So if TAU is zero, the reflector is giving very "I am the identity matrix, actually" energy. ✨

πŸ‘‘ Parameters

  • SIDE β€” SIDE is CHARACTER*1.
    • = 'L': form H * C
    • = 'R': form C * H

So it's literally choosing which side gets the reflector treatment. 🫢

  • M β€” M is INTEGER. The number of rows of the matrix C. Rows, bestie. Rows. πŸ“
  • N β€” N is INTEGER. The number of columns of the matrix C. Columns, obviously. 🌸
  • V β€” V is a DOUBLE PRECISION array, dimension:
    • (1 + (M-1)*abs(INCV)) if SIDE = 'L'
    • or (1 + (N-1)*abs(INCV)) if SIDE = 'R'

This is the vector v in the representation of H. V is not used if TAU = 0. And okay, important detail: V(1) is not referenced or modified. Not referenced, not modified, not touched, periodt. πŸ’›

  • INCV β€” INCV is INTEGER. The increment between elements of v. INCV <> 0. Do not set it to zero, babe. πŸ’€
  • TAU β€” TAU is DOUBLE PRECISION. The value tau in the representation of H. It's out here being a real scalar and a whole vibe. ⭐
  • C β€” C is a DOUBLE PRECISION array, dimension (LDC,N).
    • On entry: the m by n matrix C.
    • On exit: C is overwritten by the matrix H * C if SIDE = 'L', or C * H if SIDE = 'R'.

So yeah, C goes in as C and comes out as the reflected version. Character development, honestly. πŸ’œ

  • LDC β€” LDC is INTEGER. The leading dimension of the array C. It must satisfy LDC >= max(1,M). Respect the leading dimension, bestie. 🫢
  • WORK β€” WORK is a DOUBLE PRECISION array, dimension:
    • (N) if SIDE = 'L'
    • or (M) if SIDE = 'R'

It's the workspace. It's doing background tasks. It's the assistant manager of this subroutine. 🌟


🫢 Author 🫢

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

Definition at line 158 of file dlarf1f.f. Mark it, bestie. πŸŽ€


🧚 Author 🧚

Generated automatically by Doxygen for LAPACK from the source code. So not a human author moment this time β€” it's giving automated documentation fairy. πŸ¦‹


mwah πŸ’‹ β€” this is LAPACK Version 3.12.0, and the page is SRC/dlarf1f.f(3). Bye bestie, go slay those elementary reflectors! πŸ’–βœ¨

πŸ“¦ where this page comes from