10.12.2012 Views

Prime Numbers

Prime Numbers

Prime Numbers

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

488 Chapter 9 FAST ALGORITHMS FOR LARGE-INTEGER ARITHMETIC<br />

We close this FFT section by mentioning some new developments in regard<br />

to “gigaelement” FFTs that have now become possible at reasonable speed.<br />

For example, [Crandall et al. 2004] discusses theory and implementation for<br />

each of these gigaelement cases:<br />

Length-2 30 , one-dimensional FFT (effected via Algorithm 9.5.7);<br />

2 15 × 2 15 , two-dimensional FFT;<br />

2 10 × 2 10 × 2 10 , three-dimensional FFT.<br />

With such massive signal sizes come the difficult yet fascinating issues of<br />

fast matrix transposition, cache-friendly memory action, and vectorization<br />

of floating-point arithmetic. The bottom line as regards performance is that<br />

the one-dimensional, length-2 30 case takes less than one minute on a modern<br />

hardware cluster, if double-precision floating-point is used. (The two- and<br />

three-dimensional cases are about as fast; in fact the two-dimensional case is<br />

usually fastest, for technical reasons.)<br />

For computational number theory, these new results mean this: On a<br />

hardware cluster that fits into a closet, say, numbers of a billion decimal<br />

digits can be multiplied together in roughly a minute. Such observations<br />

depend on proper resolution of the following problem: The errors in such<br />

“monster” FFTs can be nontrivial. There are just so many terms being<br />

added/multiplied that one deviates from the truth, so to speak, in a kind<br />

of random walk. Interestingly, a length-D FFT can be modeled as a random<br />

walk in D dimensions, having O(ln D) steps. The paper [Crandall et al. 2004]<br />

thus reports quantitative bounds on FFT errors, such bounds having been<br />

pioneered by E. Mayer and C. Percival.<br />

9.5.3 Convolution theory<br />

Let x denote a signal (x0,x1,...,xD−1), where for example, the elements of<br />

x could be the digits of Definitions (9.1.1) or (9.1.2) (although we do not a<br />

priori insist that the elements be digits; the theory to follow is fairly general).<br />

We start by defining fundamental convolution operations on signals. In what<br />

follows, we assume that signals x, y have been assigned the same length (D)<br />

of elements. In all the summations of this next definition, indices i, j each run<br />

over the set {0,...,D− 1}:<br />

Definition 9.5.9. The cyclic convolution of two length-D signals x, y is a<br />

signal denoted z = x × y having D elements given by<br />

zn =<br />

<br />

xiyj,<br />

i+j≡n (mod D)<br />

while the negacyclic convolution of x, y is a signal v = x ×− y having D<br />

elements given by<br />

vn = <br />

xiyj − <br />

xiyj,<br />

i+j=n<br />

i+j=D+n

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!