Posted by Paul J. Hinker on July 08, 1997 at 14:17:02:
I have a question regarding the LAPACK GGBAK tests. I am
tuning LAPACK for windows NT for pentium processors. I am
getting a large error in the ZGGBAK tests. TEST_LAPACK/EIG/*chkgk.f
reads initial values for general matrices A, B, VL and VR where VL and
VR contain left and right eigenvectors for A and B. Then calls are made
to *GGBAL and *GGBAK to balance the matrices and form new eigenvectors.
Then the matrices E and F are formed by the following procedure
where the ' indicates a transformed matrix.
E = VL' A VR'
F = VL A' VR
E and F are compared element by element to find the maximum differance
Then a final error ratio is computed with:
RMAX = VMAX / ( EPS*MAX( ANORM, BNORM ) )
I have a case in the double complex test where the following two
complex number are found in corresponding elements of E and F.
(-846451377432000.,-834064341200000.) , (-846451377432001.,-834064341200001.)
Both the real and imaginary components are identical out to fourteen digits.
The reported ratio is 0.796D+04.
VMAX = 0.250000000000000
EPS = 0.222044604925031D-015
MAX(ANORM, BNORM) = 0.141421356237310D+012
It appears to me that the 80-bit floating point arithmetic
on the Pentiums is causing this error in the 15th significant
digit. Unfortunately, I'm not conversant enough with
the eigenvalue routines to make a mathematical argument
as to why I think this is a rounding error. Has anyone
seen this and handled it already?