Diff for /rpl/lapack/lapack/zgemqrt.f between versions 1.4 and 1.10

version 1.4, 2014/01/27 09:24:36 version 1.10, 2023/08/07 08:39:18
Line 2 Line 2
 *  *
 *  =========== DOCUMENTATION ===========  *  =========== DOCUMENTATION ===========
 *  *
 * Online html documentation available at   * Online html documentation available at
 *            http://www.netlib.org/lapack/explore-html/   *            http://www.netlib.org/lapack/explore-html/
 *  *
 *> \htmlonly  *> \htmlonly
 *> Download ZGEMQRT + dependencies   *> Download ZGEMQRT + dependencies
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zgemqrt.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zgemqrt.f">
 *> [TGZ]</a>   *> [TGZ]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zgemqrt.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zgemqrt.f">
 *> [ZIP]</a>   *> [ZIP]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgemqrt.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zgemqrt.f">
 *> [TXT]</a>  *> [TXT]</a>
 *> \endhtmlonly   *> \endhtmlonly
 *  *
 *  Definition:  *  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 )  *                          C, LDC, WORK, INFO )
 *   *
 *       .. Scalar Arguments ..  *       .. Scalar Arguments ..
 *       CHARACTER SIDE, TRANS  *       CHARACTER SIDE, TRANS
 *       INTEGER   INFO, K, LDV, LDC, M, N, NB, LDT  *       INTEGER   INFO, K, LDV, LDC, M, N, NB, LDT
Line 28 Line 28
 *       .. Array Arguments ..  *       .. Array Arguments ..
 *       COMPLEX*16   V( LDV, * ), C( LDC, * ), T( LDT, * ), WORK( * )  *       COMPLEX*16   V( LDV, * ), C( LDC, * ), T( LDT, * ), WORK( * )
 *       ..  *       ..
 *    *
 *  *
 *> \par Purpose:  *> \par Purpose:
 *  =============  *  =============
Line 46 Line 46
 *>  *>
 *>       Q = H(1) H(2) . . . H(K) = I - V T V**H  *>       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'.  *> Q is of order M if SIDE = 'L' and of order N  if SIDE = 'R'.
 *> \endverbatim  *> \endverbatim
Line 65 Line 65
 *> \verbatim  *> \verbatim
 *>          TRANS is CHARACTER*1  *>          TRANS is CHARACTER*1
 *>          = 'N':  No transpose, apply Q;  *>          = 'N':  No transpose, apply Q;
 *>          = 'C':  Transpose, apply Q**H.  *>          = 'C':  Conjugate transpose, apply Q**H.
 *> \endverbatim  *> \endverbatim
 *>  *>
 *> \param[in] M  *> \param[in] M
Line 94 Line 94
 *>          NB is INTEGER  *>          NB is INTEGER
 *>          The block size used for the storage of T.  K >= NB >= 1.  *>          The block size used for the storage of T.  K >= NB >= 1.
 *>          This must be the same value of NB used to generate T  *>          This must be the same value of NB used to generate T
 *>          in CGEQRT.  *>          in ZGEQRT.
 *> \endverbatim  *> \endverbatim
 *>  *>
 *> \param[in] V  *> \param[in] V
Line 102 Line 102
 *>          V is COMPLEX*16 array, dimension (LDV,K)  *>          V is COMPLEX*16 array, dimension (LDV,K)
 *>          The i-th column must contain the vector which defines the  *>          The i-th column must contain the vector which defines the
 *>          elementary reflector H(i), for i = 1,2,...,k, as returned by  *>          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  *> \endverbatim
 *>  *>
 *> \param[in] LDV  *> \param[in] LDV
Line 117 Line 117
 *> \verbatim  *> \verbatim
 *>          T is COMPLEX*16 array, dimension (LDT,K)  *>          T is COMPLEX*16 array, dimension (LDT,K)
 *>          The upper triangular factors of the block reflectors  *>          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  *> \endverbatim
 *>  *>
 *> \param[in] LDT  *> \param[in] LDT
Line 155 Line 155
 *  Authors:  *  Authors:
 *  ========  *  ========
 *  *
 *> \author Univ. of Tennessee   *> \author Univ. of Tennessee
 *> \author Univ. of California Berkeley   *> \author Univ. of California Berkeley
 *> \author Univ. of Colorado Denver   *> \author Univ. of Colorado Denver
 *> \author NAG Ltd.   *> \author NAG Ltd.
 *  
 *> \date November 2013  
 *  *
 *> \ingroup complex16GEcomputational  *> \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 )       $                   C, LDC, WORK, INFO )
 *  *
 *  -- LAPACK computational routine (version 3.5.0) --  *  -- LAPACK computational routine --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --  *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--  *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
 *     November 2013  
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       CHARACTER SIDE, TRANS        CHARACTER SIDE, TRANS
Line 207 Line 204
       RIGHT  = LSAME( SIDE,  'R' )        RIGHT  = LSAME( SIDE,  'R' )
       TRAN   = LSAME( TRANS, 'C' )        TRAN   = LSAME( TRANS, 'C' )
       NOTRAN = LSAME( TRANS, 'N' )        NOTRAN = LSAME( TRANS, 'N' )
 *        *
       IF( LEFT ) THEN        IF( LEFT ) THEN
          LDWORK = MAX( 1, N )           LDWORK = MAX( 1, N )
          Q = M           Q = M
Line 248 Line 245
 *  *
          DO I = 1, K, NB           DO I = 1, K, NB
             IB = MIN( NB, K-I+1 )              IB = MIN( NB, K-I+1 )
             CALL ZLARFB( 'L', 'C', 'F', 'C', M-I+1, N, IB,               CALL ZLARFB( 'L', 'C', 'F', 'C', M-I+1, N, IB,
      $                   V( I, I ), LDV, T( 1, I ), LDT,        $                   V( I, I ), LDV, T( 1, I ), LDT,
      $                   C( I, 1 ), LDC, WORK, LDWORK )       $                   C( I, 1 ), LDC, WORK, LDWORK )
          END DO           END DO
 *           *
       ELSE IF( RIGHT .AND. NOTRAN ) THEN        ELSE IF( RIGHT .AND. NOTRAN ) THEN
 *  *
          DO I = 1, K, NB           DO I = 1, K, NB
             IB = MIN( NB, K-I+1 )              IB = MIN( NB, K-I+1 )
             CALL ZLARFB( 'R', 'N', 'F', 'C', M, N-I+1, IB,               CALL ZLARFB( 'R', 'N', 'F', 'C', M, N-I+1, IB,
      $                   V( I, I ), LDV, T( 1, I ), LDT,        $                   V( I, I ), LDV, T( 1, I ), LDT,
      $                   C( 1, I ), LDC, WORK, LDWORK )       $                   C( 1, I ), LDC, WORK, LDWORK )
          END DO           END DO
 *  *
Line 266 Line 263
 *  *
          KF = ((K-1)/NB)*NB+1           KF = ((K-1)/NB)*NB+1
          DO I = KF, 1, -NB           DO I = KF, 1, -NB
             IB = MIN( NB, K-I+1 )                       IB = MIN( NB, K-I+1 )
             CALL ZLARFB( 'L', 'N', 'F', 'C', M-I+1, N, IB,               CALL ZLARFB( 'L', 'N', 'F', 'C', M-I+1, N, IB,
      $                   V( I, I ), LDV, T( 1, I ), LDT,        $                   V( I, I ), LDV, T( 1, I ), LDT,
      $                   C( I, 1 ), LDC, WORK, LDWORK )       $                   C( I, 1 ), LDC, WORK, LDWORK )
          END DO           END DO
 *  *
Line 276 Line 273
 *  *
          KF = ((K-1)/NB)*NB+1           KF = ((K-1)/NB)*NB+1
          DO I = KF, 1, -NB           DO I = KF, 1, -NB
             IB = MIN( NB, K-I+1 )                       IB = MIN( NB, K-I+1 )
             CALL ZLARFB( 'R', 'C', 'F', 'C', M, N-I+1, IB,               CALL ZLARFB( 'R', 'C', 'F', 'C', M, N-I+1, IB,
      $                   V( I, I ), LDV, T( 1, I ), LDT,        $                   V( I, I ), LDV, T( 1, I ), LDT,
      $                   C( 1, I ), LDC, WORK, LDWORK )       $                   C( 1, I ), LDC, WORK, LDWORK )
          END DO           END DO
 *  *

Removed from v.1.4  
changed lines
  Added in v.1.10


CVSweb interface <joel.bertrand@systella.fr>