--- rpl/lapack/lapack/dgemlqt.f 2017/06/17 11:02:49 1.1
+++ 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