larz(3)

🌸 NAME 🌸

larz β€” larz: apply reflector

Okay so real talk, bestie: this is the larz(3) page from the Library Functions Manual, and it's the whole family of reflector-applying routines 🫢. That's clarz, dlarz, slarz and zlarz β€” one for each flavour of arithmetic, all doing the same iconic little job. Buckle up, there's a lot of parameters, but it's all gonna make sense πŸ’…


✨ SYNOPSIS ✨

πŸ’« Functions

subroutine clarz (side, m, n, l, v, incv, tau, c, ldc, work)
subroutine dlarz (side, m, n, l, v, incv, tau, c, ldc, work)
subroutine slarz (side, m, n, l, v, incv, tau, c, ldc, work)
subroutine zlarz (side, m, n, l, v, incv, tau, c, ldc, work)
  • clarz β€” CLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix. πŸ’–
  • dlarz β€” DLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix. πŸ’–
  • slarz β€” SLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix. πŸ’–
  • zlarz β€” ZLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix. πŸ’–

πŸŽ€ Detailed Description πŸŽ€

Not gonna lie, this section is literally empty in the original β€” the actual detail lives down in Function Documentation, so scroll with me, bestie β¬‡οΈπŸ’…


πŸ‘‘ Function Documentation πŸ‘‘


🌈 clarz β€” the complex one

subroutine clarz (character side, integer m, integer n, integer l, complex, dimension( * ) v, integer incv, complex tau, complex, dimension( ldc, * ) c, integer ldc, complex, dimension( * ) work)

CLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix.

πŸ”₯ Purpose

Okay so CLARZ applies a complex elementary reflector H to a complex M-by-N matrix C, and it can do it from either the left or the right. Neat, right? πŸ¦‹

H is represented in the form

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

where tau is a complex scalar and v is a complex vector. No cap.

If tau = 0, then H is taken to be the unit matrix. (RIP to the reflector, it's just the identity now πŸ’€)

To apply H**H (the conjugate transpose of H), supply conjg(tau) instead. ✨

H is a product of k elementary reflectors as returned by CTZRZF.

🧚 Parameters

  • SIDE β€” SIDE is CHARACTER*1
    • = 'L': form H * C
    • = 'R': form C * H
  • M β€” M is INTEGER. The number of rows of the matrix C.
  • N β€” N is INTEGER. The number of columns of the matrix C.
  • L β€” L is INTEGER. The number of entries of the vector V containing the meaningful part of the Householder vectors. If SIDE = 'L', M >= L >= 0; if SIDE = 'R', N >= L >= 0. 🎯
  • V β€” V is COMPLEX array, dimension (1+(L-1)*abs(INCV)). The vector v in the representation of H as returned by CTZRZF. V is not used if TAU = 0.
  • INCV β€” INCV is INTEGER. The increment between elements of v. INCV <> 0. ⚠️ That's a "not equal to zero", bestie, don't test it with a zero.
  • TAU β€” TAU is COMPLEX. The value tau in the representation of H.
  • C β€” C is COMPLEX 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'. 🫢 (yes, overwritten β€” it's giving destructive and unbothered)
  • LDC β€” LDC is INTEGER. The leading dimension of the array C. LDC >= max(1,M).
  • WORK β€” WORK is COMPLEX array, dimension (N) if SIDE = 'L' or (M) if SIDE = 'R'.

πŸ’œ Author

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

πŸ“ Contributors:

  • A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA

⭐ Further Details:

(empty in the original β€” there is literally nothing after the !> marker, so nothing to report, bestie πŸ™ˆ)

Definition at line 146 of file clarz.f.


🌸 dlarz β€” the double precision one

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

DLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix.

πŸ”₯ Purpose

DLARZ 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. 🫢

H is a product of k elementary reflectors as returned by DTZRZF.

Heads up: this one is the real/transpose flavour β€” no **H conjugate business here, it's v**T all the way. πŸ’…

🧚 Parameters

  • SIDE β€” SIDE is CHARACTER*1
    • = 'L': form H * C
    • = 'R': form C * H
  • M β€” M is INTEGER. The number of rows of the matrix C.
  • N β€” N is INTEGER. The number of columns of the matrix C.
  • L β€” L is INTEGER. The number of entries of the vector V containing the meaningful part of the Householder vectors. If SIDE = 'L', M >= L >= 0; if SIDE = 'R', N >= L >= 0. 🎯
  • V β€” V is DOUBLE PRECISION array, dimension (1+(L-1)*abs(INCV)). The vector v in the representation of H as returned by DTZRZF. V is not used if TAU = 0.
  • INCV β€” INCV is INTEGER. The increment between elements of v. INCV <> 0. ⚠️
  • TAU β€” TAU is DOUBLE PRECISION. The value tau in the representation of H.
  • 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'.
  • LDC β€” LDC is INTEGER. The leading dimension of the array C. LDC >= max(1,M).
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (N) if SIDE = 'L' or (M) if SIDE = 'R'.

πŸ’œ Author

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

πŸ“ Contributors:

  • A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA

⭐ Further Details:

(also empty, iconically πŸ™ˆ)

Definition at line 144 of file dlarz.f.


🌼 slarz β€” the single precision one

subroutine slarz (character side, integer m, integer n, integer l, real, dimension( * ) v, integer incv, real tau, real, dimension( ldc, * ) c, integer ldc, real, dimension( * ) work)

SLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix.

πŸ”₯ Purpose

SLARZ 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. 🫢

H is a product of k elementary reflectors as returned by STZRZF.

Same shape as dlarz, just REAL instead of DOUBLE PRECISION β€” think of it as the lowkey version, different STZRZF origin story and everything. πŸ¦‹

🧚 Parameters

  • SIDE β€” SIDE is CHARACTER*1
    • = 'L': form H * C
    • = 'R': form C * H
  • M β€” M is INTEGER. The number of rows of the matrix C.
  • N β€” N is INTEGER. The number of columns of the matrix C.
  • L β€” L is INTEGER. The number of entries of the vector V containing the meaningful part of the Householder vectors. If SIDE = 'L', M >= L >= 0; if SIDE = 'R', N >= L >= 0. 🎯
  • V β€” V is REAL array, dimension (1+(L-1)*abs(INCV)). The vector v in the representation of H as returned by STZRZF. V is not used if TAU = 0.
  • INCV β€” INCV is INTEGER. The increment between elements of v. INCV <> 0. ⚠️
  • TAU β€” TAU is REAL. The value tau in the representation of H.
  • C β€” C is REAL 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'.
  • LDC β€” LDC is INTEGER. The leading dimension of the array C. LDC >= max(1,M).
  • WORK β€” WORK is REAL array, dimension (N) if SIDE = 'L' or (M) if SIDE = 'R'.

πŸ’œ Author

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

πŸ“ Contributors:

  • A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA

⭐ Further Details:

(empty again β€” the !> is just sitting there, doing nothing πŸŽ€)

Definition at line 144 of file slarz.f.


πŸ¦‹ zlarz β€” the COMPLEX*16 one

subroutine zlarz (character side, integer m, integer n, integer l, complex*16, dimension( * ) v, integer incv, complex*16 tau, complex*16, dimension( ldc, * ) c, integer ldc, complex*16, dimension( * ) work)

ZLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix.

πŸ”₯ Purpose

ZLARZ applies a complex elementary reflector H to a complex M-by-N matrix C, from either the left or the right. H is represented in the form

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

where tau is a complex scalar and v is a complex vector.

If tau = 0, then H is taken to be the unit matrix. 🫢

To apply H**H (the conjugate transpose of H), supply conjg(tau) instead. ✨

H is a product of k elementary reflectors as returned by ZTZRZF.

🧚 Parameters

  • SIDE β€” SIDE is CHARACTER*1
    • = 'L': form H * C
    • = 'R': form C * H
  • M β€” M is INTEGER. The number of rows of the matrix C.
  • N β€” N is INTEGER. The number of columns of the matrix C.
  • L β€” L is INTEGER. The number of entries of the vector V containing the meaningful part of the Householder vectors. If SIDE = 'L', M >= L >= 0; if SIDE = 'R', N >= L >= 0. 🎯
  • V
  • V β€” a COMPLEX*16 array, dimension (1+(L-1)*abs(INCV)). It’s the vector v in the representation of H as returned by ZTZRZF. Important: V is not used if TAU = 0 β€” so when tau is zero, V gets to sit this one out πŸ’….
  • INCV β€” INTEGER. The increment between elements of v. INCV <> 0. No zero-step nonsense, periodt.
  • TAU β€” COMPLEX*16. The value tau in the representation of H. Iconic little scalar ✨.
  • C β€” COMPLEX*16 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 rewritten in place, bestie β€” that’s the assignment πŸ”₯.
  • LDC β€” INTEGER. The leading dimension of the array C. LDC >= max(1,M). Respect the minimum, fr fr.
  • WORK β€” COMPLEX*16 array, dimension
    • (N) if SIDE = 'L'
    • or (M) if SIDE = 'R'

Author

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

Contributors:

A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA

Further Details:

Under here, the source block is literally just a lone !> β€” no extra lore, no side quest 🫢.

Definition at line 146 of file zlarz.f.

Author

Generated automatically by Doxygen for LAPACK from the source code.


That’s the whole page, bestie πŸ’– β€” footer check: LAPACK Version 3.12.0, page tag larz(3). The date slot is a lil empty in this footer, no cap πŸ˜­πŸ’…

πŸ“¦ where this page comes from