From ae54ebc87caecbb3c4b59b865388c6958c2f683f Mon Sep 17 00:00:00 2001 From: Weslley S Pereira Date: Tue, 23 May 2023 18:03:00 -0600 Subject: [PATCH 1/2] Removes unused SMIN from bdsqr --- SRC/cbdsqr.f | 2 -- SRC/dbdsqr.f | 2 -- SRC/sbdsqr.f | 2 -- SRC/zbdsqr.f | 2 -- 4 files changed, 8 deletions(-) diff --git a/SRC/cbdsqr.f b/SRC/cbdsqr.f index 1d7c4e09d..f86784732 100644 --- a/SRC/cbdsqr.f +++ b/SRC/cbdsqr.f @@ -426,7 +426,6 @@ IF( TOL.LT.ZERO .AND. ABS( D( M ) ).LE.THRESH ) $ D( M ) = ZERO SMAX = ABS( D( M ) ) - SMIN = SMAX DO 70 LLL = 1, M - 1 LL = M - LLL ABSS = ABS( D( LL ) ) @@ -435,7 +434,6 @@ $ D( LL ) = ZERO IF( ABSE.LE.THRESH ) $ GO TO 80 - SMIN = MIN( SMIN, ABSS ) SMAX = MAX( SMAX, ABSS, ABSE ) 70 CONTINUE LL = 0 diff --git a/SRC/dbdsqr.f b/SRC/dbdsqr.f index c220a5875..7ce196907 100644 --- a/SRC/dbdsqr.f +++ b/SRC/dbdsqr.f @@ -451,7 +451,6 @@ IF( TOL.LT.ZERO .AND. ABS( D( M ) ).LE.THRESH ) $ D( M ) = ZERO SMAX = ABS( D( M ) ) - SMIN = SMAX DO 70 LLL = 1, M - 1 LL = M - LLL ABSS = ABS( D( LL ) ) @@ -460,7 +459,6 @@ $ D( LL ) = ZERO IF( ABSE.LE.THRESH ) $ GO TO 80 - SMIN = MIN( SMIN, ABSS ) SMAX = MAX( SMAX, ABSS, ABSE ) 70 CONTINUE LL = 0 diff --git a/SRC/sbdsqr.f b/SRC/sbdsqr.f index c798baaf5..a6c2200a9 100644 --- a/SRC/sbdsqr.f +++ b/SRC/sbdsqr.f @@ -450,7 +450,6 @@ IF( TOL.LT.ZERO .AND. ABS( D( M ) ).LE.THRESH ) $ D( M ) = ZERO SMAX = ABS( D( M ) ) - SMIN = SMAX DO 70 LLL = 1, M - 1 LL = M - LLL ABSS = ABS( D( LL ) ) @@ -459,7 +458,6 @@ $ D( LL ) = ZERO IF( ABSE.LE.THRESH ) $ GO TO 80 - SMIN = MIN( SMIN, ABSS ) SMAX = MAX( SMAX, ABSS, ABSE ) 70 CONTINUE LL = 0 diff --git a/SRC/zbdsqr.f b/SRC/zbdsqr.f index 2ad6142a7..fa22c522a 100644 --- a/SRC/zbdsqr.f +++ b/SRC/zbdsqr.f @@ -426,7 +426,6 @@ IF( TOL.LT.ZERO .AND. ABS( D( M ) ).LE.THRESH ) $ D( M ) = ZERO SMAX = ABS( D( M ) ) - SMIN = SMAX DO 70 LLL = 1, M - 1 LL = M - LLL ABSS = ABS( D( LL ) ) @@ -435,7 +434,6 @@ $ D( LL ) = ZERO IF( ABSE.LE.THRESH ) $ GO TO 80 - SMIN = MIN( SMIN, ABSS ) SMAX = MAX( SMAX, ABSS, ABSE ) 70 CONTINUE LL = 0 From 8b27cefdc97a508063884a751520b50b7f64bec2 Mon Sep 17 00:00:00 2001 From: Weslley S Pereira Date: Fri, 26 May 2023 08:46:04 -0600 Subject: [PATCH 2/2] Apply suggestions from @angsch --- SRC/cbdsqr.f | 14 +++++++------- SRC/dbdsqr.f | 14 +++++++------- SRC/sbdsqr.f | 14 +++++++------- SRC/zbdsqr.f | 14 +++++++------- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/SRC/cbdsqr.f b/SRC/cbdsqr.f index f86784732..40706644e 100644 --- a/SRC/cbdsqr.f +++ b/SRC/cbdsqr.f @@ -259,7 +259,7 @@ $ NM12, NM13, OLDLL, OLDM REAL ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU, $ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL, - $ SINR, SLL, SMAX, SMIN, SMINL, SMINOA, + $ SINR, SLL, SMAX, SMIN, SMINOA, $ SN, THRESH, TOL, TOLMUL, UNFL * .. * .. External Functions .. @@ -372,7 +372,7 @@ DO 30 I = 1, N - 1 SMAX = MAX( SMAX, ABS( E( I ) ) ) 30 CONTINUE - SMINL = ZERO + SMIN = ZERO IF( TOL.GE.ZERO ) THEN * * Relative accuracy desired @@ -515,14 +515,14 @@ * apply convergence criterion forward * MU = ABS( D( LL ) ) - SMINL = MU + SMIN = MU DO 100 LLL = LL, M - 1 IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN E( LLL ) = ZERO GO TO 60 END IF MU = ABS( D( LLL+1 ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) - SMINL = MIN( SMINL, MU ) + SMIN = MIN( SMIN, MU ) 100 CONTINUE END IF * @@ -543,14 +543,14 @@ * apply convergence criterion backward * MU = ABS( D( M ) ) - SMINL = MU + SMIN = MU DO 110 LLL = M - 1, LL, -1 IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN E( LLL ) = ZERO GO TO 60 END IF MU = ABS( D( LLL ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) - SMINL = MIN( SMINL, MU ) + SMIN = MIN( SMIN, MU ) 110 CONTINUE END IF END IF @@ -560,7 +560,7 @@ * Compute shift. First, test if shifting would ruin relative * accuracy, and if so set the shift to zero. * - IF( TOL.GE.ZERO .AND. N*TOL*( SMINL / SMAX ).LE. + IF( TOL.GE.ZERO .AND. N*TOL*( SMIN / SMAX ).LE. $ MAX( EPS, HNDRTH*TOL ) ) THEN * * Use a zero shift to avoid loss of relative accuracy diff --git a/SRC/dbdsqr.f b/SRC/dbdsqr.f index 7ce196907..bc697a007 100644 --- a/SRC/dbdsqr.f +++ b/SRC/dbdsqr.f @@ -278,7 +278,7 @@ $ MAXITDIVN, NM1, NM12, NM13, OLDLL, OLDM DOUBLE PRECISION ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU, $ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL, - $ SINR, SLL, SMAX, SMIN, SMINL, SMINOA, + $ SINR, SLL, SMAX, SMIN, SMINOA, $ SN, THRESH, TOL, TOLMUL, UNFL * .. * .. External Functions .. @@ -391,7 +391,7 @@ DO 30 I = 1, N - 1 SMAX = MAX( SMAX, ABS( E( I ) ) ) 30 CONTINUE - SMINL = ZERO + SMIN = ZERO IF( TOL.GE.ZERO ) THEN * * Relative accuracy desired @@ -540,14 +540,14 @@ * apply convergence criterion forward * MU = ABS( D( LL ) ) - SMINL = MU + SMIN = MU DO 100 LLL = LL, M - 1 IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN E( LLL ) = ZERO GO TO 60 END IF MU = ABS( D( LLL+1 ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) - SMINL = MIN( SMINL, MU ) + SMIN = MIN( SMIN, MU ) 100 CONTINUE END IF * @@ -568,14 +568,14 @@ * apply convergence criterion backward * MU = ABS( D( M ) ) - SMINL = MU + SMIN = MU DO 110 LLL = M - 1, LL, -1 IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN E( LLL ) = ZERO GO TO 60 END IF MU = ABS( D( LLL ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) - SMINL = MIN( SMINL, MU ) + SMIN = MIN( SMIN, MU ) 110 CONTINUE END IF END IF @@ -585,7 +585,7 @@ * Compute shift. First, test if shifting would ruin relative * accuracy, and if so set the shift to zero. * - IF( TOL.GE.ZERO .AND. N*TOL*( SMINL / SMAX ).LE. + IF( TOL.GE.ZERO .AND. N*TOL*( SMIN / SMAX ).LE. $ MAX( EPS, HNDRTH*TOL ) ) THEN * * Use a zero shift to avoid loss of relative accuracy diff --git a/SRC/sbdsqr.f b/SRC/sbdsqr.f index a6c2200a9..880f0607b 100644 --- a/SRC/sbdsqr.f +++ b/SRC/sbdsqr.f @@ -277,7 +277,7 @@ $ MAXITDIVN, NM1, NM12, NM13, OLDLL, OLDM REAL ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU, $ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL, - $ SINR, SLL, SMAX, SMIN, SMINL, SMINOA, + $ SINR, SLL, SMAX, SMIN, SMINOA, $ SN, THRESH, TOL, TOLMUL, UNFL * .. * .. External Functions .. @@ -390,7 +390,7 @@ DO 30 I = 1, N - 1 SMAX = MAX( SMAX, ABS( E( I ) ) ) 30 CONTINUE - SMINL = ZERO + SMIN = ZERO IF( TOL.GE.ZERO ) THEN * * Relative accuracy desired @@ -539,14 +539,14 @@ * apply convergence criterion forward * MU = ABS( D( LL ) ) - SMINL = MU + SMIN = MU DO 100 LLL = LL, M - 1 IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN E( LLL ) = ZERO GO TO 60 END IF MU = ABS( D( LLL+1 ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) - SMINL = MIN( SMINL, MU ) + SMIN = MIN( SMIN, MU ) 100 CONTINUE END IF * @@ -567,14 +567,14 @@ * apply convergence criterion backward * MU = ABS( D( M ) ) - SMINL = MU + SMIN = MU DO 110 LLL = M - 1, LL, -1 IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN E( LLL ) = ZERO GO TO 60 END IF MU = ABS( D( LLL ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) - SMINL = MIN( SMINL, MU ) + SMIN = MIN( SMIN, MU ) 110 CONTINUE END IF END IF @@ -584,7 +584,7 @@ * Compute shift. First, test if shifting would ruin relative * accuracy, and if so set the shift to zero. * - IF( TOL.GE.ZERO .AND. N*TOL*( SMINL / SMAX ).LE. + IF( TOL.GE.ZERO .AND. N*TOL*( SMIN / SMAX ).LE. $ MAX( EPS, HNDRTH*TOL ) ) THEN * * Use a zero shift to avoid loss of relative accuracy diff --git a/SRC/zbdsqr.f b/SRC/zbdsqr.f index fa22c522a..faedafc3c 100644 --- a/SRC/zbdsqr.f +++ b/SRC/zbdsqr.f @@ -259,7 +259,7 @@ $ NM12, NM13, OLDLL, OLDM DOUBLE PRECISION ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU, $ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL, - $ SINR, SLL, SMAX, SMIN, SMINL, SMINOA, + $ SINR, SLL, SMAX, SMIN, SMINOA, $ SN, THRESH, TOL, TOLMUL, UNFL * .. * .. External Functions .. @@ -372,7 +372,7 @@ DO 30 I = 1, N - 1 SMAX = MAX( SMAX, ABS( E( I ) ) ) 30 CONTINUE - SMINL = ZERO + SMIN = ZERO IF( TOL.GE.ZERO ) THEN * * Relative accuracy desired @@ -515,14 +515,14 @@ * apply convergence criterion forward * MU = ABS( D( LL ) ) - SMINL = MU + SMIN = MU DO 100 LLL = LL, M - 1 IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN E( LLL ) = ZERO GO TO 60 END IF MU = ABS( D( LLL+1 ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) - SMINL = MIN( SMINL, MU ) + SMIN = MIN( SMIN, MU ) 100 CONTINUE END IF * @@ -543,14 +543,14 @@ * apply convergence criterion backward * MU = ABS( D( M ) ) - SMINL = MU + SMIN = MU DO 110 LLL = M - 1, LL, -1 IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN E( LLL ) = ZERO GO TO 60 END IF MU = ABS( D( LLL ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) - SMINL = MIN( SMINL, MU ) + SMIN = MIN( SMIN, MU ) 110 CONTINUE END IF END IF @@ -560,7 +560,7 @@ * Compute shift. First, test if shifting would ruin relative * accuracy, and if so set the shift to zero. * - IF( TOL.GE.ZERO .AND. N*TOL*( SMINL / SMAX ).LE. + IF( TOL.GE.ZERO .AND. N*TOL*( SMIN / SMAX ).LE. $ MAX( EPS, HNDRTH*TOL ) ) THEN * * Use a zero shift to avoid loss of relative accuracy