Diff for /rpl/lapack/lapack/zlahr2.f between versions 1.15 and 1.16

version 1.15, 2016/08/27 15:34:57 version 1.16, 2017/06/17 10:54:19
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 ZLAHR2 + dependencies   *> Download ZLAHR2 + dependencies
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zlahr2.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zlahr2.f">
 *> [TGZ]</a>   *> [TGZ]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zlahr2.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zlahr2.f">
 *> [ZIP]</a>   *> [ZIP]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlahr2.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlahr2.f">
 *> [TXT]</a>  *> [TXT]</a>
 *> \endhtmlonly   *> \endhtmlonly
 *  *
 *  Definition:  *  Definition:
 *  ===========  *  ===========
 *  *
 *       SUBROUTINE ZLAHR2( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY )  *       SUBROUTINE ZLAHR2( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY )
 *   *
 *       .. Scalar Arguments ..  *       .. Scalar Arguments ..
 *       INTEGER            K, LDA, LDT, LDY, N, NB  *       INTEGER            K, LDA, LDT, LDY, N, NB
 *       ..  *       ..
Line 27 Line 27
 *       COMPLEX*16        A( LDA, * ), T( LDT, NB ), TAU( NB ),  *       COMPLEX*16        A( LDA, * ), T( LDT, NB ), TAU( NB ),
 *      $                   Y( LDY, NB )  *      $                   Y( LDY, NB )
 *       ..  *       ..
 *    *
 *  *
 *> \par Purpose:  *> \par Purpose:
 *  =============  *  =============
Line 118 Line 118
 *  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 September 2012  *> \date December 2016
 *  *
 *> \ingroup complex16OTHERauxiliary  *> \ingroup complex16OTHERauxiliary
 *  *
Line 181 Line 181
 *  =====================================================================  *  =====================================================================
       SUBROUTINE ZLAHR2( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY )        SUBROUTINE ZLAHR2( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY )
 *  *
 *  -- LAPACK auxiliary routine (version 3.4.2) --  *  -- LAPACK auxiliary routine (version 3.7.0) --
 *  -- 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..--
 *     September 2012  *     December 2016
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       INTEGER            K, LDA, LDT, LDY, N, NB        INTEGER            K, LDA, LDT, LDY, N, NB
Line 198 Line 198
 *  *
 *     .. Parameters ..  *     .. Parameters ..
       COMPLEX*16        ZERO, ONE        COMPLEX*16        ZERO, ONE
       PARAMETER          ( ZERO = ( 0.0D+0, 0.0D+0 ),         PARAMETER          ( ZERO = ( 0.0D+0, 0.0D+0 ),
      $                     ONE = ( 1.0D+0, 0.0D+0 ) )       $                     ONE = ( 1.0D+0, 0.0D+0 ) )
 *     ..  *     ..
 *     .. Local Scalars ..  *     .. Local Scalars ..
Line 226 Line 226
 *  *
 *           Update I-th column of A - Y * V**H  *           Update I-th column of A - Y * V**H
 *  *
             CALL ZLACGV( I-1, A( K+I-1, 1 ), LDA )               CALL ZLACGV( I-1, A( K+I-1, 1 ), LDA )
             CALL ZGEMV( 'NO TRANSPOSE', N-K, I-1, -ONE, Y(K+1,1), LDY,              CALL ZGEMV( 'NO TRANSPOSE', N-K, I-1, -ONE, Y(K+1,1), LDY,
      $                  A( K+I-1, 1 ), LDA, ONE, A( K+1, I ), 1 )       $                  A( K+I-1, 1 ), LDA, ONE, A( K+1, I ), 1 )
             CALL ZLACGV( I-1, A( K+I-1, 1 ), LDA )               CALL ZLACGV( I-1, A( K+I-1, 1 ), LDA )
 *  *
 *           Apply I - V * T**H * V**H to this column (call it b) from the  *           Apply I - V * T**H * V**H to this column (call it b) from the
 *           left, using the last column of T as workspace  *           left, using the last column of T as workspace
Line 242 Line 242
 *           w := V1**H * b1  *           w := V1**H * b1
 *  *
             CALL ZCOPY( I-1, A( K+1, I ), 1, T( 1, NB ), 1 )              CALL ZCOPY( I-1, A( K+1, I ), 1, T( 1, NB ), 1 )
             CALL ZTRMV( 'Lower', 'Conjugate transpose', 'UNIT',               CALL ZTRMV( 'Lower', 'Conjugate transpose', 'UNIT',
      $                  I-1, A( K+1, 1 ),       $                  I-1, A( K+1, 1 ),
      $                  LDA, T( 1, NB ), 1 )       $                  LDA, T( 1, NB ), 1 )
 *  *
 *           w := w + V2**H * b2  *           w := w + V2**H * b2
 *  *
             CALL ZGEMV( 'Conjugate transpose', N-K-I+1, I-1,               CALL ZGEMV( 'Conjugate transpose', N-K-I+1, I-1,
      $                  ONE, A( K+I, 1 ),       $                  ONE, A( K+I, 1 ),
      $                  LDA, A( K+I, I ), 1, ONE, T( 1, NB ), 1 )       $                  LDA, A( K+I, I ), 1, ONE, T( 1, NB ), 1 )
 *  *
 *           w := T**H * w  *           w := T**H * w
 *  *
             CALL ZTRMV( 'Upper', 'Conjugate transpose', 'NON-UNIT',               CALL ZTRMV( 'Upper', 'Conjugate transpose', 'NON-UNIT',
      $                  I-1, T, LDT,       $                  I-1, T, LDT,
      $                  T( 1, NB ), 1 )       $                  T( 1, NB ), 1 )
 *  *
 *           b2 := b2 - V2*w  *           b2 := b2 - V2*w
 *  *
             CALL ZGEMV( 'NO TRANSPOSE', N-K-I+1, I-1, -ONE,               CALL ZGEMV( 'NO TRANSPOSE', N-K-I+1, I-1, -ONE,
      $                  A( K+I, 1 ),       $                  A( K+I, 1 ),
      $                  LDA, T( 1, NB ), 1, ONE, A( K+I, I ), 1 )       $                  LDA, T( 1, NB ), 1, ONE, A( K+I, I ), 1 )
 *  *
 *           b1 := b1 - V1*w  *           b1 := b1 - V1*w
 *  *
             CALL ZTRMV( 'Lower', 'NO TRANSPOSE',               CALL ZTRMV( 'Lower', 'NO TRANSPOSE',
      $                  'UNIT', I-1,       $                  'UNIT', I-1,
      $                  A( K+1, 1 ), LDA, T( 1, NB ), 1 )       $                  A( K+1, 1 ), LDA, T( 1, NB ), 1 )
             CALL ZAXPY( I-1, -ONE, T( 1, NB ), 1, A( K+1, I ), 1 )              CALL ZAXPY( I-1, -ONE, T( 1, NB ), 1, A( K+1, I ), 1 )
Line 284 Line 284
 *  *
 *        Compute  Y(K+1:N,I)  *        Compute  Y(K+1:N,I)
 *  *
          CALL ZGEMV( 'NO TRANSPOSE', N-K, N-K-I+1,            CALL ZGEMV( 'NO TRANSPOSE', N-K, N-K-I+1,
      $               ONE, A( K+1, I+1 ),       $               ONE, A( K+1, I+1 ),
      $               LDA, A( K+I, I ), 1, ZERO, Y( K+1, I ), 1 )       $               LDA, A( K+I, I ), 1, ZERO, Y( K+1, I ), 1 )
          CALL ZGEMV( 'Conjugate transpose', N-K-I+1, I-1,            CALL ZGEMV( 'Conjugate transpose', N-K-I+1, I-1,
      $               ONE, A( K+I, 1 ), LDA,       $               ONE, A( K+I, 1 ), LDA,
      $               A( K+I, I ), 1, ZERO, T( 1, I ), 1 )       $               A( K+I, I ), 1, ZERO, T( 1, I ), 1 )
          CALL ZGEMV( 'NO TRANSPOSE', N-K, I-1, -ONE,            CALL ZGEMV( 'NO TRANSPOSE', N-K, I-1, -ONE,
      $               Y( K+1, 1 ), LDY,       $               Y( K+1, 1 ), LDY,
      $               T( 1, I ), 1, ONE, Y( K+1, I ), 1 )       $               T( 1, I ), 1, ONE, Y( K+1, I ), 1 )
          CALL ZSCAL( N-K, TAU( I ), Y( K+1, I ), 1 )           CALL ZSCAL( N-K, TAU( I ), Y( K+1, I ), 1 )
Line 298 Line 298
 *        Compute T(1:I,I)  *        Compute T(1:I,I)
 *  *
          CALL ZSCAL( I-1, -TAU( I ), T( 1, I ), 1 )           CALL ZSCAL( I-1, -TAU( I ), T( 1, I ), 1 )
          CALL ZTRMV( 'Upper', 'No Transpose', 'NON-UNIT',            CALL ZTRMV( 'Upper', 'No Transpose', 'NON-UNIT',
      $               I-1, T, LDT,       $               I-1, T, LDT,
      $               T( 1, I ), 1 )       $               T( 1, I ), 1 )
          T( I, I ) = TAU( I )           T( I, I ) = TAU( I )
Line 309 Line 309
 *     Compute Y(1:K,1:NB)  *     Compute Y(1:K,1:NB)
 *  *
       CALL ZLACPY( 'ALL', K, NB, A( 1, 2 ), LDA, Y, LDY )        CALL ZLACPY( 'ALL', K, NB, A( 1, 2 ), LDA, Y, LDY )
       CALL ZTRMM( 'RIGHT', 'Lower', 'NO TRANSPOSE',         CALL ZTRMM( 'RIGHT', 'Lower', 'NO TRANSPOSE',
      $            'UNIT', K, NB,       $            'UNIT', K, NB,
      $            ONE, A( K+1, 1 ), LDA, Y, LDY )       $            ONE, A( K+1, 1 ), LDA, Y, LDY )
       IF( N.GT.K+NB )        IF( N.GT.K+NB )
      $   CALL ZGEMM( 'NO TRANSPOSE', 'NO TRANSPOSE', K,        $   CALL ZGEMM( 'NO TRANSPOSE', 'NO TRANSPOSE', K,
      $               NB, N-K-NB, ONE,       $               NB, N-K-NB, ONE,
      $               A( 1, 2+NB ), LDA, A( K+1+NB, 1 ), LDA, ONE, Y,       $               A( 1, 2+NB ), LDA, A( K+1+NB, 1 ), LDA, ONE, Y,
      $               LDY )       $               LDY )
       CALL ZTRMM( 'RIGHT', 'Upper', 'NO TRANSPOSE',         CALL ZTRMM( 'RIGHT', 'Upper', 'NO TRANSPOSE',
      $            'NON-UNIT', K, NB,       $            'NON-UNIT', K, NB,
      $            ONE, T, LDT, Y, LDY )       $            ONE, T, LDT, Y, LDY )
 *  *

Removed from v.1.15  
changed lines
  Added in v.1.16


CVSweb interface <joel.bertrand@systella.fr>