Hi all,
At 07:08 PM 10/1/98 -0000, [EMAIL PROTECTED] wrote:
There is good reason to believe that George's implementation of
double-checking on Intel will be not as fast as the "primary" checking code.
It will be just as fast (well... a few microseconds slower)
Last I heard, he was planning to make the iteration logic
R <- 2*R ; R <- R^2 ; R <- R/4 ; R <- R-2
That is the concept. The implementation is this:
Shift the first value in the Lucas sequence by a random amount.
This shift amount represents the position of the "units" bit.
Square the value. The units bit has now moved - to double where
it used to be. Subtract two given the new position of the units bit.
Sorry if the above isn't real clear. The effect is that the
program need only do a little bit of extra bookkeepping. The
benefit is that the FFT is dealing with very different data.
I ran the idea past Richard Crandall and he saw no problems
(not that he did a detailed analysis).
I'm not very happy about the independence of this,
Although not as useful as a double-check check by a completely
different program, the FFT data is well-scrambled by shifting -
especially when you consider that the FFT deals with WEIGHTED
floating point values - not integers. A CPU error or program
bug should result in a mismatched residue.
As a special bonus, when two users accidentally test the same
exponent, we will have a useful double-check instead of a
wasted computation.
Best regards,
George