roots_triadic_helper< CC, UU, SS > Struct Template Reference

#include <fft_triadic_naive.hpp>

List of all members.

Public Types

Static Public Member Functions


Detailed Description

template<typename CC, typename UU = CC, typename SS = CC>
struct mmx::roots_triadic_helper< CC, UU, SS >

Definition at line 25 of file fft_triadic_naive.hpp.


Member Typedef Documentation

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.


Member Function Documentation

static U* create_roots ( nat  n,
const format< C > &  fm 
) [inline, static]

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; }

static U* create_stoor ( nat  n,
const format< C > &  fm 
) [inline, static]

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.

00046                               {
00047     mmx_delete<U> (u, n); }

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   }

static void fft_shift ( C dest,
S  v,
nat  t 
) [inline, static]

Definition at line 66 of file fft_triadic_naive.hpp.

References mmx::mul().

00066                                   {
00067     NVec::mul (dest, C(v), t); }

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   }


The documentation for this struct was generated from the following file:

Generated on 6 Dec 2012 for algebramix by  doxygen 1.6.1