--- rpl/lapack/lapack/dlamswlq.f 2017/06/17 11:06:23 1.2 +++ rpl/lapack/lapack/dlamswlq.f 2023/08/07 08:38:54 1.6 @@ -1,3 +1,4 @@ +*> \brief \b DLAMSWLQ * * Definition: * =========== @@ -18,7 +19,7 @@ *> *> \verbatim *> -*> DLAMQRTS overwrites the general real M-by-N matrix C with +*> DLAMSWLQ overwrites the general real M-by-N matrix C with *> *> *> SIDE = 'L' SIDE = 'R' @@ -49,13 +50,13 @@ *> \param[in] M *> \verbatim *> M is INTEGER -*> The number of rows of the matrix A. M >=0. +*> The number of rows of the matrix C. M >=0. *> \endverbatim *> *> \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 @@ -69,28 +70,22 @@ *> \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,out] A +*> \param[in] A *> \verbatim -*> A is DOUBLE PRECISION array, dimension (LDA,K) +*> A is DOUBLE PRECISION array, dimension +*> (LDA,M) if SIDE = 'L', +*> (LDA,N) if SIDE = 'R' *> The i-th row must contain the vector which defines the blocked *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> DLASWLQ in the first k rows of its array argument A. @@ -99,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 @@ -186,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]. @@ -200,10 +193,9 @@ SUBROUTINE DLAMSWLQ( SIDE, TRANS, M, N, K, MB, NB, A, LDA, T, $ LDT, C, LDC, WORK, LWORK, INFO ) * -* -- LAPACK computational routine (version 3.7.0) -- +* -- LAPACK computational routine -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS @@ -247,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