/home/abui...RC/dlarf.f(3)

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

πŸ’… dlarf.f(3) β€” the manual, but make it make sense πŸ¦‹

okay bestie, so this is the manual page for dlarf.f(3), and the actual file it documents lives at:

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dlarf.f

yes that whole entire path, she's long, she's giving deeply nested build directory energy, and we respect her for it πŸ’–


✨ NAME ✨

the path above, bestie β€” that's the name section. it's literally just the file path. iconic minimalist behaviour, no notes πŸŽ€


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine DLARF (side, m, n, v, incv, tau, c, ldc, work) β€” DLARF applies an elementary reflector to a general rectangular matrix. that's her whole job description and she ate πŸ’…

πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

subroutine DLARF (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)

DLARF applies an elementary reflector to a general rectangular matrix. no cap, that's the summary ✨

πŸ’œ Purpose:

!>
!> DLARF 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.
!>

so basically H is built out of an identity matrix minus tau times v times v**T, where tau is a real scalar and v is a real vector. and super important bestie: if tau = 0, H is just taken to be the unit matrix β€” like she's not even trying, and honestly? valid πŸ™ˆ


🌈 Parameters

  • SIDE β€” SIDE is CHARACTER*1, and she decides which side we're applying from:
    • = 'L': form H * C
    • = 'R': form C * H

pick your side, bestie, there are exactly two πŸ’…

  • M β€” M is INTEGER, aka the number of rows of the matrix C. count 'em πŸ”₯
  • N β€” N is INTEGER, aka the number of columns of the matrix C. also count 'em 🫢
  • V β€” V is 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. and heads up: V is not used if TAU = 0. she's off duty in that case 😌

  • INCV β€” INCV is INTEGER, the increment between elements of v. also: INCV <> 0. that is not a suggestion, bestie, it literally cannot be zero πŸ’€
  • TAU β€” TAU is DOUBLE PRECISION, the value tau in the representation of H. main character scalar ⭐
  • C β€” C is 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'. she gets transformed in place, no copy, we love efficiency πŸ’–
  • LDC β€” LDC is INTEGER, the leading dimension of the array C. requirement: LDC >= max(1,M). do not skip the vibe check on that one πŸ¦‹
  • WORK β€” WORK is DOUBLE PRECISION array, dimension:
    • (N) if SIDE = 'L'
    • or (M) if SIDE = 'R'

scratch space, but make it dimensionally correct ✨


🧚 Author

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

the whole squad contributed, periodt πŸ‘‘


⭐ Definition at line 123 of file dlarf.f.

that's where she's defined, in case you need to go look at the source and feel something 🌸


πŸ’œ Author

Generated automatically by Doxygen for LAPACK from the source code. not a human, just a documentation robot doing her little task πŸŽ€


and that's the page, bestie!! this was LAPACK, Version 3.12.0, with dlarf.f(3) right there in the manual header β€” go forth and apply those elementary reflectors responsibly πŸ¦‹πŸ’…βœ¨

πŸ“¦ where this page comes from