algebramix_doc 0.3
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) [inline]

Definition at line 38 of file fft_simd.hpp.

                                     :
    ffter (new FFTER (n)),
    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.

{ delete ffter; }

Member Function Documentation

void dfft ( CC *  c,
nat  stride,
nat  shift,
nat  steps,
nat  step1,
nat  step2 
) [inline]
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().

                                                 {
    dfft (c, stride, shift, steps, 0, steps); }
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().

                                                 {
    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 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().

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

Member Data Documentation

U* roots

Definition at line 35 of file fft_simd.hpp.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines