-
Notifications
You must be signed in to change notification settings - Fork 3
More about eigenvalue_offset
As mentioned here,
the variable eigenvalue_offset should be set properly.
Someone might think use of very large eigenvalue_offset always works fine and
Gershgorin theorem calculation is not necessary.
This is mathematically correct but numerically wrong.
Consider a matrix whose maximum eigenvalue is 1.23456789.
If we set eigenvalue_offset = 1000000, Lambda Lanczos calculates
the eigenvalue as 1000001.23456789 mathematically. But numerically,
its lower digits are ignored due to the limitation of floating-point representation.
So the calculated eigenvalue will be something like 1000001.23456 in 12 digits of precision case.
Finally we get the re-shifted result as 1.23456, having only 6 digits precision, even though
the calculation have been performed with 12 digits of precision.
The eigenvalue_offset should be set AS SMALL AS POSSIBLE for precise calculation.
If you faced a problem that desired precision weren't achieved, the eigenvalue_offset might be causing trouble.