--- rpl/lapack/lapack/zgemqrt.f 2012/08/22 09:48:30 1.2 +++ rpl/lapack/lapack/zgemqrt.f 2023/08/07 08:39:18 1.10 @@ -2,25 +2,25 @@ * * =========== DOCUMENTATION =========== * -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ * *> \htmlonly -*> Download ZGEMQRT + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> +*> Download ZGEMQRT + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> *> [TXT] -*> \endhtmlonly +*> \endhtmlonly * * Definition: * =========== * -* SUBROUTINE ZGEMQRT( SIDE, TRANS, M, N, K, NB, V, LDV, T, LDT, +* SUBROUTINE ZGEMQRT( SIDE, TRANS, M, N, K, NB, V, LDV, T, LDT, * C, LDC, WORK, INFO ) -* +* * .. Scalar Arguments .. * CHARACTER SIDE, TRANS * INTEGER INFO, K, LDV, LDC, M, N, NB, LDT @@ -28,7 +28,7 @@ * .. Array Arguments .. * COMPLEX*16 V( LDV, * ), C( LDC, * ), T( LDT, * ), WORK( * ) * .. -* +* * *> \par Purpose: * ============= @@ -46,7 +46,7 @@ *> *> Q = H(1) H(2) . . . H(K) = I - V T V**H *> -*> generated using the compact WY representation as returned by ZGEQRT. +*> generated using the compact WY representation as returned by ZGEQRT. *> *> Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'. *> \endverbatim @@ -65,7 +65,7 @@ *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': No transpose, apply Q; -*> = 'C': Transpose, apply Q**H. +*> = 'C': Conjugate transpose, apply Q**H. *> \endverbatim *> *> \param[in] M @@ -94,7 +94,7 @@ *> NB is INTEGER *> The block size used for the storage of T. K >= NB >= 1. *> This must be the same value of NB used to generate T -*> in CGEQRT. +*> in ZGEQRT. *> \endverbatim *> *> \param[in] V @@ -102,7 +102,7 @@ *> V is COMPLEX*16 array, dimension (LDV,K) *> The i-th column must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by -*> CGEQRT in the first K columns of its array argument A. +*> ZGEQRT in the first K columns of its array argument A. *> \endverbatim *> *> \param[in] LDV @@ -117,7 +117,7 @@ *> \verbatim *> T is COMPLEX*16 array, dimension (LDT,K) *> The upper triangular factors of the block reflectors -*> as returned by CGEQRT, stored as a NB-by-N matrix. +*> as returned by ZGEQRT, stored as a NB-by-N matrix. *> \endverbatim *> *> \param[in] LDT @@ -155,23 +155,20 @@ * Authors: * ======== * -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date November 2011 +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. * *> \ingroup complex16GEcomputational * * ===================================================================== - SUBROUTINE ZGEMQRT( SIDE, TRANS, M, N, K, NB, V, LDV, T, LDT, + SUBROUTINE ZGEMQRT( SIDE, TRANS, M, N, K, NB, V, LDV, T, LDT, $ C, LDC, WORK, INFO ) * -* -- LAPACK computational routine (version 3.4.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..-- -* November 2011 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS @@ -207,7 +204,7 @@ RIGHT = LSAME( SIDE, 'R' ) TRAN = LSAME( TRANS, 'C' ) NOTRAN = LSAME( TRANS, 'N' ) -* +* IF( LEFT ) THEN LDWORK = MAX( 1, N ) Q = M @@ -225,7 +222,7 @@ INFO = -4 ELSE IF( K.LT.0 .OR. K.GT.Q ) THEN INFO = -5 - ELSE IF( NB.LT.1 .OR. NB.GT.K ) THEN + ELSE IF( NB.LT.1 .OR. (NB.GT.K .AND. K.GT.0)) THEN INFO = -6 ELSE IF( LDV.LT.MAX( 1, Q ) ) THEN INFO = -8 @@ -248,17 +245,17 @@ * DO I = 1, K, NB IB = MIN( NB, K-I+1 ) - CALL ZLARFB( 'L', 'C', 'F', 'C', M-I+1, N, IB, - $ V( I, I ), LDV, T( 1, I ), LDT, + CALL ZLARFB( 'L', 'C', 'F', 'C', M-I+1, N, IB, + $ V( I, I ), LDV, T( 1, I ), LDT, $ C( I, 1 ), LDC, WORK, LDWORK ) END DO -* +* ELSE IF( RIGHT .AND. NOTRAN ) THEN * DO I = 1, K, NB IB = MIN( NB, K-I+1 ) - CALL ZLARFB( 'R', 'N', 'F', 'C', M, N-I+1, IB, - $ V( I, I ), LDV, T( 1, I ), LDT, + CALL ZLARFB( 'R', 'N', 'F', 'C', M, N-I+1, IB, + $ V( I, I ), LDV, T( 1, I ), LDT, $ C( 1, I ), LDC, WORK, LDWORK ) END DO * @@ -266,9 +263,9 @@ * KF = ((K-1)/NB)*NB+1 DO I = KF, 1, -NB - IB = MIN( NB, K-I+1 ) - CALL ZLARFB( 'L', 'N', 'F', 'C', M-I+1, N, IB, - $ V( I, I ), LDV, T( 1, I ), LDT, + IB = MIN( NB, K-I+1 ) + CALL ZLARFB( 'L', 'N', 'F', 'C', M-I+1, N, IB, + $ V( I, I ), LDV, T( 1, I ), LDT, $ C( I, 1 ), LDC, WORK, LDWORK ) END DO * @@ -276,9 +273,9 @@ * KF = ((K-1)/NB)*NB+1 DO I = KF, 1, -NB - IB = MIN( NB, K-I+1 ) - CALL ZLARFB( 'R', 'C', 'F', 'C', M, N-I+1, IB, - $ V( I, I ), LDV, T( 1, I ), LDT, + IB = MIN( NB, K-I+1 ) + CALL ZLARFB( 'R', 'C', 'F', 'C', M, N-I+1, IB, + $ V( I, I ), LDV, T( 1, I ), LDT, $ C( 1, I ), LDC, WORK, LDWORK ) END DO *