Use normwise criterion for INF eigenvalues in QZ (Reference-LAPACK PR698)
This commit is contained in:
parent
1714d640f1
commit
eea1636380
|
@ -523,9 +523,7 @@
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
IF( ABS( T( ILAST, ILAST ) ).LE.MAX( SAFMIN, ULP*(
|
IF( ABS( T( ILAST, ILAST ) ).LE.BTOL ) THEN
|
||||||
$ ABS( T( ILAST - 1, ILAST ) ) + ABS( T( ILAST-1, ILAST-1 )
|
|
||||||
$ ) ) ) ) THEN
|
|
||||||
T( ILAST, ILAST ) = CZERO
|
T( ILAST, ILAST ) = CZERO
|
||||||
GO TO 50
|
GO TO 50
|
||||||
END IF
|
END IF
|
||||||
|
@ -551,10 +549,7 @@
|
||||||
*
|
*
|
||||||
* Test 2: for T(j,j)=0
|
* Test 2: for T(j,j)=0
|
||||||
*
|
*
|
||||||
TEMP = ABS ( T( J, J + 1 ) )
|
IF( ABS( T( J, J ) ).LT.BTOL ) THEN
|
||||||
IF ( J .GT. ILO )
|
|
||||||
$ TEMP = TEMP + ABS ( T( J - 1, J ) )
|
|
||||||
IF( ABS( T( J, J ) ).LT.MAX( SAFMIN,ULP*TEMP ) ) THEN
|
|
||||||
T( J, J ) = CZERO
|
T( J, J ) = CZERO
|
||||||
*
|
*
|
||||||
* Test 1a: Check for 2 consecutive small subdiagonals in A
|
* Test 1a: Check for 2 consecutive small subdiagonals in A
|
||||||
|
|
|
@ -536,9 +536,7 @@
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
IF( ABS( T( ILAST, ILAST ) ).LE.MAX( SAFMIN, ULP*(
|
IF( ABS( T( ILAST, ILAST ) ).LE.BTOL ) THEN
|
||||||
$ ABS( T( ILAST - 1, ILAST ) ) + ABS( T( ILAST-1, ILAST-1 )
|
|
||||||
$ ) ) ) ) THEN
|
|
||||||
T( ILAST, ILAST ) = ZERO
|
T( ILAST, ILAST ) = ZERO
|
||||||
GO TO 70
|
GO TO 70
|
||||||
END IF
|
END IF
|
||||||
|
@ -564,10 +562,7 @@
|
||||||
*
|
*
|
||||||
* Test 2: for T(j,j)=0
|
* Test 2: for T(j,j)=0
|
||||||
*
|
*
|
||||||
TEMP = ABS ( T( J, J + 1 ) )
|
IF( ABS( T( J, J ) ).LT.BTOL ) THEN
|
||||||
IF ( J .GT. ILO )
|
|
||||||
$ TEMP = TEMP + ABS ( T( J - 1, J ) )
|
|
||||||
IF( ABS( T( J, J ) ).LT.MAX( SAFMIN,ULP*TEMP ) ) THEN
|
|
||||||
T( J, J ) = ZERO
|
T( J, J ) = ZERO
|
||||||
*
|
*
|
||||||
* Test 1a: Check for 2 consecutive small subdiagonals in A
|
* Test 1a: Check for 2 consecutive small subdiagonals in A
|
||||||
|
|
|
@ -536,9 +536,7 @@
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
IF( ABS( T( ILAST, ILAST ) ).LE.MAX( SAFMIN, ULP*(
|
IF( ABS( T( ILAST, ILAST ) ).LE.BTOL ) THEN
|
||||||
$ ABS( T( ILAST - 1, ILAST ) ) + ABS( T( ILAST-1, ILAST-1 )
|
|
||||||
$ ) ) ) ) THEN
|
|
||||||
T( ILAST, ILAST ) = ZERO
|
T( ILAST, ILAST ) = ZERO
|
||||||
GO TO 70
|
GO TO 70
|
||||||
END IF
|
END IF
|
||||||
|
@ -564,10 +562,7 @@
|
||||||
*
|
*
|
||||||
* Test 2: for T(j,j)=0
|
* Test 2: for T(j,j)=0
|
||||||
*
|
*
|
||||||
TEMP = ABS ( T( J, J + 1 ) )
|
IF( ABS( T( J, J ) ).LT.BTOL ) THEN
|
||||||
IF ( J .GT. ILO )
|
|
||||||
$ TEMP = TEMP + ABS ( T( J - 1, J ) )
|
|
||||||
IF( ABS( T( J, J ) ).LT.MAX( SAFMIN,ULP*TEMP ) ) THEN
|
|
||||||
T( J, J ) = ZERO
|
T( J, J ) = ZERO
|
||||||
*
|
*
|
||||||
* Test 1a: Check for 2 consecutive small subdiagonals in A
|
* Test 1a: Check for 2 consecutive small subdiagonals in A
|
||||||
|
|
|
@ -524,9 +524,7 @@
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
*
|
*
|
||||||
IF( ABS( T( ILAST, ILAST ) ).LE.MAX( SAFMIN, ULP*(
|
IF( ABS( T( ILAST, ILAST ) ).LE.BTOL ) THEN
|
||||||
$ ABS( T( ILAST - 1, ILAST ) ) + ABS( T( ILAST-1, ILAST-1 )
|
|
||||||
$ ) ) ) ) THEN
|
|
||||||
T( ILAST, ILAST ) = CZERO
|
T( ILAST, ILAST ) = CZERO
|
||||||
GO TO 50
|
GO TO 50
|
||||||
END IF
|
END IF
|
||||||
|
@ -552,10 +550,7 @@
|
||||||
*
|
*
|
||||||
* Test 2: for T(j,j)=0
|
* Test 2: for T(j,j)=0
|
||||||
*
|
*
|
||||||
TEMP = ABS ( T( J, J + 1 ) )
|
IF( ABS( T( J, J ) ).LT.BTOL ) THEN
|
||||||
IF ( J .GT. ILO )
|
|
||||||
$ TEMP = TEMP + ABS ( T( J - 1, J ) )
|
|
||||||
IF( ABS( T( J, J ) ).LT.MAX( SAFMIN,ULP*TEMP ) ) THEN
|
|
||||||
T( J, J ) = CZERO
|
T( J, J ) = CZERO
|
||||||
*
|
*
|
||||||
* Test 1a: Check for 2 consecutive small subdiagonals in A
|
* Test 1a: Check for 2 consecutive small subdiagonals in A
|
||||||
|
|
Loading…
Reference in New Issue