Merge pull request #280 from ViralBShah/develop
Patch LAPACK XLASD4.f as discussed in JuliaLang/julia#2340
This commit is contained in:
		
						commit
						df554aebd2
					
				| 
						 | 
					@ -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