algebramix_doc 0.3
|
#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.
static U* create_roots | ( | nat | n | ) | [inline, static] |
Definition at line 30 of file fft_naive.hpp.
References mmx::bit_mirror().
{ nat k= primitive_root_max_order<C> (2); (void) k; VERIFY (k == 0 || n <= k, "maximum order exceeded"); VERIFY (n >= 2, "size must be at least two"); U* roots= mmx_new<U> (n); for (nat i=0; i<n; i+=2) { U temp = primitive_root<C> (n, bit_mirror (i, n)); roots[i] = temp; roots[i+1]= primitive_root<U> (n, i==0? 0: n - bit_mirror (i, n)); } return roots; }
static void destroy_roots | ( | U * | u, |
nat | n | ||
) | [inline, static] |
Definition at line 43 of file fft_naive.hpp.
{ mmx_delete<U> (u, n); }
Definition at line 53 of file fft_naive.hpp.
Referenced by roots_helper< CC, UU, SS >::dtft_cross().
{ C temp= (*u) * (*c2); *c2 = (*c1) - temp; *c1 = (*c1) + temp; }
Definition at line 72 of file fft_naive.hpp.
References roots_helper< CC, UU, SS >::dfft_cross(), and mmx::invert().
{ static S h= invert (S (2)); dfft_cross (c1, c2, u); *c1 *= h; *c2 *= h; }
Definition at line 65 of file fft_naive.hpp.
References roots_helper< CC, UU, SS >::fft_cross(), and mmx::invert().
Definition at line 47 of file fft_naive.hpp.
Referenced by roots_helper< CC, UU, SS >::dtft_cross().
{ C temp= (*c2); *c2 = (*c1) - temp; *c1 = (*c1) + temp; }
Definition at line 59 of file fft_naive.hpp.
{ C temp= *c2; *c2 = (*u ) * ((*c1) - temp); *c1 = (*c1) + temp; }
Definition at line 79 of file fft_naive.hpp.
References mmx::invert().
Definition at line 86 of file fft_naive.hpp.
References mmx::invert().