Patch LAPACK XLASD4.f as discussed in JuliaLang/julia#2340
This commit is contained in:
parent
c92ae012a6
commit
eae6920f2d
|
@ -223,6 +223,7 @@
|
||||||
*
|
*
|
||||||
EPS = DLAMCH( 'Epsilon' )
|
EPS = DLAMCH( 'Epsilon' )
|
||||||
RHOINV = ONE / RHO
|
RHOINV = ONE / RHO
|
||||||
|
TAU2= ZERO
|
||||||
*
|
*
|
||||||
* The case I = N
|
* The case I = N
|
||||||
*
|
*
|
||||||
|
@ -275,6 +276,7 @@
|
||||||
ELSE
|
ELSE
|
||||||
TAU2 = ( A+SQRT( A*A+FOUR*B*C ) ) / ( TWO*C )
|
TAU2 = ( A+SQRT( A*A+FOUR*B*C ) ) / ( TWO*C )
|
||||||
END IF
|
END IF
|
||||||
|
TAU = TAU2 / ( D( N )+SQRT( D( N )*D( N )+TAU2 ) )
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
* It can be proved that
|
* It can be proved that
|
||||||
|
@ -293,6 +295,8 @@
|
||||||
ELSE
|
ELSE
|
||||||
TAU2 = ( A+SQRT( A*A+FOUR*B*C ) ) / ( TWO*C )
|
TAU2 = ( A+SQRT( A*A+FOUR*B*C ) ) / ( TWO*C )
|
||||||
END IF
|
END IF
|
||||||
|
TAU = TAU2 / ( D( N )+SQRT( D( N )*D( N )+TAU2 ) )
|
||||||
|
|
||||||
*
|
*
|
||||||
* It can be proved that
|
* It can be proved that
|
||||||
* D(N)^2 < D(N)^2+TAU2 < SIGMA(N)^2 < D(N)^2+RHO/2
|
* 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 )
|
* 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
|
SIGMA = D( N ) + TAU
|
||||||
DO 30 J = 1, N
|
DO 30 J = 1, N
|
||||||
|
|
|
@ -223,6 +223,7 @@
|
||||||
*
|
*
|
||||||
EPS = SLAMCH( 'Epsilon' )
|
EPS = SLAMCH( 'Epsilon' )
|
||||||
RHOINV = ONE / RHO
|
RHOINV = ONE / RHO
|
||||||
|
TAU2= ZERO
|
||||||
*
|
*
|
||||||
* The case I = N
|
* The case I = N
|
||||||
*
|
*
|
||||||
|
@ -275,6 +276,7 @@
|
||||||
ELSE
|
ELSE
|
||||||
TAU2 = ( A+SQRT( A*A+FOUR*B*C ) ) / ( TWO*C )
|
TAU2 = ( A+SQRT( A*A+FOUR*B*C ) ) / ( TWO*C )
|
||||||
END IF
|
END IF
|
||||||
|
TAU = TAU2 / ( D( N )+SQRT( D( N )*D( N )+TAU2 ) )
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
* It can be proved that
|
* It can be proved that
|
||||||
|
@ -293,6 +295,8 @@
|
||||||
ELSE
|
ELSE
|
||||||
TAU2 = ( A+SQRT( A*A+FOUR*B*C ) ) / ( TWO*C )
|
TAU2 = ( A+SQRT( A*A+FOUR*B*C ) ) / ( TWO*C )
|
||||||
END IF
|
END IF
|
||||||
|
TAU = TAU2 / ( D( N )+SQRT( D( N )*D( N )+TAU2 ) )
|
||||||
|
|
||||||
*
|
*
|
||||||
* It can be proved that
|
* It can be proved that
|
||||||
* D(N)^2 < D(N)^2+TAU2 < SIGMA(N)^2 < D(N)^2+RHO/2
|
* 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 )
|
* 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
|
SIGMA = D( N ) + TAU
|
||||||
DO 30 J = 1, N
|
DO 30 J = 1, N
|
||||||
|
|
Loading…
Reference in New Issue