#include <fft_triadic_naive.hpp>
Definition at line 25 of file fft_triadic_naive.hpp.
typedef CC C |
Definition at line 27 of file fft_triadic_naive.hpp.
typedef implementation<vector_linear,vector_naive> NVec |
Definition at line 26 of file fft_triadic_naive.hpp.
typedef SS S |
Definition at line 29 of file fft_triadic_naive.hpp.
typedef UU U |
Definition at line 28 of file fft_triadic_naive.hpp.
Definition at line 32 of file fft_triadic_naive.hpp.
References mmx::digit_mirror_triadic().
00032 { 00033 U* roots= mmx_new<U> (n); 00034 for (nat i=0; i<n; i++) 00035 roots[i] = primitive_root<C> (n, digit_mirror_triadic (i, n), fm); 00036 return roots; }
Definition at line 39 of file fft_triadic_naive.hpp.
References mmx::digit_mirror_triadic().
00039 { 00040 U* stoor= mmx_new<U> (n); 00041 for (nat i=0; i<n; i++) 00042 stoor[i]= primitive_root<C> (n, i==0 ? 0 : n - digit_mirror_triadic (i, n), fm); 00043 return stoor; }
static void destroy_roots | ( | U * | u, | |
nat | n | |||
) | [inline, static] |
Definition at line 46 of file fft_triadic_naive.hpp.
static void dfft_cross | ( | C * | c1, | |
C * | c2, | |||
C * | c3, | |||
const U * | u1, | |||
const U * | u2, | |||
const U * | u3 | |||
) | [inline, static] |
Definition at line 50 of file fft_triadic_naive.hpp.
00050 { 00051 C temp1= *c1, temp2= *c2; 00052 *c1 = temp1 + (*u1) * (temp2 + (*u1) * (*c3)); 00053 *c2 = temp1 + (*u2) * (temp2 + (*u2) * (*c3)); 00054 *c3 = temp1 + (*u3) * (temp2 + (*u3) * (*c3)); 00055 }
Definition at line 66 of file fft_triadic_naive.hpp.
References mmx::mul().
static void ifft_cross | ( | C * | c1, | |
C * | c2, | |||
C * | c3, | |||
const U * | u1, | |||
const U * | u2, | |||
const U * | u3 | |||
) | [inline, static] |
Definition at line 58 of file fft_triadic_naive.hpp.
00058 { 00059 C temp1= *c1, temp2= *c2; 00060 *c1 = temp1 + temp2 + (*c3); 00061 *c2 = (*u1) * temp1 + (*u2) * temp2 + (*u3) * (*c3); 00062 *c3 = (*u1) * ((*u1) * temp1 + (*u3) * temp2 + (*u2) * (*c3)); 00063 }