recursive to iterative mpn/mul_fft?

Sven Bettscheider Sven.Bettscheider at gmx.de
Fri Aug 12 11:06:48 CEST 2011


In function mpn_fft_fft(...)

if (K == 2){...}
     else
     {
       int j;
       int *lk = *ll;
mpn_fft_fft (Ap,     K >> 1, ll-1, 2 * omega, n, inc * 2, tp);
       mpn_fft_fft (Ap+inc, K >> 1, ll-1, 2 * omega, n, inc * 2, tp);
       /* A[2*j*inc] <- A[2*j*inc] + omega^l[k][2*j*inc] A[(2j+1)inc]
           A[(2j+1)inc] <- A[2*j*inc] + omega^l[k][(2j+1)inc] 
A[(2j+1)inc] */

     }

Is it possible to implement the red lines with using a loop (while, for)?

Am 10.08.2011 19:15, schrieb Torbjorn Granlund:
> Sven Bettscheider<Sven.Bettscheider at gmx.de>  writes:
>
>    Is it possible to change the following functions So that they work
>    iteratively rather than recursively?
>
> I am not sure I follow you.  These functions compute the FFT transforms
> iteratively.
>
> The addition, subtraction, and multiplies by roots-of-unity are done
> using function calls, which are not in themselves calling the
> transformation functions.
>
> The dyadic product done when the transforms are ready is done with
> either general multiplication (for small operands), or with recursion to
> FFT (for large operands).  So the dyadic products make the entire FFT
> multiply code recursive.
>


-- 
B. Sc. Sven Bettscheider
Augustinusstraße 35
66571 Wiesbach

Sven.Bettscheider at gmx.de
06806/869135



More information about the gmp-discuss mailing list