SRC/cgetsqrhrt.f(3)
πΈ SRC/cgetsqrhrt.f πΈ
okay so this is the SRC/cgetsqrhrt.f page from the Library Functions Manual, and bestie, it's giving major LAPACK main-character energy. We're talking about CGETSQRHRT, a Fortran subroutine that does a blocked QR factorization. Stay with me, it's actually iconic.
π NAME π
SRC/cgetsqrhrt.f β yes, that's the file. That's the name. Periodt.
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine cgetsqrhrt (m, n, mb1, nb1, nb2, a, lda, t, ldt, work, lwork, info)β the whole callable vibe.CGETSQRHRTβ the routine name, loud and proud.
π Function/Subroutine Documentation π
π subroutine cgetsqrhrt (...) π
subroutine cgetsqrhrt (integer m, integer n, integer mb1, integer nb1,
integer nb2, complex, dimension( lda, * ) a, integer lda, complex,
dimension( ldt, * ) t, integer ldt, complex, dimension( * ) work,
integer lwork, integer info)
CGETSQRHRT
π― Purpose: π―
So what does it do? CGETSQRHRT computes a NB2-sized column blocked QR-factorization of a complex M-by-N matrix A with M >= N, like:
A = Q * R.
Internally it uses a NB1-sized column blocked and MB1-sized row blocked TSQR-factorization, then performs the reconstruction of the Householder vectors from the TSQR output. It also converts the R_tsqr factor from the TSQR-factorization output into the R factor that corresponds to the Householder QR-factorization:
A = Q_tsqr * R_tsqr = Q * R.
The output Q and R factors are stored in the same format as in CGEQRT β Q is in blocked compact WY-representation. Peep the documentation of CGEQRT for more details on the format. iykyk.
πΈ Parameters πΈ
MβMis INTEGER. The number of rows of the matrixA.M >= 0. no cap.NβNis INTEGER. The number of columns of the matrixA.M >= N >= 0. she said what she said.MB1βMB1is INTEGER. The row block size to be used in the blocked TSQR.MB1 > N.NB1βNB1is INTEGER. The column block size to be used in the blocked TSQR.N >= NB1 >= 1.NB2βNB2is INTEGER. The block size to be used in the blocked QR that is output.NB2 >= 1.AβAisCOMPLEX*16 array, dimension (LDA,N). On entry: anM-by-NmatrixA. On exit: a) the elements on and above the diagonal of the array contain theN-by-Nupper-triangular matrixRcorresponding to the Householder QR; b) the elements below the diagonal representQby the columns of blockedV(compact WY-representation).LDAβLDAis INTEGER. The leading dimension of the arrayA.LDA >= max(1,M).TβTisCOMPLEX array, dimension (LDT,N)). The upper triangular block reflectors stored in compact form as a sequence of upper triangular blocks.LDTβLDTis INTEGER. The leading dimension of the arrayT.LDT >= NB2.WORKβ(workspace) COMPLEX array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβLWORKis INTEGER. The dimension of the arrayWORK. IfMIN(M,N) = 0,LWORK >= 1, else it needs:
LWORK >= MAX( 1, LWT + LW1, MAX( LWT+N*N+LW2, LWT+N*N+N ) ),
where
NUM_ALL_ROW_BLOCKS = CEIL((M-N)/(MB1-N)),
NB1LOCAL = MIN(NB1,N).
LWT = NUM_ALL_ROW_BLOCKS * N * NB1LOCAL,
LW1 = NB1LOCAL * N,
LW2 = NB1LOCAL * MAX( NB1LOCAL, ( N - NB1LOCAL ) ).
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βINFOis INTEGER.= 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 180 of file cgetsqrhrt.f.
Definition at line 180 of file cgetsqrhrt.f. β that's exactly where it lives. slay.
Author
Generated automatically by Doxygen for LAPACK from the source code. iconic behavior.
LAPACK Version 3.12.0 Β· SRC/cgetsqrhrt.f(3) β bye bestie, go forth and factorize responsibly πβ¨π¦
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms