SRC/zunmrq.f(3)

πŸ¦‹ SRC/zunmrq.f(3) β€” Library Functions Manual πŸ¦‹

okay so this is the SRC/zunmrq.f page from the Library Functions Manual, and it's giving β€œcomplex matrix glow-up via unitary reflectors.” bestie, we are learning ZUNMRQ together and it's actually iconic. ✨


✨ NAME ✨

SRC/zunmrq.f


🌸 SYNOPSIS 🌸

🧚 Functions/Subroutines 🧚

       subroutine zunmrq (side, trans, m, n, k, a, lda, tau, c, ldc, work,
           lwork, info)
           ZUNMRQ

πŸ’… Function/Subroutine Documentation πŸ’…

   subroutine zunmrq (character side, character trans, integer m, integer n,
       integer k, complex*16, dimension( lda, * ) a, integer lda, complex*16,
       dimension( * ) tau, complex*16, dimension( ldc, * ) c, integer ldc,
       complex*16, dimension( * ) work, integer lwork, integer info)
       ZUNMRQ

🌟 Purpose 🌟

okay so here's the tea: ZUNMRQ 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 unitary matrix defined as the product of k elementary reflectors:

      Q = H(1)**H H(2)**H . . . H(k)**H

as returned by ZGERQF. Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'. slay. πŸ’–


πŸŽ€ Parameters πŸŽ€

πŸ’– SIDE πŸ’–

  • SIDE is CHARACTER*1
    • = 'L': apply Q or Q**H from the Left;
    • = 'R': apply Q or Q**H from the Right.

πŸ’« TRANS πŸ’«

  • TRANS is CHARACTER*1
    • = 'N': No transpose, apply Q;
    • = 'C': Conjugate transpose, apply Q**H.

🌸 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.

⭐ A ⭐

  • A is COMPLEX*16 array, dimension
    • (LDA,M) if SIDE = 'L',
    • (LDA,N) if SIDE = 'R'
    • The i-th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by ZGERQF in the last k rows of its array argument A.

🌈 LDA 🌈

  • LDA is INTEGER
    • The leading dimension of the array A. LDA >= max(1,K).

πŸ“ TAU πŸ“

  • TAU is COMPLEX*16 array, dimension (K)
    • TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by ZGERQF.

πŸ‘‘ 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 or Q**H*C or 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, dimension (MAX(1,LWORK))
    • On exit, if INFO = 0, WORK(1) returns the optimal LWORK.

πŸ”₯ LWORK πŸ”₯

  • LWORK is INTEGER
    • The dimension of the array WORK.
    • If SIDE = 'L', LWORK >= max(1,N);
    • if SIDE = 'R', LWORK >= max(1,M).
    • For good performance, LWORK should generally be larger.
    • If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.

πŸ’€ 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 165 of file zunmrq.f.


πŸ“ Author πŸ“

Generated automatically by Doxygen for LAPACK from the source code.


mwah πŸ’‹ β€” signed off by LAPACK Version 3.12.0 and SRC/zunmrq.f(3). no extra date line in this footer, bestie, so that's the whole story. 🫢

πŸ“¦ where this page comes from