SRC/cgemlqt.f(3)

🌸 SRC/cgemlqt.f 🌸

okay bestie, this page is from the Library Functions Manual, and the main character is SRC/cgemlqt.f πŸ’… no cap, it’s giving β€œLAPACK girl explains a complex matrix update,” and honestly? iconic.


✨ NAME ✨

SRC/cgemlqt.f β€” that’s the name, periodt. 🫢


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine cgemlqt (side, trans, m, n, k, mb, v, ldv, t, ldt, c, ldc,
    work, info)

CGEMLQT πŸ”₯


πŸ’– Function/Subroutine Documentation πŸ’–

here’s the full signature, bestie β€” character for character, no editing:

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

and the name is CGEMLQT ✨

πŸ¦‹ Purpose πŸ¦‹

okay so CGEMLQT 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(2) . . . H(K) = I - V T V**H

generated using the compact WY representation as returned by CGELQT.

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

πŸ‘‘ MB πŸ‘‘

MB is INTEGER

The block size used for the storage of T. K >= MB >= 1.

This must be the same value of MB used to generate T in CGELQT.

πŸŽ€ V πŸŽ€

V is COMPLEX array, dimension

(LDV,M) if SIDE = 'L',
(LDV,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 CGELQT in the first K rows of its array argument A.

πŸ’… LDV πŸ’…

LDV is INTEGER

The leading dimension of the array V. LDV >= max(1,K).

🌸 T 🌸

T is COMPLEX array, dimension (LDT,K)

The upper triangular factors of the block reflectors as returned by CGELQT, stored as a MB-by-K matrix.

🫢 LDT 🫢

LDT is INTEGER

The leading dimension of the array T. LDT >= MB.

πŸ’– C πŸ’–

C is COMPLEX 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 array. The dimension of WORK is N*MB if SIDE = 'L', or M*MB 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 151 of file cgemlqt.f.


🧚 Author 🧚

Generated automatically by Doxygen for LAPACK from the source code.


okay bestie, that’s the whole page πŸ’– the footer’s source/version/date slot reads LAPACK, Version 3.12.0, and SRC/cgemlqt.f(3) β€” that’s the stamp at the very bottom, periodt. πŸŽ€βœ¨

πŸ“¦ where this page comes from