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

#include <BaseCuFFT.h>

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

Public Member Functions

 BaseCuFFT ()=delete
 
 BaseCuFFT (int input_size, int output_size, int sign=0)
 
 BaseCuFFT (BaseCuFFT< InputType, OutputType, PlannerType > &&other)
 
virtual ~BaseCuFFT ()
 
void Execute ()
 
detail::cufft::_PlanDestroyer GetDestroyer () const
 
const detail::cufft::_PlanExecutor GetExecutor () 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, const InputType *data)
 
void LoadInputData (int size, input_tagged_ptr_type data)
 
BaseCuFFT< InputType, OutputType, PlannerType > & operator= (BaseCuFFT< InputType, OutputType, PlannerType > &&other)
 
void Reset (int ninput, int noutput)
 
void SetPlanner (PlannerType planner)
 
void SetSign (int sign)
 
virtual void SetSize (int logical_size)=0
 

Protected Types

typedef std::unique_ptr< InputType, detail::cufft::_Deleterinput_ptr_type
 
typedef hydra::thrust::pointer< InputType, hydra::thrust::cuda::tag > input_tagged_ptr_type
 
typedef std::unique_ptr< OutputType, detail::cufft::_Deleteroutput_ptr_type
 
typedef hydra::thrust::pointer< OutputType, hydra::thrust::cuda::tag > output_tagged_ptr_type
 
typedef PlannerType::plan_type plan_type
 

Detailed Description

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

Member Typedef Documentation

◆ input_ptr_type

template<typename InputType, typename OutputType, typename PlannerType>
typedef std::unique_ptr<InputType, detail::cufft::_Deleter> hydra::BaseCuFFT< 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::cuda::tag> hydra::BaseCuFFT< InputType, OutputType, PlannerType >::input_tagged_ptr_type
protected

◆ output_ptr_type

template<typename InputType, typename OutputType, typename PlannerType>
typedef std::unique_ptr<OutputType, detail::cufft::_Deleter> hydra::BaseCuFFT< 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::cuda::tag> hydra::BaseCuFFT< InputType, OutputType, PlannerType >::output_tagged_ptr_type
protected

◆ plan_type

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

Constructor & Destructor Documentation

◆ BaseCuFFT() [1/3]

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

◆ BaseCuFFT() [2/3]

template<typename InputType, typename OutputType, typename PlannerType>
hydra::BaseCuFFT< InputType, OutputType, PlannerType >::BaseCuFFT ( int  input_size,
int  output_size,
int  sign = 0 
)
inline

◆ BaseCuFFT() [3/3]

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

◆ ~BaseCuFFT()

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

Member Function Documentation

◆ Execute()

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

◆ GetDestroyer()

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

◆ GetExecutor()

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

◆ GetInputData()

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

◆ GetNInput()

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

◆ GetNOutput()

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

◆ GetOutputData()

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

◆ GetPlanner()

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

◆ GetSign()

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

◆ GetSize()

template<typename InputType, typename OutputType, typename PlannerType>
int hydra::BaseCuFFT< 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::BaseCuFFT< InputType, OutputType, PlannerType >::LoadInputData ( Iterable &&  container)
inline

◆ LoadInputData() [2/3]

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

◆ LoadInputData() [3/3]

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

◆ operator=()

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

◆ Reset()

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

◆ SetPlanner()

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

◆ SetSign()

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

◆ SetSize()

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

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