--- rpl/lapack/lapack/dgemlqt.f 2017/06/17 11:06:16 1.2 +++ rpl/lapack/lapack/dgemlqt.f 2023/08/07 08:38:49 1.5 @@ -6,7 +6,7 @@ * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly -*> Download DGEMQRT + dependencies +*> Download DGEMLQT + dependencies *> *> [TGZ] *> @@ -35,7 +35,7 @@ *> *> \verbatim *> -*> DGEMQRT overwrites the general real M-by-N matrix C with +*> DGEMLQT overwrites the general real M-by-N matrix C with *> *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': Q C C Q @@ -99,7 +99,9 @@ *> *> \param[in] V *> \verbatim -*> V is DOUBLE PRECISION array, dimension (LDV,K) +*> V is DOUBLE PRECISION array, dimension +*> (LDV,M) if SIDE = 'L', +*> (LDV,N) if SIDE = 'R' *> The i-th row must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> DGELQT in the first K rows of its array argument A. @@ -108,16 +110,14 @@ *> \param[in] LDV *> \verbatim *> LDV is INTEGER -*> The leading dimension of the array V. -*> If SIDE = 'L', LDA >= max(1,M); -*> if SIDE = 'R', LDA >= max(1,N). +*> The leading dimension of the array V. LDV >= max(1,K). *> \endverbatim *> *> \param[in] T *> \verbatim *> T is DOUBLE PRECISION array, dimension (LDT,K) *> The upper triangular factors of the block reflectors -*> as returned by DGELQT, stored as a MB-by-M matrix. +*> as returned by DGELQT, stored as a MB-by-K matrix. *> \endverbatim *> *> \param[in] LDT @@ -160,18 +160,15 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date December 2016 -* *> \ingroup doubleGEcomputational * * ===================================================================== SUBROUTINE DGEMLQT( SIDE, TRANS, M, N, K, MB, V, LDV, T, LDT, $ C, LDC, WORK, 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 @@ -210,8 +207,10 @@ * IF( LEFT ) THEN LDWORK = MAX( 1, N ) + Q = M ELSE IF ( RIGHT ) THEN LDWORK = MAX( 1, M ) + Q = N END IF IF( .NOT.LEFT .AND. .NOT.RIGHT ) THEN INFO = -1 @@ -221,7 +220,7 @@ INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 - ELSE IF( K.LT.0) THEN + ELSE IF( K.LT.0 .OR. K.GT.Q ) THEN INFO = -5 ELSE IF( MB.LT.1 .OR. (MB.GT.K .AND. K.GT.0)) THEN INFO = -6