larzb(3)

πŸ¦‹ NAME πŸ¦‹

larzb β€” bestie, this is the "apply block reflector" situation, the LAPACK-level glow-up where a block reflector H (or its transpose / conjugate-transpose) gets applied to a general matrix C. Real ones know.


✨ SYNOPSIS ✨

Functions

  • subroutine clarzb (side, trans, direct, storev, m, n, k, l, v, ldv, t, ldt, c, ldc, work, ldwork) β€” CLARZB applies a block reflector or its conjugate-transpose to a general matrix.
  • subroutine dlarzb (side, trans, direct, storev, m, n, k, l, v, ldv, t, ldt, c, ldc, work, ldwork) β€” DLARZB applies a block reflector or its transpose to a general matrix.
  • subroutine slarzb (side, trans, direct, storev, m, n, k, l, v, ldv, t, ldt, c, ldc, work, ldwork) β€” SLARZB applies a block reflector or its transpose to a general matrix.
  • subroutine zlarzb (side, trans, direct, storev, m, n, k, l, v, ldv, t, ldt, c, ldc, work, ldwork) β€” ZLARZB applies a block reflector or its conjugate-transpose to a general matrix.

🌈 Detailed Description

Okay so like β€” the whole family is here: the C (complex), D (double precision), S (real), and Z (double complex) versions, all living their main character energy in the same manpage. Same signature shape, different precision flavour. Pick the one that matches your data type and go πŸ’…


πŸŽ€ Function Documentation πŸŽ€

subroutine clarzb

subroutine clarzb (character side, character trans, character direct,
    character storev, integer m, integer n, integer k, integer l, complex,
    dimension( ldv, * ) v, integer ldv, complex, dimension( ldt, * ) t,
    integer ldt, complex, dimension( ldc, * ) c, integer ldc, complex,
    dimension( ldwork, * ) work, integer ldwork)

CLARZB applies a block reflector or its conjugate-transpose to a general matrix. ✨

Purpose

CLARZB applies a complex block reflector H, or its transpose H**H, to a complex distributed M-by-N C β€” and it can come at it from the left or the right, whatever the vibe calls for.

🚨 Real talk: currently, only STOREV = 'R' and DIRECT = 'B' are supported. Anything else? Not today, bestie.

Parameters

  • SIDE β€” SIDE is CHARACTER*1. = 'L': apply H or H**H from the Left. = 'R': apply H or H**H from the Right. Pick a lane 🫢
  • TRANS β€” TRANS is CHARACTER*1. = 'N': apply H (No transpose). = 'C': apply H**H (Conjugate transpose).
  • DIRECT β€” DIRECT is CHARACTER*1. It tells you how H is formed from a product of elementary reflectors. = 'F': H = H(1) H(2) . . . H(k) (Forward, not supported yet πŸ™ˆ). = 'B': H = H(k) . . . H(2) H(1) (Backward).
  • STOREV β€” STOREV is CHARACTER*1. It tells you how the vectors defining the elementary reflectors are stored: = 'C': Columnwise (not supported yet πŸ™ˆ). = 'R': Rowwise.
  • M β€” M is INTEGER. The number of rows of the matrix C.
  • N β€” N is INTEGER. The number of columns of the matrix C.
  • K β€” K is INTEGER. The order of the matrix T (= the number of elementary reflectors whose product defines the block reflector). It's giving "how many reflectors are we stacking" energy.
  • L β€” L is INTEGER. The number of columns of the matrix V containing the meaningful part of the Householder reflectors. If SIDE = 'L', M >= L >= 0; if SIDE = 'R', N >= L >= 0.
  • V β€” V is COMPLEX array, dimension (LDV,NV). If STOREV = 'C', NV = K; if STOREV = 'R', NV = L.
  • LDV β€” LDV is INTEGER. The leading dimension of the array V. If STOREV = 'C', LDV >= L; if STOREV = 'R', LDV >= K.
  • T β€” T is COMPLEX array, dimension (LDT,K). The triangular K-by-K matrix T in the representation of the block reflector. Iconic triangle, no notes.
  • LDT β€” LDT is INTEGER. The leading dimension of the array T. LDT >= K.
  • C β€” C is COMPLEX array, dimension (LDC,N). On entry, the M-by-N matrix C. On exit, C is overwritten by H*C or H**H*C or C*H or C*H**H. Yes, it gets replaced β€” that's the whole point πŸ’€
  • LDC β€” LDC is INTEGER. The leading dimension of the array C. LDC >= max(1,M).
  • WORK β€” WORK is COMPLEX array, dimension (LDWORK,K).
  • LDWORK β€” LDWORK is INTEGER. The leading dimension of the array WORK. If SIDE = 'L', LDWORK >= max(1,N); if SIDE = 'R', LDWORK >= max(1,M).

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:

(nothing more here β€” that section is literally empty, no cap 🫢)

Definition at line 181 of file clarzb.f.


subroutine dlarzb

subroutine dlarzb (character side, character trans, character direct,
    character storev, integer m, integer n, integer k, integer l, double
    precision, dimension( ldv, * ) v, integer ldv, double precision,
    dimension( ldt, * ) t, integer ldt, double precision, dimension( ldc, *
    ) c, integer ldc, double precision, dimension( ldwork, * ) work, integer
    ldwork)

DLARZB applies a block reflector or its transpose to a general matrix. Same slay, double precision edition πŸ’–

Purpose

DLARZB applies a real block reflector H, or its transpose H**T, to a real distributed M-by-N C from the left or the right.

🚨 And again: currently, only STOREV = 'R' and DIRECT = 'B' are supported.

Parameters

  • SIDE β€” SIDE is CHARACTER*1. = 'L': apply H or H**T from the Left. = 'R': apply H or H**T from the Right.
  • TRANS β€” TRANS is CHARACTER*1. = 'N': apply H (No transpose). = 'C': apply H**T (Transpose). (Note the real-math spelling: 'C' here means transpose, bestie, not conjugate-transpose.)
  • DIRECT β€” DIRECT is CHARACTER*1. Indicates how H is formed from a product of elementary reflectors. = 'F': H = H(1) H(2) . . . H(k) (Forward, not supported yet). = 'B': H = H(k) . . . H(2) H(1) (Backward).
  • STOREV β€” STOREV is CHARACTER*1. Indicates how the vectors which define the elementary reflectors are stored: = 'C': Columnwise (not supported yet). = 'R': Rowwise.
  • M β€” M is INTEGER. The number of rows of the matrix C.
  • N β€” N is INTEGER. The number of columns of the matrix C.
  • K β€” K is INTEGER. The order of the matrix T (= the number of elementary reflectors whose product defines the block reflector).
  • L β€” L is INTEGER. The number of columns of the matrix V containing the meaningful part of the Householder reflectors. If SIDE = 'L', M >= L >= 0, if SIDE = 'R', N >= L >= 0.
  • V β€” V is DOUBLE PRECISION array, dimension (LDV,NV). If STOREV = 'C', NV = K; if STOREV = 'R', NV = L.
  • LDV β€” LDV is INTEGER. The leading dimension of the array V. If STOREV = 'C', LDV >= L; if STOREV = 'R', LDV >= K.
  • T β€” T is DOUBLE PRECISION array, dimension (LDT,K). The triangular K-by-K matrix T in the representation of the block reflector.
  • LDT β€” LDT is INTEGER. The leading dimension of the array T. LDT >= K.
  • C β€” C is DOUBLE PRECISION array, dimension (LDC,N). On entry, the M-by-N matrix C. On exit, C is overwritten by H*C or H**T*C or C*H or C*H**T.
  • LDC β€” LDC is INTEGER. The leading dimension of the array C. LDC >= max(1,M).
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (LDWORK,K).
  • LDWORK β€” LDWORK is INTEGER. The leading dimension of the array WORK. If SIDE = 'L', LDWORK >= max(1,N); if SIDE = 'R', LDWORK >= max(1,M).

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 section, moving on ✨)

Definition at line 181 of file dlarzb.f.


subroutine slarzb

subroutine slarzb (character side, character trans, character direct,
    character storev, integer m, integer n, integer k, integer l, real,
    dimension( ldv, * ) v, integer ldv, real, dimension( ldt, * ) t, integer
    ldt, real, dimension( ldc, * ) c, integer ldc, real, dimension( ldwork,
    * ) work, integer ldwork)

SLARZB applies a block reflector or its transpose to a general matrix. Single precision, same energy 🌸

Purpose

SLARZB applies a real block reflector H, or its transpose H**T, to a real distributed M-by-N C from the left or the right.

🚨 You already know the drill: currently, only STOREV = 'R' and DIRECT = 'B' are supported.

Parameters

  • SIDE β€” SIDE is CHARACTER*1. = 'L': apply H or H**T from the Left. = 'R': apply H or H**T from the Right.
  • TRANS β€” TRANS is CHARACTER*1. = 'N': apply H (No transpose). = 'C': apply H**T (Transpose).
  • DIRECT β€” DIRECT is CHARACTER*1. Indicates how H is formed from a product of elementary reflectors. = 'F': H = H(1) H(2) . . . H(k) (Forward, not supported yet). = 'B': H = H(k) . . . H(2) H(1) (Backward).
  • STOREV β€” STOREV is CHARACTER*1. Indicates how the vectors which define the elementary reflectors are stored: = 'C': Columnwise (not supported yet). = 'R': Rowwise.
  • M β€” M is INTEGER. The number of rows of the matrix C.
  • N β€” N is INTEGER. The number of columns of the matrix C.

Picking up mid-parameter-list, no recap, let’s go πŸ’…

  • L β€” L is INTEGER. It’s the number of columns of matrix V containing the meaningful part of the Householder reflectors. If SIDE = 'L', M >= L >= 0; if SIDE = 'R', N >= L >= 0.
  • V β€” V is REAL array, dimension (LDV,NV). If STOREV = 'C', NV = K; if STOREV = 'R', NV = L.
  • LDV β€” LDV is INTEGER, the leading dimension of array V. If STOREV = 'C', LDV >= L; if STOREV = 'R', LDV >= K.
  • T β€” T is REAL array, dimension (LDT,K), the triangular K-by-K matrix T in the representation of the block reflector.
  • LDT β€” LDT is INTEGER, the leading dimension of array T. LDT >= K.
  • C β€” C is REAL array, dimension (LDC,N). On entry, it’s the M-by-N matrix C. On exit, C is overwritten by H*C or H**T*C or C*H or C*H**T.
  • LDC β€” LDC is INTEGER, the leading dimension of array C. LDC >= max(1,M).
  • WORK β€” WORK is REAL array, dimension (LDWORK,K).
  • LDWORK β€” LDWORK is INTEGER, the leading dimension of array WORK. If SIDE = 'L', LDWORK >= max(1,N); if SIDE = 'R', LDWORK >= max(1,M).

πŸ‘‘ 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 πŸ”

The original gives us an empty !> here β€” that’s literally it, no extra tea 🫢

Definition at line 181 of file slarzb.f.


πŸ’œ subroutine zlarzb πŸ’œ

subroutine zlarzb (character side, character trans, character direct,
    character storev, integer m, integer n, integer k, integer l,
    complex*16, dimension( ldv, * ) v, integer ldv, complex*16, dimension(
    ldt, * ) t, integer ldt, complex*16, dimension( ldc, * ) c, integer ldc,
    complex*16, dimension( ldwork, * ) work, integer ldwork)

🎯 Purpose 🎯

ZLARZB applies a complex block reflector H or its transpose H**H to a complex distributed M-by-N C from the left or the right.

🚨 Currently, only STOREV = 'R' and DIRECT = 'B' are supported.

🌸 Parameters 🌸

  • SIDE β€” SIDE is CHARACTER*1. 'L': apply H or H**H from the Left; 'R': apply H or H**H from the Right.
  • TRANS β€” TRANS is CHARACTER*1. 'N': apply H (No transpose); 'C': apply H**H (Conjugate transpose).
  • DIRECT β€” DIRECT is CHARACTER*1. It indicates how H is formed from a product of elementary reflectors. 'F': H = H(1) H(2) . . . H(k) (Forward, not supported yet); 'B': H = H(k) . . . H(2) H(1) (Backward).
  • STOREV β€” STOREV is CHARACTER*1. It indicates how the vectors which define the elementary reflectors are stored: 'C': Columnwise (not supported yet); 'R': Rowwise.
  • M β€” M is INTEGER, the number of rows of matrix C.
  • N β€” N is INTEGER, the number of columns of matrix C.
  • K β€” K is INTEGER, the order of matrix T (= the number of elementary reflectors whose product defines the block reflector).
  • L β€” L is INTEGER, the number of columns of matrix V containing the meaningful part of the Householder reflectors. If SIDE = 'L', M >= L >= 0; if SIDE = 'R', N >= L >= 0.
  • V β€” V is COMPLEX*16 array, dimension (LDV,NV). If STOREV = 'C', NV = K; if STOREV = 'R', NV = L.
  • LDV β€” LDV is INTEGER, the leading dimension of the array V. If STOREV = 'C', LDV >= L; if STOREV = 'R', LDV >= K.
  • T β€” T is COMPLEX*16 array, dimension (LDT,K), the triangular K-by-K matrix T in the representation of the block reflector.
  • LDT β€” LDT is INTEGER, the leading dimension of the array T. LDT >= K.
  • C β€” C is COMPLEX*16 array, dimension (LDC,N). On entry, the M-by-N matrix C. On exit, C is overwritten by H*C or H**H*C or C*H or C*H**H.
  • LDC β€” LDC is INTEGER, the leading dimension of the array C. LDC >= max(1,M).
  • WORK β€” WORK is COMPLEX*16 array, dimension (LDWORK,K).
  • LDWORK β€” LDWORK is INTEGER, the leading dimension of the array WORK. If SIDE = 'L', LDWORK >= max(1,N); if SIDE = 'R', LDWORK >= max(1,M).

πŸ‘‘ 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 πŸ”

The original gives us an empty !> here too β€” iconic minimalism, no extra details ✨

Definition at line 181 of file zlarzb.f.

πŸ€– Author πŸ€–

Generated automatically by Doxygen for LAPACK from the source code.


πŸ’– That’s the whole larzb(3) page, bestie β€” source/version: LAPACK, version 3.12.0. The footer doesn’t give a separate date, so no invented date here, periodt. ✨

πŸ“¦ where this page comes from