Merge pull request #1297 from jschueller/issue744

*drgev: relax eigenvalue consistency test
This commit is contained in:
langou
2026-07-13 06:31:33 -06:00
committed by GitHub
8 changed files with 236 additions and 63 deletions
+24 -6
View File
@@ -780,8 +780,14 @@
END IF
*
DO 120 J = 1, N
IF( ALPHA( J ).NE.ALPHA1( J ) .OR. BETA( J ).NE.
$ BETA1( J ) )RESULT( 5 ) = ULPINV
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( ALPHA( J ) - ALPHA1( J ) )
$ / MAX( ABS( ALPHA( J ) ), ABS( ALPHA1( J ) ),
$ SAFMIN ) )
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
120 CONTINUE
*
* Do test (6): Compute eigenvalues and left eigenvectors,
@@ -800,8 +806,14 @@
END IF
*
DO 130 J = 1, N
IF( ALPHA( J ).NE.ALPHA1( J ) .OR. BETA( J ).NE.
$ BETA1( J ) )RESULT( 6 ) = ULPINV
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( ALPHA( J ) - ALPHA1( J ) )
$ / MAX( ABS( ALPHA( J ) ), ABS( ALPHA1( J ) ),
$ SAFMIN ) )
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
130 CONTINUE
*
DO 150 J = 1, N
@@ -827,8 +839,14 @@
END IF
*
DO 160 J = 1, N
IF( ALPHA( J ).NE.ALPHA1( J ) .OR. BETA( J ).NE.
$ BETA1( J ) )RESULT( 7 ) = ULPINV
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( ALPHA( J ) - ALPHA1( J ) )
$ / MAX( ABS( ALPHA( J ) ), ABS( ALPHA1( J ) ),
$ SAFMIN ) )
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
160 CONTINUE
*
DO 180 J = 1, N
+24 -8
View File
@@ -788,8 +788,14 @@
END IF
*
DO 120 J = 1, N
IF( ALPHA( J ).NE.ALPHA1( J ) .OR. BETA( J ).NE.
$ BETA1( J ) ) RESULT( 5 ) = ULPINV
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( ALPHA( J ) - ALPHA1( J ) )
$ / MAX( ABS( ALPHA( J ) ), ABS( ALPHA1( J ) ),
$ SAFMIN ) )
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
120 CONTINUE
*
* Do the test (6): Compute eigenvalues and left eigenvectors,
@@ -809,10 +815,14 @@
*
DO 130 J = 1, N
IF( ALPHA( J ).NE.ALPHA1( J ) .OR.
$ BETA( J ).NE.BETA1( J ) ) THEN
RESULT( 6 ) = ULPINV
ENDIF
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( ALPHA( J ) - ALPHA1( J ) )
$ / MAX( ABS( ALPHA( J ) ), ABS( ALPHA1( J ) ),
$ SAFMIN ) )
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
130 CONTINUE
*
DO 150 J = 1, N
@@ -839,8 +849,14 @@
END IF
*
DO 160 J = 1, N
IF( ALPHA( J ).NE.ALPHA1( J ) .OR. BETA( J ).NE.
$ BETA1( J ) )RESULT( 7 ) = ULPINV
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( ALPHA( J ) - ALPHA1( J ) )
$ / MAX( ABS( ALPHA( J ) ), ABS( ALPHA1( J ) ),
$ SAFMIN ) )
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
160 CONTINUE
*
DO 180 J = 1, N
+36 -9
View File
@@ -778,9 +778,18 @@
END IF
*
DO 120 J = 1, N
IF( ALPHAR( J ).NE.ALPHR1( J ) .OR. ALPHAI( J ).NE.
$ ALPHI1( J ) .OR. BETA( J ).NE.BETA1( J ) )RESULT( 5 )
$ = ULPINV
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( ALPHAR( J ) - ALPHR1( J ) )
$ / MAX( ABS( ALPHAR( J ) ), ABS( ALPHR1( J ) ),
$ SAFMIN ) )
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( ALPHAI( J ) - ALPHI1( J ) )
$ / MAX( ABS( ALPHAI( J ) ), ABS( ALPHI1( J ) ),
$ SAFMIN ) )
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
120 CONTINUE
*
* Do the test (6): Compute eigenvalues and left eigenvectors,
@@ -799,9 +808,18 @@
END IF
*
DO 130 J = 1, N
IF( ALPHAR( J ).NE.ALPHR1( J ) .OR. ALPHAI( J ).NE.
$ ALPHI1( J ) .OR. BETA( J ).NE.BETA1( J ) )RESULT( 6 )
$ = ULPINV
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( ALPHAR( J ) - ALPHR1( J ) )
$ / MAX( ABS( ALPHAR( J ) ), ABS( ALPHR1( J ) ),
$ SAFMIN ) )
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( ALPHAI( J ) - ALPHI1( J ) )
$ / MAX( ABS( ALPHAI( J ) ), ABS( ALPHI1( J ) ),
$ SAFMIN ) )
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
130 CONTINUE
*
DO 150 J = 1, N
@@ -827,9 +845,18 @@
END IF
*
DO 160 J = 1, N
IF( ALPHAR( J ).NE.ALPHR1( J ) .OR. ALPHAI( J ).NE.
$ ALPHI1( J ) .OR. BETA( J ).NE.BETA1( J ) )RESULT( 7 )
$ = ULPINV
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( ALPHAR( J ) - ALPHR1( J ) )
$ / MAX( ABS( ALPHAR( J ) ), ABS( ALPHR1( J ) ),
$ SAFMIN ) )
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( ALPHAI( J ) - ALPHI1( J ) )
$ / MAX( ABS( ALPHAI( J ) ), ABS( ALPHI1( J ) ),
$ SAFMIN ) )
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
160 CONTINUE
*
DO 180 J = 1, N
+36 -9
View File
@@ -813,9 +813,18 @@
END IF
*
DO 120 J = 1, N
IF( ALPHAR( J ).NE.ALPHR1( J ) .OR. ALPHAI( J ).NE.
$ ALPHI1( J ) .OR. BETA( J ).NE.BETA1( J ) )RESULT( 5 )
$ = ULPINV
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( ALPHAR( J ) - ALPHR1( J ) )
$ / MAX( ABS( ALPHAR( J ) ), ABS( ALPHR1( J ) ),
$ SAFMIN ) )
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( ALPHAI( J ) - ALPHI1( J ) )
$ / MAX( ABS( ALPHAI( J ) ), ABS( ALPHI1( J ) ),
$ SAFMIN ) )
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
120 CONTINUE
*
* Do the test (6): Compute eigenvalues and left eigenvectors,
@@ -834,9 +843,18 @@
END IF
*
DO 130 J = 1, N
IF( ALPHAR( J ).NE.ALPHR1( J ) .OR. ALPHAI( J ).NE.
$ ALPHI1( J ) .OR. BETA( J ).NE.BETA1( J ) )RESULT( 6 )
$ = ULPINV
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( ALPHAR( J ) - ALPHR1( J ) )
$ / MAX( ABS( ALPHAR( J ) ), ABS( ALPHR1( J ) ),
$ SAFMIN ) )
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( ALPHAI( J ) - ALPHI1( J ) )
$ / MAX( ABS( ALPHAI( J ) ), ABS( ALPHI1( J ) ),
$ SAFMIN ) )
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
130 CONTINUE
*
DO 150 J = 1, N
@@ -862,9 +880,18 @@
END IF
*
DO 160 J = 1, N
IF( ALPHAR( J ).NE.ALPHR1( J ) .OR. ALPHAI( J ).NE.
$ ALPHI1( J ) .OR. BETA( J ).NE.BETA1( J ) )RESULT( 7 )
$ = ULPINV
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( ALPHAR( J ) - ALPHR1( J ) )
$ / MAX( ABS( ALPHAR( J ) ), ABS( ALPHR1( J ) ),
$ SAFMIN ) )
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( ALPHAI( J ) - ALPHI1( J ) )
$ / MAX( ABS( ALPHAI( J ) ), ABS( ALPHI1( J ) ),
$ SAFMIN ) )
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
160 CONTINUE
*
DO 180 J = 1, N
+36 -9
View File
@@ -778,9 +778,18 @@
END IF
*
DO 120 J = 1, N
IF( ALPHAR( J ).NE.ALPHR1( J ) .OR. ALPHAI( J ).NE.
$ ALPHI1( J ) .OR. BETA( J ).NE.BETA1( J ) )
$ RESULT( 5 ) = ULPINV
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( ALPHAR( J ) - ALPHR1( J ) )
$ / MAX( ABS( ALPHAR( J ) ), ABS( ALPHR1( J ) ),
$ SAFMIN ) )
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( ALPHAI( J ) - ALPHI1( J ) )
$ / MAX( ABS( ALPHAI( J ) ), ABS( ALPHI1( J ) ),
$ SAFMIN ) )
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
120 CONTINUE
*
* Do the test (6): Compute eigenvalues and left eigenvectors,
@@ -799,9 +808,18 @@
END IF
*
DO 130 J = 1, N
IF( ALPHAR( J ).NE.ALPHR1( J ) .OR. ALPHAI( J ).NE.
$ ALPHI1( J ) .OR. BETA( J ).NE.BETA1( J ) )
$ RESULT( 6 ) = ULPINV
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( ALPHAR( J ) - ALPHR1( J ) )
$ / MAX( ABS( ALPHAR( J ) ), ABS( ALPHR1( J ) ),
$ SAFMIN ) )
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( ALPHAI( J ) - ALPHI1( J ) )
$ / MAX( ABS( ALPHAI( J ) ), ABS( ALPHI1( J ) ),
$ SAFMIN ) )
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
130 CONTINUE
*
DO 150 J = 1, N
@@ -827,9 +845,18 @@
END IF
*
DO 160 J = 1, N
IF( ALPHAR( J ).NE.ALPHR1( J ) .OR. ALPHAI( J ).NE.
$ ALPHI1( J ) .OR. BETA( J ).NE.BETA1( J ) )
$ RESULT( 7 ) = ULPINV
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( ALPHAR( J ) - ALPHR1( J ) )
$ / MAX( ABS( ALPHAR( J ) ), ABS( ALPHR1( J ) ),
$ SAFMIN ) )
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( ALPHAI( J ) - ALPHI1( J ) )
$ / MAX( ABS( ALPHAI( J ) ), ABS( ALPHI1( J ) ),
$ SAFMIN ) )
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
160 CONTINUE
*
DO 180 J = 1, N
+32 -10
View File
@@ -786,10 +786,14 @@
END IF
*
DO 120 J = 1, N
IF( ALPHAR( J ).NE.ALPHR1( J ) .OR.
$ BETA( J ).NE. BETA1( J ) ) THEN
RESULT( 5 ) = ULPINV
END IF
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( ALPHAR( J ) - ALPHR1( J ) )
$ / MAX( ABS( ALPHAR( J ) ), ABS( ALPHR1( J ) ),
$ SAFMIN ) )
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
120 CONTINUE
*
* Do the test (6): Compute eigenvalues and left eigenvectors,
@@ -808,9 +812,18 @@
END IF
*
DO 130 J = 1, N
IF( ALPHAR( J ).NE.ALPHR1( J ) .OR. ALPHAI( J ).NE.
$ ALPHI1( J ) .OR. BETA( J ).NE.BETA1( J ) )
$ RESULT( 6 ) = ULPINV
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( ALPHAR( J ) - ALPHR1( J ) )
$ / MAX( ABS( ALPHAR( J ) ), ABS( ALPHR1( J ) ),
$ SAFMIN ) )
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( ALPHAI( J ) - ALPHI1( J ) )
$ / MAX( ABS( ALPHAI( J ) ), ABS( ALPHI1( J ) ),
$ SAFMIN ) )
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
130 CONTINUE
*
DO 150 J = 1, N
@@ -836,9 +849,18 @@
END IF
*
DO 160 J = 1, N
IF( ALPHAR( J ).NE.ALPHR1( J ) .OR. ALPHAI( J ).NE.
$ ALPHI1( J ) .OR. BETA( J ).NE.BETA1( J ) )
$ RESULT( 7 ) = ULPINV
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( ALPHAR( J ) - ALPHR1( J ) )
$ / MAX( ABS( ALPHAR( J ) ), ABS( ALPHR1( J ) ),
$ SAFMIN ) )
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( ALPHAI( J ) - ALPHI1( J ) )
$ / MAX( ABS( ALPHAI( J ) ), ABS( ALPHI1( J ) ),
$ SAFMIN ) )
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
160 CONTINUE
*
DO 180 J = 1, N
+24 -6
View File
@@ -780,8 +780,14 @@
END IF
*
DO 120 J = 1, N
IF( ALPHA( J ).NE.ALPHA1( J ) .OR. BETA( J ).NE.
$ BETA1( J ) )RESULT( 5 ) = ULPINV
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( ALPHA( J ) - ALPHA1( J ) )
$ / MAX( ABS( ALPHA( J ) ), ABS( ALPHA1( J ) ),
$ SAFMIN ) )
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
120 CONTINUE
*
* Do test (6): Compute eigenvalues and left eigenvectors,
@@ -800,8 +806,14 @@
END IF
*
DO 130 J = 1, N
IF( ALPHA( J ).NE.ALPHA1( J ) .OR. BETA( J ).NE.
$ BETA1( J ) )RESULT( 6 ) = ULPINV
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( ALPHA( J ) - ALPHA1( J ) )
$ / MAX( ABS( ALPHA( J ) ), ABS( ALPHA1( J ) ),
$ SAFMIN ) )
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
130 CONTINUE
*
DO 150 J = 1, N
@@ -827,8 +839,14 @@
END IF
*
DO 160 J = 1, N
IF( ALPHA( J ).NE.ALPHA1( J ) .OR. BETA( J ).NE.
$ BETA1( J ) )RESULT( 7 ) = ULPINV
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( ALPHA( J ) - ALPHA1( J ) )
$ / MAX( ABS( ALPHA( J ) ), ABS( ALPHA1( J ) ),
$ SAFMIN ) )
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
160 CONTINUE
*
DO 180 J = 1, N
+24 -6
View File
@@ -788,8 +788,14 @@
END IF
*
DO 120 J = 1, N
IF( ALPHA( J ).NE.ALPHA1( J ) .OR. BETA( J ).NE.
$ BETA1( J ) )RESULT( 5 ) = ULPINV
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( ALPHA( J ) - ALPHA1( J ) )
$ / MAX( ABS( ALPHA( J ) ), ABS( ALPHA1( J ) ),
$ SAFMIN ) )
RESULT( 5 ) = MAX( RESULT( 5 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
120 CONTINUE
*
* Do test (6): Compute eigenvalues and left eigenvectors,
@@ -808,8 +814,14 @@
END IF
*
DO 130 J = 1, N
IF( ALPHA( J ).NE.ALPHA1( J ) .OR. BETA( J ).NE.
$ BETA1( J ) )RESULT( 6 ) = ULPINV
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( ALPHA( J ) - ALPHA1( J ) )
$ / MAX( ABS( ALPHA( J ) ), ABS( ALPHA1( J ) ),
$ SAFMIN ) )
RESULT( 6 ) = MAX( RESULT( 6 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
130 CONTINUE
*
DO 150 J = 1, N
@@ -835,8 +847,14 @@
END IF
*
DO 160 J = 1, N
IF( ALPHA( J ).NE.ALPHA1( J ) .OR. BETA( J ).NE.
$ BETA1( J ) )RESULT( 7 ) = ULPINV
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( ALPHA( J ) - ALPHA1( J ) )
$ / MAX( ABS( ALPHA( J ) ), ABS( ALPHA1( J ) ),
$ SAFMIN ) )
RESULT( 7 ) = MAX( RESULT( 7 ),
$ ABS( BETA( J ) - BETA1( J ) )
$ / MAX( ABS( BETA( J ) ), ABS( BETA1( J ) ),
$ SAFMIN ) )
160 CONTINUE
*
DO 180 J = 1, N