DGET53
Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
November 2006
November 2006
Purpose
DGET53 checks the generalized eigenvalues computed by DLAG2.
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) DOUBLE PRECISION array, dimension (LDA, 2)
The 2x2 matrix A.
|
LDA |
(input) INTEGER
The leading dimension of A. It must be at least 2.
|
B |
(input) DOUBLE PRECISION 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) DOUBLE PRECISION
The "scale factor" s in the formula s A - w B . It is
assumed to be non-negative. |
WR |
(input) DOUBLE PRECISION
The real part of the eigenvalue w in the formula
s A - w B . |
WI |
(input) DOUBLE PRECISION
The imaginary part of the eigenvalue w in the formula
s A - w B . |
RESULT |
(output) DOUBLE PRECISION
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. |