Diff for /rpl/lapack/lapack/dlasd4.f between versions 1.17 and 1.18

version 1.17, 2016/08/27 15:34:31 version 1.18, 2017/06/17 10:53:57
Line 140 Line 140
 *> \author Univ. of Colorado Denver  *> \author Univ. of Colorado Denver
 *> \author NAG Ltd.  *> \author NAG Ltd.
 *  *
 *> \date November 2013  *> \date December 2016
 *  *
 *> \ingroup auxOTHERauxiliary  *> \ingroup OTHERauxiliary
 *  *
 *> \par Contributors:  *> \par Contributors:
 *  ==================  *  ==================
Line 153 Line 153
 *  =====================================================================  *  =====================================================================
       SUBROUTINE DLASD4( N, I, D, Z, DELTA, RHO, SIGMA, WORK, INFO )        SUBROUTINE DLASD4( N, I, D, Z, DELTA, RHO, SIGMA, WORK, INFO )
 *  *
 *  -- LAPACK auxiliary routine (version 3.5.0) --  *  -- 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..--
 *     November 2013  *     December 2016
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       INTEGER            I, INFO, N        INTEGER            I, INFO, N
Line 331 Line 331
          TEMP = Z( N ) / ( DELTA( N )*WORK( N ) )           TEMP = Z( N ) / ( DELTA( N )*WORK( N ) )
          PHI = Z( N )*TEMP           PHI = Z( N )*TEMP
          DPHI = TEMP*TEMP           DPHI = TEMP*TEMP
          ERRETM = EIGHT*( -PHI-PSI ) + ERRETM - PHI + RHOINV             ERRETM = EIGHT*( -PHI-PSI ) + ERRETM - PHI + RHOINV
 *    $          + ABS( TAU2 )*( DPSI+DPHI )  *    $          + ABS( TAU2 )*( DPSI+DPHI )
 *  *
          W = RHOINV + PHI + PSI           W = RHOINV + PHI + PSI
Line 400 Line 400
          TEMP = Z( N ) / TAU2           TEMP = Z( N ) / TAU2
          PHI = Z( N )*TEMP           PHI = Z( N )*TEMP
          DPHI = TEMP*TEMP           DPHI = TEMP*TEMP
          ERRETM = EIGHT*( -PHI-PSI ) + ERRETM - PHI + RHOINV             ERRETM = EIGHT*( -PHI-PSI ) + ERRETM - PHI + RHOINV
 *    $          + ABS( TAU2 )*( DPSI+DPHI )  *    $          + ABS( TAU2 )*( DPSI+DPHI )
 *  *
          W = RHOINV + PHI + PSI           W = RHOINV + PHI + PSI
Line 470 Line 470
             TEMP = Z( N ) / TAU2              TEMP = Z( N ) / TAU2
             PHI = Z( N )*TEMP              PHI = Z( N )*TEMP
             DPHI = TEMP*TEMP              DPHI = TEMP*TEMP
             ERRETM = EIGHT*( -PHI-PSI ) + ERRETM - PHI + RHOINV                ERRETM = EIGHT*( -PHI-PSI ) + ERRETM - PHI + RHOINV
 *    $             + ABS( TAU2 )*( DPSI+DPHI )  *    $             + ABS( TAU2 )*( DPSI+DPHI )
 *  *
             W = RHOINV + PHI + PSI              W = RHOINV + PHI + PSI
Line 622 Line 622
          DW = DPSI + DPHI + TEMP*TEMP           DW = DPSI + DPHI + TEMP*TEMP
          TEMP = Z( II )*TEMP           TEMP = Z( II )*TEMP
          W = W + TEMP           W = W + TEMP
          ERRETM = EIGHT*( PHI-PSI ) + ERRETM + TWO*RHOINV            ERRETM = EIGHT*( PHI-PSI ) + ERRETM + TWO*RHOINV
      $          + THREE*ABS( TEMP )        $          + THREE*ABS( TEMP )
 *    $          + ABS( TAU2 )*DW  *    $          + ABS( TAU2 )*DW
 *  *
 *        Test for convergence  *        Test for convergence
Line 703 Line 703
 *  *
             IF( INFO.NE.0 ) THEN              IF( INFO.NE.0 ) THEN
 *  *
 *              If INFO is not 0, i.e., DLAED6 failed, switch back   *              If INFO is not 0, i.e., DLAED6 failed, switch back
 *              to 2 pole interpolation.  *              to 2 pole interpolation.
 *  *
                SWTCH3 = .FALSE.                 SWTCH3 = .FALSE.
Line 803 Line 803
          DW = DPSI + DPHI + TEMP*TEMP           DW = DPSI + DPHI + TEMP*TEMP
          TEMP = Z( II )*TEMP           TEMP = Z( II )*TEMP
          W = RHOINV + PHI + PSI + TEMP           W = RHOINV + PHI + PSI + TEMP
          ERRETM = EIGHT*( PHI-PSI ) + ERRETM + TWO*RHOINV            ERRETM = EIGHT*( PHI-PSI ) + ERRETM + TWO*RHOINV
      $          + THREE*ABS( TEMP )        $          + THREE*ABS( TEMP )
 *    $          + ABS( TAU2 )*DW  *    $          + ABS( TAU2 )*DW
 *  *
          SWTCH = .FALSE.           SWTCH = .FALSE.
Line 922 Line 922
 *  *
                IF( INFO.NE.0 ) THEN                 IF( INFO.NE.0 ) THEN
 *  *
 *                 If INFO is not 0, i.e., DLAED6 failed, switch   *                 If INFO is not 0, i.e., DLAED6 failed, switch
 *                 back to two pole interpolation  *                 back to two pole interpolation
 *  *
                   SWTCH3 = .FALSE.                    SWTCH3 = .FALSE.
Line 1038 Line 1038
             DW = DPSI + DPHI + TEMP*TEMP              DW = DPSI + DPHI + TEMP*TEMP
             TEMP = Z( II )*TEMP              TEMP = Z( II )*TEMP
             W = RHOINV + PHI + PSI + TEMP              W = RHOINV + PHI + PSI + TEMP
             ERRETM = EIGHT*( PHI-PSI ) + ERRETM + TWO*RHOINV               ERRETM = EIGHT*( PHI-PSI ) + ERRETM + TWO*RHOINV
      $             + THREE*ABS( TEMP )        $             + THREE*ABS( TEMP )
 *    $             + ABS( TAU2 )*DW  *    $             + ABS( TAU2 )*DW
 *  *
             IF( W*PREW.GT.ZERO .AND. ABS( W ).GT.ABS( PREW ) / TEN )              IF( W*PREW.GT.ZERO .AND. ABS( W ).GT.ABS( PREW ) / TEN )

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


CVSweb interface <joel.bertrand@systella.fr>