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.

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

This example of exotic transforms, being reminiscent of the discrete Galois<br />

transform (DGT) of the text, appears in [Dimitrov et al. 1995], [Dimitrov et<br />

al. 1998], and has actually been proposed as an idea for obtaining meaningful<br />

spectra—in a discrete field, no less—of real-valued, real-world data.<br />

9.51. Pursuant to Algorithm 9.5.22 for cyclic convolution, work out a similar<br />

algorithm for negacyclic integer convolution via a combined DGT/DWT<br />

method, with halved run length, meaning you want to convolve two real integer<br />

sequences each of length D, via a complex DGT of length D/2. You would need<br />

to establish, for a relevant weighted convolution of length D/2, a (D/2)-th<br />

root of i in a field F p 2 with p a Mersenne prime. Details that may help in such<br />

an implementation can be found in [Crandall 1997b].<br />

9.52. Study the so-called Fermat number transform (FNT) defined by<br />

Xk =<br />

D−1 <br />

j=0<br />

xjg −jk (mod fn),<br />

where fn =2 n + 1 and g has multiplicative order D in Zn. A useful choice is<br />

g a power of two, in which case, what are the allowed signal lengths D? The<br />

FNT has the advantage that the internal butterflies of a fast implementation<br />

involve multiply-free arithmetic, but the distinct disadvantage of restricted<br />

signal lengths. A particular question is: Are there useful applications of the<br />

FNT in computational number theory, other than the appearance in the<br />

Schönhage Algorithm 9.5.23?<br />

9.53. In such as Algorithm 9.5.7 one may wish to invoke an efficient<br />

transpose. This is not hard to do if the matrix is square, but otherwise, the<br />

problem is nontrivial. Note that the problem is again trivial, for any matrix,<br />

if one is allowed to copy the original matrix, then write it back in transpose<br />

order. However this can involve long memory jumps, which are not necessary,<br />

as well as all the memory for the copy.<br />

So, work out an algorithm for a general in-place transpose, that is, no<br />

matrix copy allowed, trying to keep everything as “local” as possible, meaning<br />

you want in some sense minimal memory jumps. Some references are [Van<br />

Loan 1992], [Bailey 1990].<br />

9.54. By analyzing the respective complexities of the steps of Algorithm<br />

9.5.8, (1) show that the complexity claim of the text holds for calculating<br />

X ′ k ; (2) give more precise information about the implied big-O constant in<br />

the bound 9.24; and (3) prove the inequality (9.25); and 4) explain how the<br />

inequality leads to the claimed complexity estimate for the algorithm.<br />

The interested reader might investigate/improve on the clever aspect of<br />

the original Dutt–Rokhlin method, which was to expand an oscillation eicz in<br />

a Gaussian series [Dutt and Rokhlin 1993]. There have<br />

9.55. Rewrite Algorithm 9.5.12 to employ balanced-digit representation<br />

(Definition 9.1.2). Note that the important changes center on the carry

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

Saved successfully!

Ooh no, something went wrong!