CUNGTSQR_ROW(3)
π CUNGTSQR_ROW(3) π
okay so this is the cungtsqr_row.f(3) page from the Library Functions Manual, and bestie we are about to get into the whole CUNGTSQR_ROW situation. Itβs giving complex-matrix construction, no cap. π
β¨
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/cungtsqr_row.f
β¨ SYNOPSIS β¨
π Functions/Subroutines π
subroutine CUNGTSQR_ROW (m, n, mb, nb, a, lda, t, ldt, work, lwork,
info)
CUNGTSQR_ROW
π¦ Function/Subroutine Documentation π¦
subroutine CUNGTSQR_ROW (integer m, integer n, integer mb, integer nb,
complex, dimension( lda, * ) a, integer lda, complex, dimension( ldt, *
) t, integer ldt, complex, dimension( * ) work, integer lwork, integer
info)
okay so the signature is literally right there, and yes itβs a lot of arguments. We stay hydrated. π«Ά
π Purpose π
CUNGTSQR_ROW generates an M-by-N complex matrix Q_out with orthonormal columns from the output of CLATSQR. Those N orthonormal columns are the first N columns of a product of complex unitary matrices Q(k)_in of order M, which are returned by CLATSQR in a special format.
Q_out = first_N_columns_of( Q(1)_in * Q(2)_in * ... * Q(k)_in ).
The input matrices Q(k)_in are stored in row and column blocks in A. See the documentation of CLATSQR for more details on the format of Q(k)_in, where each Q(k)_in is represented by block Householder transformations.
This routine calls an auxiliary routine CLARFB_GETT, where the computation is performed on each individual block. The algorithm first sweeps NB-sized column blocks from the right to left starting in the bottom row block and continues to the top row block (hence _ROW in the routine name). This sweep is in reverse order of the order in which CLATSQR generates the output blocks. π₯
π Parameters π
MβMisINTEGER. The number of rows of the matrixA.M >= 0.NβNisINTEGER. The number of columns of the matrixA.M >= N >= 0.MBβMBisINTEGER. The row block size used byCLATSQRto return arraysAandT.MB > N. (Note that ifMB > M, thenMis used instead ofMBas the row block size).NBβNBisINTEGER. The column block size used byCLATSQRto return arraysAandT.NB >= 1. (Note that ifNB > N, thenNis used instead ofNBas the column block size).AβAisCOMPLEXarray, dimension(LDA,N).
On entry:
- The elements on and above the diagonal are not used as input.
- The elements below the diagonal represent the unit lower-trapezoidal blocked matrix
Vcomputed byCLATSQRthat defines the input matricesQ_in(k)(ones on the diagonal are not stored). SeeCLATSQRfor more details.
On exit:
- The array
Acontains anM-by-Northonormal matrixQ_out, i.e the columns ofAare orthogonal unit vectors.
LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,M).TβTisCOMPLEXarray, dimension(LDT, N * NIRB), whereNIRB = Number_of_input_row_blocks = MAX( 1, CEIL((M-N)/(MB-N)) ). LetNICB = Number_of_input_col_blocks = CEIL(N/NB).
The upper-triangular block reflectors used to define the input matrices Q_in(k), k=(1:NIRB*NICB). The block reflectors are stored in compact form in NIRB block reflector sequences. Each of the NIRB block reflector sequences is stored in a larger NB-by-N column block of T and consists of NICB smaller NB-by-NB upper-triangular column blocks. See CLATSQR for more details on the format of T.
LDTβLDTisINTEGER. The leading dimension of the arrayT.LDT >= max(1,min(NB,N)).WORKβ (workspace)COMPLEXarray, dimension(MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβ The dimension of the arrayWORK.LWORK >= NBLOCAL * MAX(NBLOCAL,(N-NBLOCAL)), whereNBLOCAL=MIN(NB,N). IfLWORK = -1, then a workspace query is assumed. The routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA.INFOβINFOisINTEGER.= 0: successful exit< 0: ifINFO = -i, thei-th argument had an illegal value
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Contributors: π
- November 2020, Igor Kozachenko, Computer Science Division, University of California, Berkeley
Definition at line 186 of file cungtsqr_row.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
xoxo, LAPACK Version 3.12.0 π β this page was living at /home/abui...gtsqr_row.f(3) when it was generated π
π¦ 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