Hi:
Jason Stratos Papadopoulos wrote:
>
> > Ernst Mayer and I exchanged many mailings about
> > using GF(p^2) when p = 2^61 - 1.
> > I thought he had implemented it, as part of a
> > mixed integer/complex FFT.
>
> As I remember, he *had* implemented it but the project is in limbo now for
> several reasons: first, the Alpha compiler wouldn't interleave the integer
> and floating point instructions, and also Ernst mentioned that
> non-power-of-two transforms in GF(p^2) had some subtle difficulty
> (something about the order that you applied the various radices being
> important). Last I heard he was embarking on implementing a mixed
> integer/complex FFT in assembly language, but that was quite a while ago
> and he likely has moved on.
>
As a new version of Glucas program, I am considering the possibility to
work with M31=2^p -1 instead of M61. In this case p^2-1 is not as smooth
as M61^2 - 1, but the use of this "small" GF(M31^2) could give us some
advantages.
The modular mul M31, for 64 bits integer should be fast enough to
"fight" against the very fast FPU units. The modular add/sub is perhaps
faster than Floating point one. So, a complex integer arithmetic could
be as fast as complex float, a nice feature for processors with
independent integer-mul-unit and float-mul-unit. If the compiler does a
good job interleaving float and integer code, we can gain about 15
bits_per_limb with few cost, and so we should gain about 50%
performance.
Regards
Guillermo.
_________________________________________________________________________
Unsubscribe & list info -- http://www.scruz.net/~luke/signup.htm
Mersenne Prime FAQ -- http://www.tasam.com/~lrwiman/FAQ-mers