SRC/zgemqrt.f(3)

okay so this is the SRC/zgemqrt.f(3) page from the Library Functions Manual, and it’s lowkey all about the ZGEMQRT subroutine β€” let’s go, bestie πŸ’…βœ¨

🌸 NAME 🌸

SRC/zgemqrt.f β€” the name on the page, periodt. It’s the manual entry for ZGEMQRT, and the whole vibe is LAPACK source-code realness 🫢

πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

       subroutine zgemqrt (side, trans, m, n, k, nb, v, ldv, t, ldt, c, ldc,
           work, info)
           ZGEMQRT

This is the exact subroutine call and its label β€” no cap, that’s the whole synopsis πŸ’–

✨ Function/Subroutine Documentation ✨

zgemqrt

Here’s the full signature, copied character for character because we do not play with code πŸ’…:

   subroutine zgemqrt (character side, character trans, integer m, integer n,
       integer k, integer nb, complex*16, dimension( ldv, * ) v, integer ldv,
       complex*16, dimension( ldt, * ) t, integer ldt, complex*16, dimension(
       ldc, * ) c, integer ldc, complex*16, dimension( * ) work, integer info)

ZGEMQRT β€” yes, that’s the routine’s name, and it’s the main character of this page πŸ‘‘

Purpose

ZGEMQRT overwrites the general complex M-by-N matrix C with:

                 SIDE = 'L'     SIDE = 'R'
 TRANS = 'N':      Q C            C Q
 TRANS = 'C':    Q**H C            C Q**H

where Q is a complex orthogonal matrix defined as the product of K elementary reflectors:

       Q = H(1) H(2) . . . H(K) = I - V T V**H

generated using the compact WY representation as returned by ZGEQRT.

Q is of order M if SIDE = 'L' and of order N if SIDE = 'R' 🌈

Parameters

  • SIDE β€” SIDE is CHARACTER*1. 'L': apply Q or QH from the Left; 'R': apply Q or QH from the Right. Pick your side, bestie πŸ’«
  • TRANS β€” TRANS is CHARACTER*1. 'N': No transpose, apply Q; 'C': Conjugate transpose, apply Q**H. The vibe check is: transpose or conjugate-transpose πŸ¦‹
  • M β€” M is INTEGER. The number of rows of the matrix C. M >= 0.
  • N β€” N is INTEGER. The number of columns of the matrix C. N >= 0.
  • K β€” K is INTEGER. The number of elementary reflectors whose product defines the matrix Q. If SIDE = 'L', M >= K >= 0; if SIDE = 'R', N >= K >= 0.
  • NB β€” NB is INTEGER. The block size used for the storage of T. K >= NB >= 1. This must be the same value of NB used to generate T in ZGEQRT. No swapping it out, okay? 😭
  • V β€” V is COMPLEX*16 array, dimension (LDV,K). The i-th column must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by ZGEQRT in the first K columns of its array argument A.
  • LDV β€” LDV is INTEGER. The leading dimension of the array V. If SIDE = 'L', LDA >= max(1,M); if SIDE = 'R', LDA >= max(1,N).
  • T β€” T is COMPLEX*16 array, dimension (LDT,K). The upper triangular factors of the block reflectors as returned by ZGEQRT, stored as a NB-by-N matrix.
  • LDT β€” LDT is INTEGER. The leading dimension of the array T. LDT >= NB.
  • C β€” C is COMPLEX*16 array, dimension (LDC,N). On entry, the M-by-N matrix C. On exit, C is overwritten by Q C, Q**H C, C Q**H or C Q.
  • LDC β€” LDC is INTEGER. The leading dimension of the array C. LDC >= max(1,M).
  • WORK β€” WORK is COMPLEX*16 array. The dimension of WORK is N*NB if SIDE = 'L', or M*NB if SIDE = 'R'.
  • INFO β€” INFO is INTEGER. = 0: successful exit; < 0: if INFO = -i, the i-th argument had an illegal value.

Author

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

Definition at line 166 of file zgemqrt.f.

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for LAPACK from the source code.


That’s the whole thing, bestie β€” LAPACK Version 3.12.0, file SRC/zgemqrt.f(3) πŸŒΈπŸŽ€βœ¨
πŸ“¦ where this page comes from