.TH "gemlq" 3 "Wed Feb 7 2024 11:30:40" "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME gemlq \- gemlq: multiply by Q from gelq .SH SYNOPSIS .br .PP .SS "Functions" .in +1c .ti -1c .RI "subroutine \fBcgemlq\fP (side, trans, m, n, k, a, lda, t, tsize, c, ldc, work, lwork, info)" .br .RI "\fBCGEMLQ\fP " .ti -1c .RI "subroutine \fBdgemlq\fP (side, trans, m, n, k, a, lda, t, tsize, c, ldc, work, lwork, info)" .br .RI "\fBDGEMLQ\fP " .ti -1c .RI "subroutine \fBsgemlq\fP (side, trans, m, n, k, a, lda, t, tsize, c, ldc, work, lwork, info)" .br .RI "\fBSGEMLQ\fP " .ti -1c .RI "subroutine \fBzgemlq\fP (side, trans, m, n, k, a, lda, t, tsize, c, ldc, work, lwork, info)" .br .RI "\fBZGEMLQ\fP " .in -1c .SH "Detailed Description" .PP .SH "Function Documentation" .PP .SS "subroutine cgemlq (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 \fBCGEMLQ\fP .PP \fBPurpose:\fP .RS 4 .PP .nf CGEMLQ overwrites the general real 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 blocked elementary reflectors computed by short wide LQ factorization (CGELQ) .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,M) if SIDE = 'L', (LDA,N) if SIDE = 'R' Part of the data structure to represent Q as returned by CGELQ\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the array A\&. LDA >= max(1,K)\&. .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 CGELQ\&. .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 CLASWQR or CGELQT Depending on the matrix dimensions M and N, and row and column block sizes MB and NB returned by ILAENV, CGELQ will use either CLASWLQ (if the matrix is wide-and-short) or CGELQT to compute the LQ factorization\&. This version of CGEMLQ will use either CLAMSWLQ or CGEMLQT to multiply matrix Q by another matrix\&. Further Details in CLAMSWLQ or CGEMLQT\&. .fi .PP .RE .PP .SS "subroutine dgemlq (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 \fBDGEMLQ\fP .PP \fBPurpose:\fP .RS 4 .PP .nf DGEMLQ 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 short wide LQ factorization (DGELQ) .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,M) if SIDE = 'L', (LDA,N) if SIDE = 'R' Part of the data structure to represent Q as returned by DGELQ\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the array A\&. LDA >= max(1,K)\&. .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 DGELQ\&. .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 DLASWLQ or DGELQT Depending on the matrix dimensions M and N, and row and column block sizes MB and NB returned by ILAENV, DGELQ will use either DLASWLQ (if the matrix is wide-and-short) or DGELQT to compute the LQ factorization\&. This version of DGEMLQ will use either DLAMSWLQ or DGEMLQT to multiply matrix Q by another matrix\&. Further Details in DLAMSWLQ or DGEMLQT\&. .fi .PP .RE .PP .SS "subroutine sgemlq (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 \fBSGEMLQ\fP .PP \fBPurpose:\fP .RS 4 .PP .nf SGEMLQ 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 short wide LQ factorization (SGELQ) .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,M) if SIDE = 'L', (LDA,N) if SIDE = 'R' Part of the data structure to represent Q as returned by DGELQ\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the array A\&. LDA >= max(1,K)\&. .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 SGELQ\&. .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 SLASWLQ or SGELQT Depending on the matrix dimensions M and N, and row and column block sizes MB and NB returned by ILAENV, SGELQ will use either SLASWLQ (if the matrix is wide-and-short) or SGELQT to compute the LQ factorization\&. This version of SGEMLQ will use either SLAMSWLQ or SGEMLQT to multiply matrix Q by another matrix\&. Further Details in SLAMSWLQ or SGEMLQT\&. .fi .PP .RE .PP .SS "subroutine zgemlq (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 \fBZGEMLQ\fP .PP \fBPurpose:\fP .RS 4 .PP .nf ZGEMLQ overwrites the general real 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 blocked elementary reflectors computed by short wide LQ factorization (ZGELQ) .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,M) if SIDE = 'L', (LDA,N) if SIDE = 'R' Part of the data structure to represent Q as returned by ZGELQ\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the array A\&. LDA >= max(1,K)\&. .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 ZGELQ\&. .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 ZLASWLQ or ZGELQT Depending on the matrix dimensions M and N, and row and column block sizes MB and NB returned by ILAENV, ZGELQ will use either ZLASWLQ (if the matrix is wide-and-short) or ZGELQT to compute the LQ factorization\&. This version of ZGEMLQ will use either ZLAMSWLQ or ZGEMLQT to multiply matrix Q by another matrix\&. Further Details in ZLAMSWLQ or ZGEMLQT\&. .fi .PP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.