aboutsummaryrefslogtreecommitdiff
path: root/SRC/slasd4.f
diff options
context:
space:
mode:
authorjames <james@8a072113-8704-0410-8d35-dd094bca7971>2013-03-22 12:38:47 +0000
committerjames <james@8a072113-8704-0410-8d35-dd094bca7971>2013-03-22 12:38:47 +0000
commitcb5841c008968b9ce08ed6f92a629a0c89500038 (patch)
tree6ae936695597f09e0ee866bc429a6e20638ac9d0 /SRC/slasd4.f
parentfebdb51dbf1ea06b910b40ca60671631cca0c978 (diff)
Applied patch provided by Sergey Kuznetsov @ Intel, fixes bug where TAU2 can be uninitialized.
Diffstat (limited to 'SRC/slasd4.f')
-rw-r--r--SRC/slasd4.f6
1 files changed, 5 insertions, 1 deletions
diff --git a/SRC/slasd4.f b/SRC/slasd4.f
index 6bed144a..bf0f2cf3 100644
--- a/SRC/slasd4.f
+++ b/SRC/slasd4.f
@@ -223,6 +223,7 @@
*
EPS = SLAMCH( 'Epsilon' )
RHOINV = ONE / RHO
+ TAU2= ZERO
*
* The case I = N
*
@@ -275,6 +276,7 @@
ELSE
TAU2 = ( A+SQRT( A*A+FOUR*B*C ) ) / ( TWO*C )
END IF
+ TAU = TAU2 / ( D( N )+SQRT( D( N )*D( N )+TAU2 ) )
END IF
*
* It can be proved that
@@ -293,6 +295,8 @@
ELSE
TAU2 = ( A+SQRT( A*A+FOUR*B*C ) ) / ( TWO*C )
END IF
+ TAU = TAU2 / ( D( N )+SQRT( D( N )*D( N )+TAU2 ) )
+
*
* It can be proved that
* D(N)^2 < D(N)^2+TAU2 < SIGMA(N)^2 < D(N)^2+RHO/2
@@ -301,7 +305,7 @@
*
* The following TAU is to approximate SIGMA_n - D( N )
*
- TAU = TAU2 / ( D( N )+SQRT( D( N )*D( N )+TAU2 ) )
+* TAU = TAU2 / ( D( N )+SQRT( D( N )*D( N )+TAU2 ) )
*
SIGMA = D( N ) + TAU
DO 30 J = 1, N