#include <fft_naive.hpp>
Definition at line 24 of file fft_naive.hpp.
typedef CC C |
Definition at line 25 of file fft_naive.hpp.
typedef SS S |
Definition at line 27 of file fft_naive.hpp.
typedef UU U |
Definition at line 26 of file fft_naive.hpp.
Definition at line 30 of file fft_naive.hpp.
References mmx::bit_mirror().
00030 { 00031 nat k= primitive_root_max_order<U> (2); (void) k; 00032 VERIFY (k == 0 || n <= k, "maximum order exceeded"); 00033 VERIFY (n >= 2, "size must be at least two"); 00034 U* roots= mmx_new<U> (n); 00035 for (nat i=0; i<n; i+=2) { 00036 roots[i] = primitive_root<U> (n, bit_mirror (i, n), fm); 00037 roots[i+1]= primitive_root<U> (n, i==0? 0: n - bit_mirror (i, n), fm); 00038 } 00039 return roots; }
static void destroy_roots | ( | U * | u, | |
nat | n | |||
) | [inline, static] |
Definition at line 42 of file fft_naive.hpp.
Definition at line 52 of file fft_naive.hpp.
Referenced by roots_helper< CC, UU, SS >::dtft_cross().
00052 { 00053 C temp= (*u) * (*c2); 00054 *c2 = (*c1) - temp; 00055 *c1 = (*c1) + temp; }
Definition at line 71 of file fft_naive.hpp.
References roots_helper< CC, UU, SS >::dfft_cross(), and mmx::invert().
00071 { 00072 static S h= invert (S (2)); 00073 dfft_cross (c1, c2, u); 00074 *c1 *= h; 00075 *c2 *= h; }
Definition at line 64 of file fft_naive.hpp.
References roots_helper< CC, UU, SS >::fft_cross(), and mmx::invert().
Definition at line 46 of file fft_naive.hpp.
Referenced by roots_helper< CC, UU, SS >::dtft_cross().
00046 { 00047 C temp= (*c2); 00048 *c2 = (*c1) - temp; 00049 *c1 = (*c1) + temp; }
Definition at line 58 of file fft_naive.hpp.
00058 { 00059 C temp= *c2; 00060 *c2 = (*u ) * ((*c1) - temp); 00061 *c1 = (*c1) + temp; }
Definition at line 85 of file fft_naive.hpp.
References mmx::invert().
Definition at line 78 of file fft_naive.hpp.
References mmx::invert().