diff options
Diffstat (limited to 'math/lapack/files/patch-r1136')
| -rw-r--r-- | math/lapack/files/patch-r1136 | 239 |
1 files changed, 0 insertions, 239 deletions
diff --git a/math/lapack/files/patch-r1136 b/math/lapack/files/patch-r1136 deleted file mode 100644 index d7cf8ba19fde..000000000000 --- a/math/lapack/files/patch-r1136 +++ /dev/null @@ -1,239 +0,0 @@ -Index: SRC/dlasq3.f -=================================================================== ---- SRC/dlasq3.f (revision 1135) -+++ SRC/dlasq3.f (revision 1136) -@@ -331,15 +331,15 @@ - * - 70 CONTINUE - * -- CALL DLASQ5( I0, N0, Z, PP, TAU, DMIN, DMIN1, DMIN2, DN, -- $ DN1, DN2, IEEE ) -+ CALL DLASQ5( I0, N0, Z, PP, TAU, SIGMA, DMIN, DMIN1, DMIN2, DN, -+ $ DN1, DN2, IEEE, EPS ) - * - NDIV = NDIV + ( N0-I0+2 ) - ITER = ITER + 1 - * - * Check status. - * -- IF( DMIN.GE.ZERO .AND. DMIN1.GT.ZERO ) THEN -+ IF( DMIN.GE.ZERO .AND. DMIN1.GE.ZERO ) THEN - * - * Success. - * -Index: SRC/dlasq5.f -=================================================================== ---- SRC/dlasq5.f (revision 1135) -+++ SRC/dlasq5.f (revision 1136) -@@ -18,13 +18,13 @@ - * Definition: - * =========== - * --* SUBROUTINE DLASQ5( I0, N0, Z, PP, TAU, DMIN, DMIN1, DMIN2, DN, --* DNM1, DNM2, IEEE ) -+* SUBROUTINE DLASQ5( I0, N0, Z, PP, TAU, SIGMA, DMIN, DMIN1, DMIN2, DN, -+* DNM1, DNM2, IEEE, EPS ) - * - * .. Scalar Arguments .. - * LOGICAL IEEE - * INTEGER I0, N0, PP --* DOUBLE PRECISION DMIN, DMIN1, DMIN2, DN, DNM1, DNM2, TAU -+* DOUBLE PRECISION DMIN, DMIN1, DMIN2, DN, DNM1, DNM2, TAU, SIGMA, EPS - * .. - * .. Array Arguments .. - * DOUBLE PRECISION Z( * ) -@@ -74,6 +74,12 @@ - *> This is the shift. - *> \endverbatim - *> -+*> \param[in] SIGMA -+*> \verbatim -+*> SIGMA is DOUBLE PRECISION -+*> This is the accumulated shift up to this step. -+*> \endverbatim -+*> - *> \param[out] DMIN - *> \verbatim - *> DMIN is DOUBLE PRECISION -@@ -116,6 +122,12 @@ - *> Flag for IEEE or non IEEE arithmetic. - *> \endverbatim - * -+*> \param[in] EPS -+*> \verbatim -+*> EPS is DOUBLE PRECISION -+*> This is the value of epsilon used. -+*> \endverbatim -+*> - * Authors: - * ======== - * -@@ -129,8 +141,8 @@ - *> \ingroup auxOTHERcomputational - * - * ===================================================================== -- SUBROUTINE DLASQ5( I0, N0, Z, PP, TAU, DMIN, DMIN1, DMIN2, DN, -- $ DNM1, DNM2, IEEE ) -+ SUBROUTINE DLASQ5( I0, N0, Z, PP, TAU, SIGMA, DMIN, DMIN1, DMIN2, -+ $ DN, DNM1, DNM2, IEEE, EPS ) - * - * -- LAPACK computational routine (version 3.4.0) -- - * -- LAPACK is a software package provided by Univ. of Tennessee, -- -@@ -140,7 +152,8 @@ - * .. Scalar Arguments .. - LOGICAL IEEE - INTEGER I0, N0, PP -- DOUBLE PRECISION DMIN, DMIN1, DMIN2, DN, DNM1, DNM2, TAU -+ DOUBLE PRECISION DMIN, DMIN1, DMIN2, DN, DNM1, DNM2, TAU, -+ $ SIGMA, EPS - * .. - * .. Array Arguments .. - DOUBLE PRECISION Z( * ) -@@ -149,12 +162,12 @@ - * ===================================================================== - * - * .. Parameter .. -- DOUBLE PRECISION ZERO -- PARAMETER ( ZERO = 0.0D0 ) -+ DOUBLE PRECISION ZERO, HALF -+ PARAMETER ( ZERO = 0.0D0, HALF = 0.5 ) - * .. - * .. Local Scalars .. - INTEGER J4, J4P2 -- DOUBLE PRECISION D, EMIN, TEMP -+ DOUBLE PRECISION D, EMIN, TEMP, DTHRESH - * .. - * .. Intrinsic Functions .. - INTRINSIC MIN -@@ -164,6 +177,9 @@ - IF( ( N0-I0-1 ).LE.0 ) - $ RETURN - * -+ DTHRESH = EPS*(SIGMA+TAU) -+ IF( TAU.LT.DTHRESH*HALF ) TAU = ZERO -+ IF( TAU.NE.ZERO ) THEN - J4 = 4*I0 + PP - 3 - EMIN = Z( J4+4 ) - D = Z( J4 ) - TAU -@@ -271,7 +287,120 @@ - DMIN = MIN( DMIN, DN ) - * - END IF --* -+ ELSE -+* This is the version that sets d's to zero if they are small enough -+ J4 = 4*I0 + PP - 3 -+ EMIN = Z( J4+4 ) -+ D = Z( J4 ) - TAU -+ DMIN = D -+ DMIN1 = -Z( J4 ) -+ IF( IEEE ) THEN -+* -+* Code for IEEE arithmetic. -+* -+ IF( PP.EQ.0 ) THEN -+ DO 50 J4 = 4*I0, 4*( N0-3 ), 4 -+ Z( J4-2 ) = D + Z( J4-1 ) -+ TEMP = Z( J4+1 ) / Z( J4-2 ) -+ D = D*TEMP - TAU -+ IF( D.LT.DTHRESH ) D = ZERO -+ DMIN = MIN( DMIN, D ) -+ Z( J4 ) = Z( J4-1 )*TEMP -+ EMIN = MIN( Z( J4 ), EMIN ) -+ 50 CONTINUE -+ ELSE -+ DO 60 J4 = 4*I0, 4*( N0-3 ), 4 -+ Z( J4-3 ) = D + Z( J4 ) -+ TEMP = Z( J4+2 ) / Z( J4-3 ) -+ D = D*TEMP - TAU -+ IF( D.LT.DTHRESH ) D = ZERO -+ DMIN = MIN( DMIN, D ) -+ Z( J4-1 ) = Z( J4 )*TEMP -+ EMIN = MIN( Z( J4-1 ), EMIN ) -+ 60 CONTINUE -+ END IF -+* -+* Unroll last two steps. -+* -+ DNM2 = D -+ DMIN2 = DMIN -+ J4 = 4*( N0-2 ) - PP -+ J4P2 = J4 + 2*PP - 1 -+ Z( J4-2 ) = DNM2 + Z( J4P2 ) -+ Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) ) -+ DNM1 = Z( J4P2+2 )*( DNM2 / Z( J4-2 ) ) - TAU -+ DMIN = MIN( DMIN, DNM1 ) -+* -+ DMIN1 = DMIN -+ J4 = J4 + 4 -+ J4P2 = J4 + 2*PP - 1 -+ Z( J4-2 ) = DNM1 + Z( J4P2 ) -+ Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) ) -+ DN = Z( J4P2+2 )*( DNM1 / Z( J4-2 ) ) - TAU -+ DMIN = MIN( DMIN, DN ) -+* -+ ELSE -+* -+* Code for non IEEE arithmetic. -+* -+ IF( PP.EQ.0 ) THEN -+ DO 70 J4 = 4*I0, 4*( N0-3 ), 4 -+ Z( J4-2 ) = D + Z( J4-1 ) -+ IF( D.LT.ZERO ) THEN -+ RETURN -+ ELSE -+ Z( J4 ) = Z( J4+1 )*( Z( J4-1 ) / Z( J4-2 ) ) -+ D = Z( J4+1 )*( D / Z( J4-2 ) ) - TAU -+ END IF -+ IF( D.LT.DTHRESH) D = ZERO -+ DMIN = MIN( DMIN, D ) -+ EMIN = MIN( EMIN, Z( J4 ) ) -+ 70 CONTINUE -+ ELSE -+ DO 80 J4 = 4*I0, 4*( N0-3 ), 4 -+ Z( J4-3 ) = D + Z( J4 ) -+ IF( D.LT.ZERO ) THEN -+ RETURN -+ ELSE -+ Z( J4-1 ) = Z( J4+2 )*( Z( J4 ) / Z( J4-3 ) ) -+ D = Z( J4+2 )*( D / Z( J4-3 ) ) - TAU -+ END IF -+ IF( D.LT.DTHRESH) D = ZERO -+ DMIN = MIN( DMIN, D ) -+ EMIN = MIN( EMIN, Z( J4-1 ) ) -+ 80 CONTINUE -+ END IF -+* -+* Unroll last two steps. -+* -+ DNM2 = D -+ DMIN2 = DMIN -+ J4 = 4*( N0-2 ) - PP -+ J4P2 = J4 + 2*PP - 1 -+ Z( J4-2 ) = DNM2 + Z( J4P2 ) -+ IF( DNM2.LT.ZERO ) THEN -+ RETURN -+ ELSE -+ Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) ) -+ DNM1 = Z( J4P2+2 )*( DNM2 / Z( J4-2 ) ) - TAU -+ END IF -+ DMIN = MIN( DMIN, DNM1 ) -+* -+ DMIN1 = DMIN -+ J4 = J4 + 4 -+ J4P2 = J4 + 2*PP - 1 -+ Z( J4-2 ) = DNM1 + Z( J4P2 ) -+ IF( DNM1.LT.ZERO ) THEN -+ RETURN -+ ELSE -+ Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) ) -+ DN = Z( J4P2+2 )*( DNM1 / Z( J4-2 ) ) - TAU -+ END IF -+ DMIN = MIN( DMIN, DN ) -+* -+ END IF -+ END IF -+* - Z( J4+2 ) = DN - Z( 4*N0-PP ) = EMIN - RETURN |
