| Karim Belabas on Wed, 29 Aug 2018 16:33:15 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: DFT with gp |
* Alessandro Languasco [2018-08-29 14:41]:
> Dear all,
>
> I should compute the DFT and the inverse DFT of a large vector of real numbers computed
> using gp; I wrote a trivial implementation of it which is fine when the
> main parameter q (an odd prime) is tiny but it becomes very slow as soon as q is a bit larger.
>
> I read here
> https://pari.math.u-bordeaux.fr/faq.html <https://pari.math.u-bordeaux.fr/faq.html>
> about the existence of some FFT-related functions in libpari
> but they are not publicly available.
>
> So I am wondering if these functions can be installed in gp ?
> (I mean using some install() directive).
>
> If so, some of you can send me an example of using them?
install(FFTinit,Lp);
install(FFT,GG);
k = 8; N = 2^k;
w = FFTinit(k);
v = vector(N, i, random(1.));
vhat = FFT(v, w);
\\ checks
P = Polrev(v);
? exponent([ subst(P, 'x, z) | z <- w ] - vhat)
%10 = -112 \\ instead of default accuracy -128
\\ complexity
? for(i=1,10^3, [ subst(P, 'x, z) | z <- w ])
time = 12,363 ms.
? for(i=1,10^3, FFT(v,w))
time = 457 ms.
Cheers,
K.B.
--
Karim Belabas, IMB (UMR 5251) Tel: (+33) (0)5 40 00 26 17
Universite de Bordeaux Fax: (+33) (0)5 40 00 21 23
351, cours de la Liberation http://www.math.u-bordeaux.fr/~kbelabas/
F-33405 Talence (France) http://pari.math.u-bordeaux.fr/ [PARI/GP]
`