Hydra  4.0.1
A header-only templated C++ framework to perform data analysis on massively parallel platforms.
hydra::BaseFFTW< InputType, OutputType, PlannerType > Class Template Referenceabstract

#include <BaseFFTW.h>

Inheritance diagram for hydra::BaseFFTW< InputType, OutputType, PlannerType >:
Collaboration diagram for hydra::BaseFFTW< InputType, OutputType, PlannerType >:

Public Member Functions

 BaseFFTW ()=delete
 
 BaseFFTW (int input_size, int output_size, unsigned flags=FFTW_ESTIMATE, int sign=0)
 
 BaseFFTW (BaseFFTW< InputType, OutputType, PlannerType > &&other)
 
virtual ~BaseFFTW ()
 
void Execute ()
 
detail::fftw::_PlanDestroyer GetDestroyer () const
 
const detail::fftw::_PlanExecutor GetExecutor () const
 
unsigned GetFlags () const
 
hydra::pair< input_tagged_ptr_type, intGetInputData ()
 
int GetNInput () const
 
int GetNOutput () const
 
hydra::pair< output_tagged_ptr_type, intGetOutputData ()
 
PlannerType GetPlanner () const
 
int GetSign () const
 
int GetSize () const
 
template<typename Iterable , typename Type = typename decltype(*std::declval<Iterable&>().begin())::value_type>
std::enable_if< std::is_convertible< InputType, Type >::value &&detail::is_iterable< Iterable >::value, void >::type LoadInputData (Iterable &&container)
 
void LoadInputData (int size, input_tagged_ptr_type data)
 
void LoadInputData (int size, const InputType *data)
 
BaseFFTW< InputType, OutputType, PlannerType > & operator= (BaseFFTW< InputType, OutputType, PlannerType > &&other)
 
void Reset (int ninput, int noutput)
 
void SetFlags (unsigned flags)
 
void SetPlanner (PlannerType planner)
 
void SetSign (int sign)
 
virtual void SetSize (int logical_size)=0
 

Protected Types

typedef std::unique_ptr< InputType, detail::fftw::_Deleterinput_ptr_type
 
typedef hydra::thrust::pointer< InputType, hydra::thrust::host_system_tag > input_tagged_ptr_type
 
typedef std::unique_ptr< OutputType, detail::fftw::_Deleteroutput_ptr_type
 
typedef hydra::thrust::pointer< OutputType, hydra::thrust::host_system_tag > output_tagged_ptr_type
 
typedef PlannerType::plan_type plan_type
 

Detailed Description

template<typename InputType, typename OutputType, typename PlannerType>
class hydra::BaseFFTW< InputType, OutputType, PlannerType >

Member Typedef Documentation

◆ input_ptr_type

template<typename InputType, typename OutputType, typename PlannerType>
typedef std::unique_ptr<InputType, detail::fftw::_Deleter> hydra::BaseFFTW< InputType, OutputType, PlannerType >::input_ptr_type
protected

◆ input_tagged_ptr_type

template<typename InputType, typename OutputType, typename PlannerType>
typedef hydra::thrust::pointer<InputType, hydra::thrust::host_system_tag> hydra::BaseFFTW< InputType, OutputType, PlannerType >::input_tagged_ptr_type
protected

◆ output_ptr_type

template<typename InputType, typename OutputType, typename PlannerType>
typedef std::unique_ptr<OutputType, detail::fftw::_Deleter> hydra::BaseFFTW< InputType, OutputType, PlannerType >::output_ptr_type
protected

◆ output_tagged_ptr_type

template<typename InputType, typename OutputType, typename PlannerType>
typedef hydra::thrust::pointer<OutputType, hydra::thrust::host_system_tag> hydra::BaseFFTW< InputType, OutputType, PlannerType >::output_tagged_ptr_type
protected

◆ plan_type

template<typename InputType, typename OutputType, typename PlannerType>
typedef PlannerType::plan_type hydra::BaseFFTW< InputType, OutputType, PlannerType >::plan_type
protected

Constructor & Destructor Documentation

◆ BaseFFTW() [1/3]

template<typename InputType, typename OutputType, typename PlannerType>
hydra::BaseFFTW< InputType, OutputType, PlannerType >::BaseFFTW ( )
delete

◆ BaseFFTW() [2/3]

template<typename InputType, typename OutputType, typename PlannerType>
hydra::BaseFFTW< InputType, OutputType, PlannerType >::BaseFFTW ( int  input_size,
int  output_size,
unsigned  flags = FFTW_ESTIMATE,
int  sign = 0 
)
inline

◆ BaseFFTW() [3/3]

template<typename InputType, typename OutputType, typename PlannerType>
hydra::BaseFFTW< InputType, OutputType, PlannerType >::BaseFFTW ( BaseFFTW< InputType, OutputType, PlannerType > &&  other)
inline

◆ ~BaseFFTW()

template<typename InputType, typename OutputType, typename PlannerType>
virtual hydra::BaseFFTW< InputType, OutputType, PlannerType >::~BaseFFTW ( )
inlinevirtual

Member Function Documentation

◆ Execute()

template<typename InputType, typename OutputType, typename PlannerType>
void hydra::BaseFFTW< InputType, OutputType, PlannerType >::Execute ( )
inline

◆ GetDestroyer()

template<typename InputType, typename OutputType, typename PlannerType>
detail::fftw::_PlanDestroyer hydra::BaseFFTW< InputType, OutputType, PlannerType >::GetDestroyer ( ) const
inline

◆ GetExecutor()

template<typename InputType, typename OutputType, typename PlannerType>
const detail::fftw::_PlanExecutor hydra::BaseFFTW< InputType, OutputType, PlannerType >::GetExecutor ( ) const
inline

◆ GetFlags()

template<typename InputType, typename OutputType, typename PlannerType>
unsigned hydra::BaseFFTW< InputType, OutputType, PlannerType >::GetFlags ( ) const
inline

◆ GetInputData()

template<typename InputType, typename OutputType, typename PlannerType>
hydra::pair<input_tagged_ptr_type, int> hydra::BaseFFTW< InputType, OutputType, PlannerType >::GetInputData ( )
inline

◆ GetNInput()

template<typename InputType, typename OutputType, typename PlannerType>
int hydra::BaseFFTW< InputType, OutputType, PlannerType >::GetNInput ( ) const
inline

◆ GetNOutput()

template<typename InputType, typename OutputType, typename PlannerType>
int hydra::BaseFFTW< InputType, OutputType, PlannerType >::GetNOutput ( ) const
inline

◆ GetOutputData()

template<typename InputType, typename OutputType, typename PlannerType>
hydra::pair<output_tagged_ptr_type, int> hydra::BaseFFTW< InputType, OutputType, PlannerType >::GetOutputData ( )
inline

◆ GetPlanner()

template<typename InputType, typename OutputType, typename PlannerType>
PlannerType hydra::BaseFFTW< InputType, OutputType, PlannerType >::GetPlanner ( ) const
inline

◆ GetSign()

template<typename InputType, typename OutputType, typename PlannerType>
int hydra::BaseFFTW< InputType, OutputType, PlannerType >::GetSign ( ) const
inline

◆ GetSize()

template<typename InputType, typename OutputType, typename PlannerType>
int hydra::BaseFFTW< InputType, OutputType, PlannerType >::GetSize ( ) const
inline

◆ LoadInputData() [1/3]

template<typename InputType, typename OutputType, typename PlannerType>
template<typename Iterable , typename Type = typename decltype(*std::declval<Iterable&>().begin())::value_type>
std::enable_if<std::is_convertible<InputType, Type>::value && detail::is_iterable<Iterable>::value, void>::type hydra::BaseFFTW< InputType, OutputType, PlannerType >::LoadInputData ( Iterable &&  container)
inline

◆ LoadInputData() [2/3]

template<typename InputType, typename OutputType, typename PlannerType>
void hydra::BaseFFTW< InputType, OutputType, PlannerType >::LoadInputData ( int  size,
input_tagged_ptr_type  data 
)
inline

◆ LoadInputData() [3/3]

template<typename InputType, typename OutputType, typename PlannerType>
void hydra::BaseFFTW< InputType, OutputType, PlannerType >::LoadInputData ( int  size,
const InputType data 
)
inline

◆ operator=()

template<typename InputType, typename OutputType, typename PlannerType>
BaseFFTW<InputType,OutputType,PlannerType>& hydra::BaseFFTW< InputType, OutputType, PlannerType >::operator= ( BaseFFTW< InputType, OutputType, PlannerType > &&  other)
inline

◆ Reset()

template<typename InputType, typename OutputType, typename PlannerType>
void hydra::BaseFFTW< InputType, OutputType, PlannerType >::Reset ( int  ninput,
int  noutput 
)
inline

◆ SetFlags()

template<typename InputType, typename OutputType, typename PlannerType>
void hydra::BaseFFTW< InputType, OutputType, PlannerType >::SetFlags ( unsigned  flags)
inline

◆ SetPlanner()

template<typename InputType, typename OutputType, typename PlannerType>
void hydra::BaseFFTW< InputType, OutputType, PlannerType >::SetPlanner ( PlannerType  planner)
inline

◆ SetSign()

template<typename InputType, typename OutputType, typename PlannerType>
void hydra::BaseFFTW< InputType, OutputType, PlannerType >::SetSign ( int  sign)
inline

◆ SetSize()

template<typename InputType, typename OutputType, typename PlannerType>
virtual void hydra::BaseFFTW< InputType, OutputType, PlannerType >::SetSize ( int  logical_size)
pure virtual

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