Diff for /rpl/lapack/lapack/dlasq4.f between versions 1.16 and 1.17

version 1.16, 2016/08/27 15:34:32 version 1.17, 2017/06/17 10:53:57
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 DLASQ4 + dependencies   *> Download DLASQ4 + dependencies
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlasq4.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlasq4.f">
 *> [TGZ]</a>   *> [TGZ]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlasq4.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlasq4.f">
 *> [ZIP]</a>   *> [ZIP]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasq4.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasq4.f">
 *> [TXT]</a>  *> [TXT]</a>
 *> \endhtmlonly   *> \endhtmlonly
 *  *
 *  Definition:  *  Definition:
 *  ===========  *  ===========
 *  *
 *       SUBROUTINE DLASQ4( I0, N0, Z, PP, N0IN, DMIN, DMIN1, DMIN2, DN,  *       SUBROUTINE DLASQ4( I0, N0, Z, PP, N0IN, DMIN, DMIN1, DMIN2, DN,
 *                          DN1, DN2, TAU, TTYPE, G )  *                          DN1, DN2, TAU, TTYPE, G )
 *   *
 *       .. Scalar Arguments ..  *       .. Scalar Arguments ..
 *       INTEGER            I0, N0, N0IN, PP, TTYPE  *       INTEGER            I0, N0, N0IN, PP, TTYPE
 *       DOUBLE PRECISION   DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, TAU  *       DOUBLE PRECISION   DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, TAU
Line 28 Line 28
 *       .. Array Arguments ..  *       .. Array Arguments ..
 *       DOUBLE PRECISION   Z( * )  *       DOUBLE PRECISION   Z( * )
 *       ..  *       ..
 *    *
 *  *
 *> \par Purpose:  *> \par Purpose:
 *  =============  *  =============
Line 130 Line 130
 *  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 June 2016  *> \date June 2016
 *  *
Line 151 Line 151
       SUBROUTINE DLASQ4( I0, N0, Z, PP, N0IN, DMIN, DMIN1, DMIN2, DN,        SUBROUTINE DLASQ4( I0, N0, Z, PP, N0IN, DMIN, DMIN1, DMIN2, DN,
      $                   DN1, DN2, TAU, TTYPE, G )       $                   DN1, DN2, TAU, TTYPE, G )
 *  *
 *  -- LAPACK computational routine (version 3.6.1) --  *  -- LAPACK computational 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..--
 *     June 2016  *     June 2016
Line 192 Line 192
          TTYPE = -1           TTYPE = -1
          RETURN           RETURN
       END IF        END IF
 *         *
       NN = 4*N0 + PP        NN = 4*N0 + PP
       IF( N0IN.EQ.N0 ) THEN        IF( N0IN.EQ.N0 ) THEN
 *  *
Line 262 Line 262
      $               RETURN       $               RETURN
                   B2 = B2*( Z( I4 ) / Z( I4-2 ) )                    B2 = B2*( Z( I4 ) / Z( I4-2 ) )
                   A2 = A2 + B2                    A2 = A2 + B2
                   IF( HUNDRD*MAX( B2, B1 ).LT.A2 .OR. CNST1.LT.A2 )                     IF( HUNDRD*MAX( B2, B1 ).LT.A2 .OR. CNST1.LT.A2 )
      $               GO TO 20       $               GO TO 20
    10          CONTINUE     10          CONTINUE
    20          CONTINUE     20          CONTINUE
Line 303 Line 303
      $               RETURN       $               RETURN
                   B2 = B2*( Z( I4 ) / Z( I4-2 ) )                    B2 = B2*( Z( I4 ) / Z( I4-2 ) )
                   A2 = A2 + B2                    A2 = A2 + B2
                   IF( HUNDRD*MAX( B2, B1 ).LT.A2 .OR. CNST1.LT.A2 )                     IF( HUNDRD*MAX( B2, B1 ).LT.A2 .OR. CNST1.LT.A2 )
      $               GO TO 40       $               GO TO 40
    30          CONTINUE     30          CONTINUE
    40          CONTINUE     40          CONTINUE
Line 331 Line 331
 *  *
 *        One eigenvalue just deflated. Use DMIN1, DN1 for DMIN and DN.  *        One eigenvalue just deflated. Use DMIN1, DN1 for DMIN and DN.
 *  *
          IF( DMIN1.EQ.DN1 .AND. DMIN2.EQ.DN2 ) THEN            IF( DMIN1.EQ.DN1 .AND. DMIN2.EQ.DN2 ) THEN
 *  *
 *           Cases 7 and 8.  *           Cases 7 and 8.
 *  *
Line 349 Line 349
      $            RETURN       $            RETURN
                B1 = B1*( Z( I4 ) / Z( I4-2 ) )                 B1 = B1*( Z( I4 ) / Z( I4-2 ) )
                B2 = B2 + B1                 B2 = B2 + B1
                IF( HUNDRD*MAX( B1, A2 ).LT.B2 )                  IF( HUNDRD*MAX( B1, A2 ).LT.B2 )
      $            GO TO 60       $            GO TO 60
    50       CONTINUE     50       CONTINUE
    60       CONTINUE     60       CONTINUE
Line 358 Line 358
             GAP2 = HALF*DMIN2 - A2              GAP2 = HALF*DMIN2 - A2
             IF( GAP2.GT.ZERO .AND. GAP2.GT.B2*A2 ) THEN              IF( GAP2.GT.ZERO .AND. GAP2.GT.B2*A2 ) THEN
                S = MAX( S, A2*( ONE-CNST2*A2*( B2 / GAP2 )*B2 ) )                 S = MAX( S, A2*( ONE-CNST2*A2*( B2 / GAP2 )*B2 ) )
             ELSE               ELSE
                S = MAX( S, A2*( ONE-CNST2*B2 ) )                 S = MAX( S, A2*( ONE-CNST2*B2 ) )
                TTYPE = -8                 TTYPE = -8
             END IF              END IF
Line 378 Line 378
 *  *
 *        Cases 10 and 11.  *        Cases 10 and 11.
 *  *
          IF( DMIN2.EQ.DN2 .AND. TWO*Z( NN-5 ).LT.Z( NN-7 ) ) THEN            IF( DMIN2.EQ.DN2 .AND. TWO*Z( NN-5 ).LT.Z( NN-7 ) ) THEN
             TTYPE = -10              TTYPE = -10
             S = THIRD*DMIN2              S = THIRD*DMIN2
             IF( Z( NN-5 ).GT.Z( NN-7 ) )              IF( Z( NN-5 ).GT.Z( NN-7 ) )
Line 402 Line 402
      $             SQRT( Z( NN-11 ) )*SQRT( Z( NN-9 ) ) - A2       $             SQRT( Z( NN-11 ) )*SQRT( Z( NN-9 ) ) - A2
             IF( GAP2.GT.ZERO .AND. GAP2.GT.B2*A2 ) THEN              IF( GAP2.GT.ZERO .AND. GAP2.GT.B2*A2 ) THEN
                S = MAX( S, A2*( ONE-CNST2*A2*( B2 / GAP2 )*B2 ) )                 S = MAX( S, A2*( ONE-CNST2*A2*( B2 / GAP2 )*B2 ) )
             ELSE               ELSE
                S = MAX( S, A2*( ONE-CNST2*B2 ) )                 S = MAX( S, A2*( ONE-CNST2*B2 ) )
             END IF              END IF
          ELSE           ELSE
Line 413 Line 413
 *  *
 *        Case 12, more than two eigenvalues deflated. No information.  *        Case 12, more than two eigenvalues deflated. No information.
 *  *
          S = ZERO            S = ZERO
          TTYPE = -12           TTYPE = -12
       END IF        END IF
 *  *

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


CVSweb interface <joel.bertrand@systella.fr>