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.

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

standard DFT (9.20) for root g = e −2πi/D ; in the latter case we have the<br />

uniform scenario, ωj = j. The remarkable development—already a decade old<br />

but as we say emerging in importance—is that such nonuniform FFTs can be<br />

calculated to absolute precision ɛ in<br />

O<br />

<br />

D ln D + D ln 1<br />

<br />

ɛ<br />

operations. In a word: This nonuniform FFT method is “about as efficient”<br />

as a standard, uniform FFT. This efficient algorithm has found application in<br />

such disparate fields as N-body gravitational dynamics (after all, multibody<br />

gravity forces can be evaluated as a kind of convolution) and Riemann zetafunction<br />

computations (see, e.g., Exercise 1.62).<br />

For the following algorithm display, we have departed from the literature<br />

in several ways. First, we force indicial sums like (9.23) to run for j, k ∈<br />

[0,D − 1], for book consistency; indeed, many of the literature references<br />

involve equivalent sums for j or k ∈ [−D/2,D/2−1]. Secondly, we have chosen<br />

an algorithm that is fast and robust (in the sense of guaranteed accuracy even<br />

under radical behavior of the input signal), but not necessarily of minimum<br />

complexity. Robustness is, of course, important for rigorous calculations in<br />

computational number theory. Third, we have chosen this particular algorithm<br />

because it does not rely upon special-function evaluations such as Gaussians<br />

or windowing functions. The penalty for all of this streamlining is that we<br />

are required to perform a certain number of standard, length-D FFTs, this<br />

number of FFTs depending only logarithmically on desired accuracy<br />

In what follows, the “error” ɛ means that the true DFT (9.23) Xk and the<br />

calculated one X ′ k from the algorithm below differ according to<br />

|Xk − X ′ D−1 <br />

k|≤ɛ |xj|.<br />

We next present an algorithm that computes Xk in (9.23) to within error<br />

ɛ

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

Saved successfully!

Ooh no, something went wrong!