algebramix_doc 0.3
|
#include <fft_triadic_naive.hpp>
Definition at line 83 of file fft_triadic_naive.hpp.
Definition at line 86 of file fft_triadic_naive.hpp.
typedef R::S S |
Definition at line 88 of file fft_triadic_naive.hpp.
typedef R::U U |
Definition at line 87 of file fft_triadic_naive.hpp.
typedef VV V |
Definition at line 85 of file fft_triadic_naive.hpp.
fft_triadic_naive_transformer | ( | nat | n | ) | [inline] |
Definition at line 96 of file fft_triadic_naive.hpp.
References fft_triadic_naive_transformer< C, VV >::depth.
~fft_triadic_naive_transformer | ( | ) | [inline] |
Definition at line 100 of file fft_triadic_naive.hpp.
References fft_triadic_naive_transformer< C, VV >::len, fft_triadic_naive_transformer< C, VV >::roots, and fft_triadic_naive_transformer< C, VV >::stoor.
void dfft_triadic | ( | CC * | c, |
nat | stride, | ||
nat | shift, | ||
nat | steps, | ||
nat | step1, | ||
nat | step2 | ||
) | [inline] |
Definition at line 105 of file fft_triadic_naive.hpp.
References fft_triadic_naive_transformer< C, VV >::roots.
Referenced by fft_triadic_naive_transformer< C, VV >::dfft_triadic(), and fft_triadic_naive_transformer< C, VV >::direct_transform_triadic().
{ // In place direct triadic fft of // c[0], c[stride], ..., c[(3^steps-1) stride] // Only performs steps from step1 until step2-1 // Roots start at roots + shift typedef typename V::template helper<CC>::roots_type RR; for (nat step= step1; step < step2; step++) { //mmout << "step " << step << ": " << flush_now; nat todo= binpow (3, steps - 1 - step); CC* cc = c; U * uu = roots + (shift / todo); for (nat j= 0; j < (nat) binpow (3, step); j++) { for (nat k= 0; k < todo; k++) { RR::dfft_cross (cc, cc + stride * todo, cc + ((stride * todo) << 1), uu, uu+1, uu+2); cc += stride; } cc += (stride * todo) << 1; uu += 3; } } }
void dfft_triadic | ( | CC * | c, |
nat | stride, | ||
nat | shift, | ||
nat | steps | ||
) | [inline] |
Definition at line 155 of file fft_triadic_naive.hpp.
References fft_triadic_naive_transformer< C, VV >::dfft_triadic().
{ dfft_triadic (c, stride, shift, steps, 0, steps); }
void direct_transform_triadic | ( | C * | c | ) | [inline] |
Definition at line 165 of file fft_triadic_naive.hpp.
References fft_triadic_naive_transformer< C, VV >::depth, and fft_triadic_naive_transformer< C, VV >::dfft_triadic().
Referenced by mmx::direct_fft_triadic().
{ dfft_triadic (c, 1, 0, depth); }
void ifft_triadic | ( | CC * | c, |
nat | stride, | ||
nat | shift, | ||
nat | steps | ||
) | [inline] |
Definition at line 160 of file fft_triadic_naive.hpp.
References fft_triadic_naive_transformer< C, VV >::ifft_triadic().
{ ifft_triadic (c, stride, shift, steps, 0, steps); }
void ifft_triadic | ( | CC * | c, |
nat | stride, | ||
nat | shift, | ||
nat | steps, | ||
nat | step1, | ||
nat | step2 | ||
) | [inline] |
Definition at line 130 of file fft_triadic_naive.hpp.
References fft_triadic_naive_transformer< C, VV >::stoor.
Referenced by fft_triadic_naive_transformer< C, VV >::ifft_triadic(), and fft_triadic_naive_transformer< C, VV >::inverse_transform_triadic().
{ // In place inverse triadic fft of // c[0], c[stride], ..., c[(3^steps-1) stride] // Only performs steps from step2-1 until step1 // Roots start at roots + shift typedef typename V::template helper<CC>::roots_type RR; for (int step= step2-1; step >= ((int) step1); step--) { //mmout << "step " << step << ": " << flush_now; nat todo= binpow (3, steps - 1 - step); CC* cc = c; U * uu = stoor + (shift / todo); for (nat j= 0; j < (nat) binpow (3, step); j++) { for (nat k= 0; k < todo; k++) { RR::ifft_cross (cc, cc + stride * todo, cc + ((stride * todo) << 1), uu, uu+1, uu+2); cc += stride; } cc += (stride * todo) << 1; uu += 3; } } }
void inverse_transform_triadic | ( | C * | c, |
bool | shift = true |
||
) | [inline] |
Definition at line 170 of file fft_triadic_naive.hpp.
References fft_triadic_naive_transformer< C, VV >::depth, fft_triadic_naive_transformer< C, VV >::ifft_triadic(), mmx::invert(), fft_triadic_naive_transformer< C, VV >::len, and mmx::shift().
Referenced by mmx::inverse_fft_triadic().
nat depth |
nat len |
Definition at line 91 of file fft_triadic_naive.hpp.
Referenced by fft_triadic_naive_transformer< C, VV >::inverse_transform_triadic(), and fft_triadic_naive_transformer< C, VV >::~fft_triadic_naive_transformer().
Definition at line 92 of file fft_triadic_naive.hpp.
Referenced by fft_triadic_naive_transformer< C, VV >::dfft_triadic(), and fft_triadic_naive_transformer< C, VV >::~fft_triadic_naive_transformer().
Definition at line 93 of file fft_triadic_naive.hpp.
Referenced by fft_triadic_naive_transformer< C, VV >::ifft_triadic(), and fft_triadic_naive_transformer< C, VV >::~fft_triadic_naive_transformer().