/home/abui.../zgemlqt.f(3)
π ZGEMLQT β like, the manual page, bestie β¨
okay so this is a page from the Library Functions Manual for /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zgemlqt.f β yes that's the whole path, she's long, she's iconic, we respect her π«Ά
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine ZGEMLQT (side, trans, m, n, k, mb, v, ldv, t, ldt, c, ldc,
work, info)
ZGEMLQT β that's her name, that's the whole thing π«
π¦ Function/Subroutine Documentation π¦
subroutine ZGEMLQT (character side, character trans, integer m, integer n,
integer k, integer mb, 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)
ZGEMLQT π
πΈ Purpose πΈ
!> !> ZGEMLQT overwrites the general complex M-by-N matrix C with !> !> SIDE = 'L' SIDE = 'R' !> TRANS = 'N': Q C C Q !> TRANS = 'C': QH C C QH !> !> 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 ZGELQT. !> !> Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'. !>
so basically, bestie, she takes your matrix C β general, complex, M-by-N β and overwrites it with the product of Q or Q**H on whichever side you asked for. Q itself is this complex unitary matrix built from K elementary reflectors, Q = H(1) H(2) . . . H(K) = I - V T V**H, assembled via the compact WY representation that ZGELQT hands you. Q is order M when SIDE = 'L', and order N when SIDE = 'R'. no cap π
β¨ Parameters β¨
SIDEβSIDEisCHARACTER*1. it's giving "which side are we coming from":= 'L'β apply Q or Q**H from the Left;= 'R'β apply Q or Q**H from the Right. pick one, she needs to know π«ΆTRANSβTRANSisCHARACTER*1.= 'N'β No transpose, apply Q;= 'C'β Conjugate transpose, apply Q**H. literally just tell her if you want the conjugate transpose or not.MβMisINTEGER. the number of rows of the matrix C.M >= 0.NβNisINTEGER. the number of columns of the matrix C.N >= 0.KβKisINTEGER. the number of elementary reflectors whose product defines the matrix Q. ifSIDE = 'L', thenM >= K >= 0; ifSIDE = 'R', thenN >= K >= 0. rules are rules πΈMBβMBisINTEGER. the block size used for the storage of T.K >= MB >= 1. and listen π this must be the same value of MB used to generate T in ZGELQT β like, they have to match, fr fr.VβVisCOMPLEX*16array, dimension(LDV,M)ifSIDE = 'L', or(LDV,N)ifSIDE = 'R'. the i-th row must contain the vector which defines the elementary reflector H(i), fori = 1,2,...,k, as returned by ZGELQT in the first K rows of its array argument A. yes the rows, not the columns β read her carefully πLDVβLDVisINTEGER. the leading dimension of the array V.LDV >= max(1,K).TβTisCOMPLEX*16array, dimension(LDT,K). the upper triangular factors of the block reflectors as returned by ZGELQT, stored as a MB-by-K matrix πLDTβLDTisINTEGER. the leading dimension of the array T.LDT >= MB.CβCisCOMPLEX*16array, 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. she will overwrite it, that's the whole vibe π₯LDCβLDCisINTEGER. the leading dimension of the array C.LDC >= max(1,M).WORKβWORKisCOMPLEX*16array. the dimension of WORK isN*MBifSIDE = 'L', orM*MBifSIDE = 'R'. size her right or it's not gonna be cute πINFOβINFOisINTEGER.= 0β successful exit, slay β¨;< 0β ifINFO = -i, the i-th argument had an illegal value. so if you see a negative number, one of your arguments was not it, and you know exactly which one π
π§ Author π§
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 166 of file zgemlqt.f. π
π Author (again) π
Generated automatically by Doxygen for LAPACK from the source code. she's self-writing, main character energy fr
okay that's the whole page bestie, mwah π«Ά and for the cute sign-off: this beauty comes to you from LAPACK, Version 3.12.0, dated /home/abui.../zgemlqt.f(3) β go forth and apply your Q's correctly πβ¨π
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms