fft_simd_transformer< C, FFTER, FFTER_SIMD, thr > Class Template Reference

#include <fft_simd.hpp>

List of all members.

Public Types

Public Member Functions

Public Attributes


Detailed Description

template<typename C, typename FFTER = fft_naive_transformer<C>, typename FFTER_SIMD = fft_naive_transformer<typename Simd_type(C)>, nat thr = 2>
class mmx::fft_simd_transformer< C, FFTER, FFTER_SIMD, thr >

Definition at line 26 of file fft_simd.hpp.


Member Typedef Documentation

typedef FFTER::R R

Definition at line 28 of file fft_simd.hpp.

typedef R::S S

Definition at line 30 of file fft_simd.hpp.

typedef R::U U

Definition at line 29 of file fft_simd.hpp.


Constructor & Destructor Documentation

fft_simd_transformer ( nat  n,
const format< C > &  fm 
) [inline]

Definition at line 38 of file fft_simd.hpp.

00038                                                           :
00039     ffter (new FFTER (n, fm)),
00040     depth (ffter->depth), len (ffter->len), roots (ffter->roots)  {}

~fft_simd_transformer (  )  [inline]

Definition at line 42 of file fft_simd.hpp.

References fft_simd_transformer< C, FFTER, FFTER_SIMD, thr >::ffter.

00042 { delete ffter; }


Member Function Documentation

void dfft ( CC *  c,
nat  stride,
nat  shift,
nat  steps 
) [inline]

Definition at line 53 of file fft_simd.hpp.

References fft_simd_transformer< C, FFTER, FFTER_SIMD, thr >::dfft().

00053                                                  {
00054     dfft (c, stride, shift, steps, 0, steps); }

void dfft ( CC *  c,
nat  stride,
nat  shift,
nat  steps,
nat  step1,
nat  step2 
) [inline]
void direct_transform ( C c  )  [inline]
void ifft ( CC *  c,
nat  stride,
nat  shift,
nat  steps 
) [inline]

Definition at line 57 of file fft_simd.hpp.

References fft_simd_transformer< C, FFTER, FFTER_SIMD, thr >::ifft().

00057                                                  {
00058     ifft (c, stride, shift, steps, 0, steps); }

void ifft ( CC *  c,
nat  stride,
nat  shift,
nat  steps,
nat  step1,
nat  step2 
) [inline]
void inverse_transform ( C c,
bool  divide = true 
) [inline]

Definition at line 65 of file fft_simd.hpp.

References binpow(), fft_simd_transformer< C, FFTER, FFTER_SIMD, thr >::depth, fft_simd_transformer< C, FFTER, FFTER_SIMD, thr >::ifft(), mmx::invert(), fft_simd_transformer< C, FFTER, FFTER_SIMD, thr >::len, and mmx::mul().

00065                                              {
00066     typedef implementation<vector_linear,vector_naive> NVec;
00067     ifft (c, 1, 0, depth);
00068     if (divide) NVec::mul (c, invert (binpow (S (2), depth)), len); }


Member Data Documentation

nat depth
FFTER* ffter
nat len
U* roots

Definition at line 35 of file fft_simd.hpp.


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

Generated on 6 Dec 2012 for algebramix by  doxygen 1.6.1