--- rpl/lapack/lapack/zlamswlq.f 2020/05/21 21:46:07 1.5 +++ rpl/lapack/lapack/zlamswlq.f 2023/08/07 08:39:29 1.6 @@ -19,13 +19,13 @@ *> *> \verbatim *> -*> ZLAMQRTS overwrites the general real M-by-N matrix C with +*> ZLAMSWLQ overwrites the general complex 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 real orthogonal matrix defined as the product of blocked +*> where Q is a complex unitary matrix defined as the product of blocked *> elementary reflectors computed by short wide LQ *> factorization (ZLASWLQ) *> \endverbatim @@ -56,7 +56,7 @@ *> \param[in] N *> \verbatim *> N is INTEGER -*> The number of columns of the matrix C. N >= M. +*> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K @@ -70,25 +70,17 @@ *> \param[in] MB *> \verbatim *> MB is INTEGER -*> The row block size to be used in the blocked QR. +*> The row block size to be used in the blocked LQ. *> M >= MB >= 1 *> \endverbatim *> *> \param[in] NB *> \verbatim *> NB is INTEGER -*> The column block size to be used in the blocked QR. +*> The column block size to be used in the blocked LQ. *> NB > M. *> \endverbatim *> -*> \param[in] NB -*> \verbatim -*> NB is INTEGER -*> The block size to be used in the blocked QR. -*> MB > M. -*> -*> \endverbatim -*> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension @@ -102,9 +94,7 @@ *> \param[in] LDA *> \verbatim *> LDA is INTEGER -*> The leading dimension of the array A. -*> If SIDE = 'L', LDA >= max(1,M); -*> if SIDE = 'R', LDA >= max(1,N). +*> The leading dimension of the array A. LDA >= MAX(1,K). *> \endverbatim *> *> \param[in] T @@ -171,8 +161,8 @@ * ===================== *> *> \verbatim -*> Short-Wide LQ (SWLQ) performs LQ by a sequence of orthogonal transformations, -*> representing Q as a product of other orthogonal matrices +*> Short-Wide LQ (SWLQ) performs LQ by a sequence of unitary transformations, +*> representing Q as a product of other unitary matrices *> Q = Q(1) * Q(2) * . . . * Q(k) *> where each Q(i) zeros out upper diagonal entries of a block of NB rows of A: *> Q(1) zeros out the upper diagonal entries of rows 1:NB of A @@ -189,7 +179,7 @@ *> stored in columns [(i-1)*(NB-M)+M+1:i*(NB-M)+M] of A, and by upper triangular *> block reflectors, stored in array T(1:LDT,(i-1)*M+1:i*M). *> The last Q(k) may use fewer rows. -*> For more information see Further Details in TPQRT. +*> For more information see Further Details in TPLQT. *> *> For more details of the overall algorithm, see the description of *> Sequential TSQR in Section 2.2 of [1]. @@ -203,10 +193,9 @@ SUBROUTINE ZLAMSWLQ( SIDE, TRANS, M, N, K, MB, NB, A, LDA, T, $ LDT, C, LDC, WORK, LWORK, INFO ) * -* -- LAPACK computational routine (version 3.7.1) -- +* -- LAPACK computational routine -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* June 2017 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS @@ -250,12 +239,14 @@ INFO = -1 ELSE IF( .NOT.TRAN .AND. .NOT.NOTRAN ) THEN INFO = -2 - ELSE IF( M.LT.0 ) THEN + ELSE IF( K.LT.0 ) THEN + INFO = -5 + ELSE IF( M.LT.K ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 - ELSE IF( K.LT.0 ) THEN - INFO = -5 + ELSE IF( K.LT.MB .OR. MB.LT.1) THEN + INFO = -6 ELSE IF( LDA.LT.MAX( 1, K ) ) THEN INFO = -9 ELSE IF( LDT.LT.MAX( 1, MB) ) THEN