.TH "gemqr" 3 "Wed Feb 7 2024 11:30:40" "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME gemqr \- gemqr: multiply by Q from geqr .SH SYNOPSIS .br .PP .SS "Functions" .in +1c .ti -1c .RI "subroutine \fBcgemqr\fP (side, trans, m, n, k, a, lda, t, tsize, c, ldc, work, lwork, info)" .br .RI "\fBCGEMQR\fP " .ti -1c .RI "subroutine \fBdgemqr\fP (side, trans, m, n, k, a, lda, t, tsize, c, ldc, work, lwork, info)" .br .RI "\fBDGEMQR\fP " .ti -1c .RI "subroutine \fBsgemqr\fP (side, trans, m, n, k, a, lda, t, tsize, c, ldc, work, lwork, info)" .br .RI "\fBSGEMQR\fP " .ti -1c .RI "subroutine \fBzgemqr\fP (side, trans, m, n, k, a, lda, t, tsize, c, ldc, work, lwork, info)" .br .RI "\fBZGEMQR\fP " .in -1c .SH "Detailed Description" .PP .SH "Function Documentation" .PP .SS "subroutine cgemqr (character side, character trans, integer m, integer n, integer k, complex, dimension( lda, * ) a, integer lda, complex, dimension( * ) t, integer tsize, complex, dimension( ldc, * ) c, integer ldc, complex, dimension( * ) work, integer lwork, integer info)" .PP \fBCGEMQR\fP .PP \fBPurpose:\fP .RS 4 .PP .nf CGEMQR overwrites the general real M-by-N matrix C with SIDE = 'L' SIDE = 'R' TRANS = 'N': Q * C C * Q TRANS = 'T': Q**H * C C * Q**H where Q is a complex unitary matrix defined as the product of blocked elementary reflectors computed by tall skinny QR factorization (CGEQR) .fi .PP .RE .PP \fBParameters\fP .RS 4 \fISIDE\fP .PP .nf SIDE is CHARACTER*1 = 'L': apply Q or Q**H from the Left; = 'R': apply Q or Q**H from the Right\&. .fi .PP .br \fITRANS\fP .PP .nf TRANS is CHARACTER*1 = 'N': No transpose, apply Q; = 'C': Conjugate transpose, apply Q**H\&. .fi .PP .br \fIM\fP .PP .nf M is INTEGER The number of rows of the matrix A\&. M >=0\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER The number of columns of the matrix C\&. N >= 0\&. .fi .PP .br \fIK\fP .PP .nf 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\&. .fi .PP .br \fIA\fP .PP .nf A is COMPLEX array, dimension (LDA,K) Part of the data structure to represent Q as returned by CGEQR\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the array A\&. If SIDE = 'L', LDA >= max(1,M); if SIDE = 'R', LDA >= max(1,N)\&. .fi .PP .br \fIT\fP .PP .nf T is COMPLEX array, dimension (MAX(5,TSIZE))\&. Part of the data structure to represent Q as returned by CGEQR\&. .fi .PP .br \fITSIZE\fP .PP .nf TSIZE is INTEGER The dimension of the array T\&. TSIZE >= 5\&. .fi .PP .br \fIC\fP .PP .nf C is COMPLEX 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\&. .fi .PP .br \fILDC\fP .PP .nf LDC is INTEGER The leading dimension of the array C\&. LDC >= max(1,M)\&. .fi .PP .br \fIWORK\fP .PP .nf (workspace) COMPLEX array, dimension (MAX(1,LWORK)) .fi .PP .br \fILWORK\fP .PP .nf LWORK is INTEGER The dimension of the array WORK\&. If LWORK = -1, then a workspace query is assumed\&. The routine only calculates the size of the WORK array, returns this value as WORK(1), and no error message related to WORK is issued by XERBLA\&. .fi .PP .br \fIINFO\fP .PP .nf INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument had an illegal value .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details\fP .RS 4 .PP .nf These details are particular for this LAPACK implementation\&. Users should not take them for granted\&. These details may change in the future, and are not likely true for another LAPACK implementation\&. These details are relevant if one wants to try to understand the code\&. They are not part of the interface\&. In this version, T(2): row block size (MB) T(3): column block size (NB) T(6:TSIZE): data structure needed for Q, computed by CLATSQR or CGEQRT Depending on the matrix dimensions M and N, and row and column block sizes MB and NB returned by ILAENV, CGEQR will use either CLATSQR (if the matrix is tall-and-skinny) or CGEQRT to compute the QR factorization\&. This version of CGEMQR will use either CLAMTSQR or CGEMQRT to multiply matrix Q by another matrix\&. Further Details in CLAMTSQR or CGEMQRT\&. .fi .PP .RE .PP .SS "subroutine dgemqr (character side, character trans, integer m, integer n, integer k, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( * ) t, integer tsize, double precision, dimension( ldc, * ) c, integer ldc, double precision, dimension( * ) work, integer lwork, integer info)" .PP \fBDGEMQR\fP .PP \fBPurpose:\fP .RS 4 .PP .nf DGEMQR overwrites the general real M-by-N matrix C with SIDE = 'L' SIDE = 'R' TRANS = 'N': Q * C C * Q TRANS = 'T': Q**T * C C * Q**T where Q is a real orthogonal matrix defined as the product of blocked elementary reflectors computed by tall skinny QR factorization (DGEQR) .fi .PP .RE .PP \fBParameters\fP .RS 4 \fISIDE\fP .PP .nf SIDE is CHARACTER*1 = 'L': apply Q or Q**T from the Left; = 'R': apply Q or Q**T from the Right\&. .fi .PP .br \fITRANS\fP .PP .nf TRANS is CHARACTER*1 = 'N': No transpose, apply Q; = 'T': Transpose, apply Q**T\&. .fi .PP .br \fIM\fP .PP .nf M is INTEGER The number of rows of the matrix A\&. M >=0\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER The number of columns of the matrix C\&. N >= 0\&. .fi .PP .br \fIK\fP .PP .nf 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\&. .fi .PP .br \fIA\fP .PP .nf A is DOUBLE PRECISION array, dimension (LDA,K) Part of the data structure to represent Q as returned by DGEQR\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the array A\&. If SIDE = 'L', LDA >= max(1,M); if SIDE = 'R', LDA >= max(1,N)\&. .fi .PP .br \fIT\fP .PP .nf T is DOUBLE PRECISION array, dimension (MAX(5,TSIZE))\&. Part of the data structure to represent Q as returned by DGEQR\&. .fi .PP .br \fITSIZE\fP .PP .nf TSIZE is INTEGER The dimension of the array T\&. TSIZE >= 5\&. .fi .PP .br \fIC\fP .PP .nf C is DOUBLE PRECISION array, dimension (LDC,N) On entry, the M-by-N matrix C\&. On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q\&. .fi .PP .br \fILDC\fP .PP .nf LDC is INTEGER The leading dimension of the array C\&. LDC >= max(1,M)\&. .fi .PP .br \fIWORK\fP .PP .nf (workspace) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) .fi .PP .br \fILWORK\fP .PP .nf LWORK is INTEGER The dimension of the array WORK\&. If LWORK = -1, then a workspace query is assumed\&. The routine only calculates the size of the WORK array, returns this value as WORK(1), and no error message related to WORK is issued by XERBLA\&. .fi .PP .br \fIINFO\fP .PP .nf INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument had an illegal value .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details\fP .RS 4 .PP .nf These details are particular for this LAPACK implementation\&. Users should not take them for granted\&. These details may change in the future, and are not likely true for another LAPACK implementation\&. These details are relevant if one wants to try to understand the code\&. They are not part of the interface\&. In this version, T(2): row block size (MB) T(3): column block size (NB) T(6:TSIZE): data structure needed for Q, computed by DLATSQR or DGEQRT Depending on the matrix dimensions M and N, and row and column block sizes MB and NB returned by ILAENV, DGEQR will use either DLATSQR (if the matrix is tall-and-skinny) or DGEQRT to compute the QR factorization\&. This version of DGEMQR will use either DLAMTSQR or DGEMQRT to multiply matrix Q by another matrix\&. Further Details in DLATMSQR or DGEMQRT\&. .fi .PP .RE .PP .SS "subroutine sgemqr (character side, character trans, integer m, integer n, integer k, real, dimension( lda, * ) a, integer lda, real, dimension( * ) t, integer tsize, real, dimension( ldc, * ) c, integer ldc, real, dimension( * ) work, integer lwork, integer info)" .PP \fBSGEMQR\fP .PP \fBPurpose:\fP .RS 4 .PP .nf SGEMQR overwrites the general real M-by-N matrix C with SIDE = 'L' SIDE = 'R' TRANS = 'N': Q * C C * Q TRANS = 'T': Q**T * C C * Q**T where Q is a real orthogonal matrix defined as the product of blocked elementary reflectors computed by tall skinny QR factorization (SGEQR) .fi .PP .RE .PP \fBParameters\fP .RS 4 \fISIDE\fP .PP .nf SIDE is CHARACTER*1 = 'L': apply Q or Q**T from the Left; = 'R': apply Q or Q**T from the Right\&. .fi .PP .br \fITRANS\fP .PP .nf TRANS is CHARACTER*1 = 'N': No transpose, apply Q; = 'T': Transpose, apply Q**T\&. .fi .PP .br \fIM\fP .PP .nf M is INTEGER The number of rows of the matrix A\&. M >=0\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER The number of columns of the matrix C\&. N >= 0\&. .fi .PP .br \fIK\fP .PP .nf 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\&. .fi .PP .br \fIA\fP .PP .nf A is REAL array, dimension (LDA,K) Part of the data structure to represent Q as returned by SGEQR\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the array A\&. If SIDE = 'L', LDA >= max(1,M); if SIDE = 'R', LDA >= max(1,N)\&. .fi .PP .br \fIT\fP .PP .nf T is REAL array, dimension (MAX(5,TSIZE))\&. Part of the data structure to represent Q as returned by SGEQR\&. .fi .PP .br \fITSIZE\fP .PP .nf TSIZE is INTEGER The dimension of the array T\&. TSIZE >= 5\&. .fi .PP .br \fIC\fP .PP .nf C is REAL array, dimension (LDC,N) On entry, the M-by-N matrix C\&. On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q\&. .fi .PP .br \fILDC\fP .PP .nf LDC is INTEGER The leading dimension of the array C\&. LDC >= max(1,M)\&. .fi .PP .br \fIWORK\fP .PP .nf (workspace) REAL array, dimension (MAX(1,LWORK)) .fi .PP .br \fILWORK\fP .PP .nf LWORK is INTEGER The dimension of the array WORK\&. If LWORK = -1, then a workspace query is assumed\&. The routine only calculates the size of the WORK array, returns this value as WORK(1), and no error message related to WORK is issued by XERBLA\&. .fi .PP .br \fIINFO\fP .PP .nf INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument had an illegal value .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details\fP .RS 4 .PP .nf These details are particular for this LAPACK implementation\&. Users should not take them for granted\&. These details may change in the future, and are not likely true for another LAPACK implementation\&. These details are relevant if one wants to try to understand the code\&. They are not part of the interface\&. In this version, T(2): row block size (MB) T(3): column block size (NB) T(6:TSIZE): data structure needed for Q, computed by SLATSQR or SGEQRT Depending on the matrix dimensions M and N, and row and column block sizes MB and NB returned by ILAENV, SGEQR will use either SLATSQR (if the matrix is tall-and-skinny) or SGEQRT to compute the QR factorization\&. This version of SGEMQR will use either SLAMTSQR or SGEMQRT to multiply matrix Q by another matrix\&. Further Details in SLAMTSQR or SGEMQRT\&. .fi .PP .RE .PP .SS "subroutine zgemqr (character side, character trans, integer m, integer n, integer k, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( * ) t, integer tsize, complex*16, dimension( ldc, * ) c, integer ldc, complex*16, dimension( * ) work, integer lwork, integer info)" .PP \fBZGEMQR\fP .PP \fBPurpose:\fP .RS 4 .PP .nf ZGEMQR overwrites the general real M-by-N matrix C with SIDE = 'L' SIDE = 'R' TRANS = 'N': Q * C C * Q TRANS = 'T': Q**H * C C * Q**H where Q is a complex unitary matrix defined as the product of blocked elementary reflectors computed by tall skinny QR factorization (ZGEQR) .fi .PP .RE .PP \fBParameters\fP .RS 4 \fISIDE\fP .PP .nf SIDE is CHARACTER*1 = 'L': apply Q or Q**H from the Left; = 'R': apply Q or Q**H from the Right\&. .fi .PP .br \fITRANS\fP .PP .nf TRANS is CHARACTER*1 = 'N': No transpose, apply Q; = 'C': Conjugate transpose, apply Q**H\&. .fi .PP .br \fIM\fP .PP .nf M is INTEGER The number of rows of the matrix A\&. M >=0\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER The number of columns of the matrix C\&. N >= 0\&. .fi .PP .br \fIK\fP .PP .nf 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\&. .fi .PP .br \fIA\fP .PP .nf A is COMPLEX*16 array, dimension (LDA,K) Part of the data structure to represent Q as returned by ZGEQR\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the array A\&. If SIDE = 'L', LDA >= max(1,M); if SIDE = 'R', LDA >= max(1,N)\&. .fi .PP .br \fIT\fP .PP .nf T is COMPLEX*16 array, dimension (MAX(5,TSIZE))\&. Part of the data structure to represent Q as returned by ZGEQR\&. .fi .PP .br \fITSIZE\fP .PP .nf TSIZE is INTEGER The dimension of the array T\&. TSIZE >= 5\&. .fi .PP .br \fIC\fP .PP .nf 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\&. .fi .PP .br \fILDC\fP .PP .nf LDC is INTEGER The leading dimension of the array C\&. LDC >= max(1,M)\&. .fi .PP .br \fIWORK\fP .PP .nf (workspace) COMPLEX*16 array, dimension (MAX(1,LWORK)) .fi .PP .br \fILWORK\fP .PP .nf LWORK is INTEGER The dimension of the array WORK\&. If LWORK = -1, then a workspace query is assumed\&. The routine only calculates the size of the WORK array, returns this value as WORK(1), and no error message related to WORK is issued by XERBLA\&. .fi .PP .br \fIINFO\fP .PP .nf INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument had an illegal value .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details\fP .RS 4 .PP .nf These details are particular for this LAPACK implementation\&. Users should not take them for granted\&. These details may change in the future, and are not likely true for another LAPACK implementation\&. These details are relevant if one wants to try to understand the code\&. They are not part of the interface\&. In this version, T(2): row block size (MB) T(3): column block size (NB) T(6:TSIZE): data structure needed for Q, computed by ZLATSQR or ZGEQRT Depending on the matrix dimensions M and N, and row and column block sizes MB and NB returned by ILAENV, ZGEQR will use either ZLATSQR (if the matrix is tall-and-skinny) or ZGEQRT to compute the QR factorization\&. This version of ZGEMQR will use either ZLAMTSQR or ZGEMQRT to multiply matrix Q by another matrix\&. Further Details in ZLAMTSQR or ZGEMQRT\&. .fi .PP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.