SGET53
Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
November 2006
November 2006
Purpose
SGET53 checks the generalized eigenvalues computed by SLAG2.
The basic test for an eigenvalue is:
| det( s A - w B ) |
RESULT = ---------------------------------------------------
ulp max( s norm(A), |w| norm(B) )*norm( s A - w B )
Two "safety checks" are performed:
(1) ulp*max( s*norm(A), |w|*norm(B) ) must be at least
safe_minimum. This insures that the test performed is
not essentially det(0*A + 0*B)=0.
(2) s*norm(A) + |w|*norm(B) must be less than 1/safe_minimum.
This insures that s*A - w*B will not overflow.
If these tests are not passed, then s and w are scaled and
tested anyway, if this is possible.
The basic test for an eigenvalue is:
| det( s A - w B ) |
RESULT = ---------------------------------------------------
ulp max( s norm(A), |w| norm(B) )*norm( s A - w B )
Two "safety checks" are performed:
(1) ulp*max( s*norm(A), |w|*norm(B) ) must be at least
safe_minimum. This insures that the test performed is
not essentially det(0*A + 0*B)=0.
(2) s*norm(A) + |w|*norm(B) must be less than 1/safe_minimum.
This insures that s*A - w*B will not overflow.
If these tests are not passed, then s and w are scaled and
tested anyway, if this is possible.
Arguments
A |
(input) REAL array, dimension (LDA, 2)
The 2x2 matrix A.
|
LDA |
(input) INTEGER
The leading dimension of A. It must be at least 2.
|
B |
(input) REAL array, dimension (LDB, N)
The 2x2 upper-triangular matrix B.
|
LDB |
(input) INTEGER
The leading dimension of B. It must be at least 2.
|
SCALE |
(input) REAL
The "scale factor" s in the formula s A - w B . It is
assumed to be non-negative. |
WR |
(input) REAL
The real part of the eigenvalue w in the formula
s A - w B . |
WI |
(input) REAL
The imaginary part of the eigenvalue w in the formula
s A - w B . |
RESULT |
(output) REAL
If INFO is 2 or less, the value computed by the test
described above. If INFO=3, this will just be 1/ulp. |
INFO |
(output) INTEGER
=0: The input data pass the "safety checks".
=1: s*norm(A) + |w|*norm(B) > 1/safe_minimum. =2: ulp*max( s*norm(A), |w|*norm(B) ) < safe_minimum =3: same as INFO=2, but s and w could not be scaled so as to compute the test. |