Luke Welsh wrote:
>What about corruption of any of the pre-computed arrays?
George Woltman wrote:
>Yes, if the first weight value was NaN, then that would corrupt the entire
>FFT data array. Of course, this generates an ILLEGAL SUMOUT on
>the next iteration, but if this single corruption happened during the
>last iteration then a false positive would have been generated.
Luke, see the discussion about this on the Mersenne Forum:
http://www.mersenneforum.org/viewtopic.php?t=696&postdays=0&postorder=asc&start=0
I believe it's more likely that the small array of DWT weights
got zeroed at some point during the run, and stayed that way -
that would cause the entire residue vector to go to zero, but
without triggering a SUMOUT error (George conformed to me that
the SUMOUT checksum is calculated on the raw inverse FFT outputs,
i.e. before the multiple by the inverse DWT weights and rounding
occurs) or a RO error warning, and there would be no NaNs involved,
i.e. this could happen on any iteration (not just the last one,
as in George's proposed NaN scenario) without raising any alarm
flags. And if George's code (like mine) does the subtract-2 at
the same time it's doing the IDWT muls and rounding, the -2 would
get multipled by the same corrupted-to-zero DWT weight, hence we'd
get all zeros for all subsequent iterations. George is adding code
as we speak to guard against this scenario occurring in the future.
-Ernst