Merge pull request #4068 from martin-frbg/lapack832

Remove unused variable SMIN from ?BDSQR (Reference-LAPACK PR 832)
This commit is contained in:
Martin Kroeker 2023-05-31 14:08:17 +02:00 committed by GitHub
commit ef80dbfdb3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 28 additions and 36 deletions

View File

@ -259,7 +259,7 @@
$ NM12, NM13, OLDLL, OLDM $ NM12, NM13, OLDLL, OLDM
REAL ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU, REAL ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU,
$ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL, $ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL,
$ SINR, SLL, SMAX, SMIN, SMINL, SMINOA, $ SINR, SLL, SMAX, SMIN, SMINOA,
$ SN, THRESH, TOL, TOLMUL, UNFL $ SN, THRESH, TOL, TOLMUL, UNFL
* .. * ..
* .. External Functions .. * .. External Functions ..
@ -372,7 +372,7 @@
DO 30 I = 1, N - 1 DO 30 I = 1, N - 1
SMAX = MAX( SMAX, ABS( E( I ) ) ) SMAX = MAX( SMAX, ABS( E( I ) ) )
30 CONTINUE 30 CONTINUE
SMINL = ZERO SMIN = ZERO
IF( TOL.GE.ZERO ) THEN IF( TOL.GE.ZERO ) THEN
* *
* Relative accuracy desired * Relative accuracy desired
@ -426,7 +426,6 @@
IF( TOL.LT.ZERO .AND. ABS( D( M ) ).LE.THRESH ) IF( TOL.LT.ZERO .AND. ABS( D( M ) ).LE.THRESH )
$ D( M ) = ZERO $ D( M ) = ZERO
SMAX = ABS( D( M ) ) SMAX = ABS( D( M ) )
SMIN = SMAX
DO 70 LLL = 1, M - 1 DO 70 LLL = 1, M - 1
LL = M - LLL LL = M - LLL
ABSS = ABS( D( LL ) ) ABSS = ABS( D( LL ) )
@ -435,7 +434,6 @@
$ D( LL ) = ZERO $ D( LL ) = ZERO
IF( ABSE.LE.THRESH ) IF( ABSE.LE.THRESH )
$ GO TO 80 $ GO TO 80
SMIN = MIN( SMIN, ABSS )
SMAX = MAX( SMAX, ABSS, ABSE ) SMAX = MAX( SMAX, ABSS, ABSE )
70 CONTINUE 70 CONTINUE
LL = 0 LL = 0
@ -517,14 +515,14 @@
* apply convergence criterion forward * apply convergence criterion forward
* *
MU = ABS( D( LL ) ) MU = ABS( D( LL ) )
SMINL = MU SMIN = MU
DO 100 LLL = LL, M - 1 DO 100 LLL = LL, M - 1
IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN
E( LLL ) = ZERO E( LLL ) = ZERO
GO TO 60 GO TO 60
END IF END IF
MU = ABS( D( LLL+1 ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) MU = ABS( D( LLL+1 ) )*( MU / ( MU+ABS( E( LLL ) ) ) )
SMINL = MIN( SMINL, MU ) SMIN = MIN( SMIN, MU )
100 CONTINUE 100 CONTINUE
END IF END IF
* *
@ -545,14 +543,14 @@
* apply convergence criterion backward * apply convergence criterion backward
* *
MU = ABS( D( M ) ) MU = ABS( D( M ) )
SMINL = MU SMIN = MU
DO 110 LLL = M - 1, LL, -1 DO 110 LLL = M - 1, LL, -1
IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN
E( LLL ) = ZERO E( LLL ) = ZERO
GO TO 60 GO TO 60
END IF END IF
MU = ABS( D( LLL ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) MU = ABS( D( LLL ) )*( MU / ( MU+ABS( E( LLL ) ) ) )
SMINL = MIN( SMINL, MU ) SMIN = MIN( SMIN, MU )
110 CONTINUE 110 CONTINUE
END IF END IF
END IF END IF
@ -562,7 +560,7 @@
* Compute shift. First, test if shifting would ruin relative * Compute shift. First, test if shifting would ruin relative
* accuracy, and if so set the shift to zero. * 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 $ MAX( EPS, HNDRTH*TOL ) ) THEN
* *
* Use a zero shift to avoid loss of relative accuracy * Use a zero shift to avoid loss of relative accuracy

View File

@ -278,7 +278,7 @@
$ MAXITDIVN, NM1, NM12, NM13, OLDLL, OLDM $ MAXITDIVN, NM1, NM12, NM13, OLDLL, OLDM
DOUBLE PRECISION ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU, DOUBLE PRECISION ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU,
$ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL, $ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL,
$ SINR, SLL, SMAX, SMIN, SMINL, SMINOA, $ SINR, SLL, SMAX, SMIN, SMINOA,
$ SN, THRESH, TOL, TOLMUL, UNFL $ SN, THRESH, TOL, TOLMUL, UNFL
* .. * ..
* .. External Functions .. * .. External Functions ..
@ -391,7 +391,7 @@
DO 30 I = 1, N - 1 DO 30 I = 1, N - 1
SMAX = MAX( SMAX, ABS( E( I ) ) ) SMAX = MAX( SMAX, ABS( E( I ) ) )
30 CONTINUE 30 CONTINUE
SMINL = ZERO SMIN = ZERO
IF( TOL.GE.ZERO ) THEN IF( TOL.GE.ZERO ) THEN
* *
* Relative accuracy desired * Relative accuracy desired
@ -451,7 +451,6 @@
IF( TOL.LT.ZERO .AND. ABS( D( M ) ).LE.THRESH ) IF( TOL.LT.ZERO .AND. ABS( D( M ) ).LE.THRESH )
$ D( M ) = ZERO $ D( M ) = ZERO
SMAX = ABS( D( M ) ) SMAX = ABS( D( M ) )
SMIN = SMAX
DO 70 LLL = 1, M - 1 DO 70 LLL = 1, M - 1
LL = M - LLL LL = M - LLL
ABSS = ABS( D( LL ) ) ABSS = ABS( D( LL ) )
@ -460,7 +459,6 @@
$ D( LL ) = ZERO $ D( LL ) = ZERO
IF( ABSE.LE.THRESH ) IF( ABSE.LE.THRESH )
$ GO TO 80 $ GO TO 80
SMIN = MIN( SMIN, ABSS )
SMAX = MAX( SMAX, ABSS, ABSE ) SMAX = MAX( SMAX, ABSS, ABSE )
70 CONTINUE 70 CONTINUE
LL = 0 LL = 0
@ -542,14 +540,14 @@
* apply convergence criterion forward * apply convergence criterion forward
* *
MU = ABS( D( LL ) ) MU = ABS( D( LL ) )
SMINL = MU SMIN = MU
DO 100 LLL = LL, M - 1 DO 100 LLL = LL, M - 1
IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN
E( LLL ) = ZERO E( LLL ) = ZERO
GO TO 60 GO TO 60
END IF END IF
MU = ABS( D( LLL+1 ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) MU = ABS( D( LLL+1 ) )*( MU / ( MU+ABS( E( LLL ) ) ) )
SMINL = MIN( SMINL, MU ) SMIN = MIN( SMIN, MU )
100 CONTINUE 100 CONTINUE
END IF END IF
* *
@ -570,14 +568,14 @@
* apply convergence criterion backward * apply convergence criterion backward
* *
MU = ABS( D( M ) ) MU = ABS( D( M ) )
SMINL = MU SMIN = MU
DO 110 LLL = M - 1, LL, -1 DO 110 LLL = M - 1, LL, -1
IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN
E( LLL ) = ZERO E( LLL ) = ZERO
GO TO 60 GO TO 60
END IF END IF
MU = ABS( D( LLL ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) MU = ABS( D( LLL ) )*( MU / ( MU+ABS( E( LLL ) ) ) )
SMINL = MIN( SMINL, MU ) SMIN = MIN( SMIN, MU )
110 CONTINUE 110 CONTINUE
END IF END IF
END IF END IF
@ -587,7 +585,7 @@
* Compute shift. First, test if shifting would ruin relative * Compute shift. First, test if shifting would ruin relative
* accuracy, and if so set the shift to zero. * 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 $ MAX( EPS, HNDRTH*TOL ) ) THEN
* *
* Use a zero shift to avoid loss of relative accuracy * Use a zero shift to avoid loss of relative accuracy

View File

@ -277,7 +277,7 @@
$ MAXITDIVN, NM1, NM12, NM13, OLDLL, OLDM $ MAXITDIVN, NM1, NM12, NM13, OLDLL, OLDM
REAL ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU, REAL ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU,
$ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL, $ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL,
$ SINR, SLL, SMAX, SMIN, SMINL, SMINOA, $ SINR, SLL, SMAX, SMIN, SMINOA,
$ SN, THRESH, TOL, TOLMUL, UNFL $ SN, THRESH, TOL, TOLMUL, UNFL
* .. * ..
* .. External Functions .. * .. External Functions ..
@ -390,7 +390,7 @@
DO 30 I = 1, N - 1 DO 30 I = 1, N - 1
SMAX = MAX( SMAX, ABS( E( I ) ) ) SMAX = MAX( SMAX, ABS( E( I ) ) )
30 CONTINUE 30 CONTINUE
SMINL = ZERO SMIN = ZERO
IF( TOL.GE.ZERO ) THEN IF( TOL.GE.ZERO ) THEN
* *
* Relative accuracy desired * Relative accuracy desired
@ -450,7 +450,6 @@
IF( TOL.LT.ZERO .AND. ABS( D( M ) ).LE.THRESH ) IF( TOL.LT.ZERO .AND. ABS( D( M ) ).LE.THRESH )
$ D( M ) = ZERO $ D( M ) = ZERO
SMAX = ABS( D( M ) ) SMAX = ABS( D( M ) )
SMIN = SMAX
DO 70 LLL = 1, M - 1 DO 70 LLL = 1, M - 1
LL = M - LLL LL = M - LLL
ABSS = ABS( D( LL ) ) ABSS = ABS( D( LL ) )
@ -459,7 +458,6 @@
$ D( LL ) = ZERO $ D( LL ) = ZERO
IF( ABSE.LE.THRESH ) IF( ABSE.LE.THRESH )
$ GO TO 80 $ GO TO 80
SMIN = MIN( SMIN, ABSS )
SMAX = MAX( SMAX, ABSS, ABSE ) SMAX = MAX( SMAX, ABSS, ABSE )
70 CONTINUE 70 CONTINUE
LL = 0 LL = 0
@ -541,14 +539,14 @@
* apply convergence criterion forward * apply convergence criterion forward
* *
MU = ABS( D( LL ) ) MU = ABS( D( LL ) )
SMINL = MU SMIN = MU
DO 100 LLL = LL, M - 1 DO 100 LLL = LL, M - 1
IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN
E( LLL ) = ZERO E( LLL ) = ZERO
GO TO 60 GO TO 60
END IF END IF
MU = ABS( D( LLL+1 ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) MU = ABS( D( LLL+1 ) )*( MU / ( MU+ABS( E( LLL ) ) ) )
SMINL = MIN( SMINL, MU ) SMIN = MIN( SMIN, MU )
100 CONTINUE 100 CONTINUE
END IF END IF
* *
@ -569,14 +567,14 @@
* apply convergence criterion backward * apply convergence criterion backward
* *
MU = ABS( D( M ) ) MU = ABS( D( M ) )
SMINL = MU SMIN = MU
DO 110 LLL = M - 1, LL, -1 DO 110 LLL = M - 1, LL, -1
IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN
E( LLL ) = ZERO E( LLL ) = ZERO
GO TO 60 GO TO 60
END IF END IF
MU = ABS( D( LLL ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) MU = ABS( D( LLL ) )*( MU / ( MU+ABS( E( LLL ) ) ) )
SMINL = MIN( SMINL, MU ) SMIN = MIN( SMIN, MU )
110 CONTINUE 110 CONTINUE
END IF END IF
END IF END IF
@ -586,7 +584,7 @@
* Compute shift. First, test if shifting would ruin relative * Compute shift. First, test if shifting would ruin relative
* accuracy, and if so set the shift to zero. * 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 $ MAX( EPS, HNDRTH*TOL ) ) THEN
* *
* Use a zero shift to avoid loss of relative accuracy * Use a zero shift to avoid loss of relative accuracy

View File

@ -259,7 +259,7 @@
$ NM12, NM13, OLDLL, OLDM $ NM12, NM13, OLDLL, OLDM
DOUBLE PRECISION ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU, DOUBLE PRECISION ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU,
$ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL, $ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL,
$ SINR, SLL, SMAX, SMIN, SMINL, SMINOA, $ SINR, SLL, SMAX, SMIN, SMINOA,
$ SN, THRESH, TOL, TOLMUL, UNFL $ SN, THRESH, TOL, TOLMUL, UNFL
* .. * ..
* .. External Functions .. * .. External Functions ..
@ -372,7 +372,7 @@
DO 30 I = 1, N - 1 DO 30 I = 1, N - 1
SMAX = MAX( SMAX, ABS( E( I ) ) ) SMAX = MAX( SMAX, ABS( E( I ) ) )
30 CONTINUE 30 CONTINUE
SMINL = ZERO SMIN = ZERO
IF( TOL.GE.ZERO ) THEN IF( TOL.GE.ZERO ) THEN
* *
* Relative accuracy desired * Relative accuracy desired
@ -426,7 +426,6 @@
IF( TOL.LT.ZERO .AND. ABS( D( M ) ).LE.THRESH ) IF( TOL.LT.ZERO .AND. ABS( D( M ) ).LE.THRESH )
$ D( M ) = ZERO $ D( M ) = ZERO
SMAX = ABS( D( M ) ) SMAX = ABS( D( M ) )
SMIN = SMAX
DO 70 LLL = 1, M - 1 DO 70 LLL = 1, M - 1
LL = M - LLL LL = M - LLL
ABSS = ABS( D( LL ) ) ABSS = ABS( D( LL ) )
@ -435,7 +434,6 @@
$ D( LL ) = ZERO $ D( LL ) = ZERO
IF( ABSE.LE.THRESH ) IF( ABSE.LE.THRESH )
$ GO TO 80 $ GO TO 80
SMIN = MIN( SMIN, ABSS )
SMAX = MAX( SMAX, ABSS, ABSE ) SMAX = MAX( SMAX, ABSS, ABSE )
70 CONTINUE 70 CONTINUE
LL = 0 LL = 0
@ -517,14 +515,14 @@
* apply convergence criterion forward * apply convergence criterion forward
* *
MU = ABS( D( LL ) ) MU = ABS( D( LL ) )
SMINL = MU SMIN = MU
DO 100 LLL = LL, M - 1 DO 100 LLL = LL, M - 1
IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN
E( LLL ) = ZERO E( LLL ) = ZERO
GO TO 60 GO TO 60
END IF END IF
MU = ABS( D( LLL+1 ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) MU = ABS( D( LLL+1 ) )*( MU / ( MU+ABS( E( LLL ) ) ) )
SMINL = MIN( SMINL, MU ) SMIN = MIN( SMIN, MU )
100 CONTINUE 100 CONTINUE
END IF END IF
* *
@ -545,14 +543,14 @@
* apply convergence criterion backward * apply convergence criterion backward
* *
MU = ABS( D( M ) ) MU = ABS( D( M ) )
SMINL = MU SMIN = MU
DO 110 LLL = M - 1, LL, -1 DO 110 LLL = M - 1, LL, -1
IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN
E( LLL ) = ZERO E( LLL ) = ZERO
GO TO 60 GO TO 60
END IF END IF
MU = ABS( D( LLL ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) MU = ABS( D( LLL ) )*( MU / ( MU+ABS( E( LLL ) ) ) )
SMINL = MIN( SMINL, MU ) SMIN = MIN( SMIN, MU )
110 CONTINUE 110 CONTINUE
END IF END IF
END IF END IF
@ -562,7 +560,7 @@
* Compute shift. First, test if shifting would ruin relative * Compute shift. First, test if shifting would ruin relative
* accuracy, and if so set the shift to zero. * 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 $ MAX( EPS, HNDRTH*TOL ) ) THEN
* *
* Use a zero shift to avoid loss of relative accuracy * Use a zero shift to avoid loss of relative accuracy