Hydra  4.0.1
A header-only templated C++ framework to perform data analysis on massively parallel platforms.
hydra::detail::CompositeBase< F0, F1, Fs > Class Template Reference

#include <CompositeBase.h>

Collaboration diagram for hydra::detail::CompositeBase< F0, F1, Fs >:

Public Types

typedef hydra::detail::merged_tuple< typename F1::argument_type >::type argument_type
 
typedef hydra::thrust::tuple< F0, F1, Fs... > functors_type
 
typedef void hydra_composed_functor_type
 

Public Member Functions

 CompositeBase ()=delete
 
 CompositeBase (F0 const &f0, F1 const &f1, Fs const &...fs)
 
__hydra_host__ __hydra_device__ CompositeBase (CompositeBase< F0, F1, Fs... > const &other)
 
void AddUserParameters (std::vector< hydra::Parameter *> &user_parameters)
 
template<unsigned int I>
hydra::thrust::tuple_element< I, functors_type >::type & GetFunctor (hydra::placeholders::placeholder< I > const &)
 
__hydra_host__ __hydra_device__ const functors_typeGetFunctors () const
 
__hydra_host__ __hydra_device__ GReal_t GetNorm () const
 
size_t GetNumberOfParameters () const
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
const hydra::ParameterGetParameter (Int i) const
 
const hydra::ParameterGetParameter (const char *name) const
 
size_t GetParametersKey ()
 
__hydra_host__ __hydra_device__ std::enable_if< std::is_copy_constructible< F0 >::value &&std::is_copy_constructible< F1 >::value &&detail::all_true< std::is_copy_constructible< Fs >::value... >::value, CompositeBase< F0, F1, Fs... > & >::type operator= (CompositeBase< F0, F1, Fs... > const &other)
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
hydra::ParameterParameter (Int i)
 
hydra::ParameterParameter (const char *name)
 
void PrintRegisteredParameters ()
 
__hydra_host__ __hydra_device__ void SetNorm (GReal_t norm)
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
void SetParameter (Int i, hydra::Parameter const &value)
 
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
void SetParameter (Int i, double value)
 
void SetParameter (const char *name, hydra::Parameter const &value)
 
void SetParameter (const char *name, double value)
 
void SetParameters (const std::vector< double > &parameters)
 

Protected Attributes

functors_type fFtorTuple
 

Detailed Description

template<typename F0, typename F1, typename... Fs>
class hydra::detail::CompositeBase< F0, F1, Fs >

Member Typedef Documentation

◆ argument_type

template<typename F0 , typename F1 , typename... Fs>
typedef hydra::detail::merged_tuple<typename F1::argument_type>::type hydra::detail::CompositeBase< F0, F1, Fs >::argument_type

◆ functors_type

template<typename F0 , typename F1 , typename... Fs>
typedef hydra::thrust::tuple<F0, F1, Fs...> hydra::detail::CompositeBase< F0, F1, Fs >::functors_type

◆ hydra_composed_functor_type

template<typename F0 , typename F1 , typename... Fs>
typedef void hydra::detail::CompositeBase< F0, F1, Fs >::hydra_composed_functor_type

Constructor & Destructor Documentation

◆ CompositeBase() [1/3]

template<typename F0 , typename F1 , typename... Fs>
hydra::detail::CompositeBase< F0, F1, Fs >::CompositeBase ( )
delete

◆ CompositeBase() [2/3]

template<typename F0 , typename F1 , typename... Fs>
hydra::detail::CompositeBase< F0, F1, Fs >::CompositeBase ( F0 const &  f0,
F1 const &  f1,
Fs const &...  fs 
)
inline

◆ CompositeBase() [3/3]

template<typename F0 , typename F1 , typename... Fs>
__hydra_host__ __hydra_device__ hydra::detail::CompositeBase< F0, F1, Fs >::CompositeBase ( CompositeBase< F0, F1, Fs... > const &  other)
inline

Member Function Documentation

◆ AddUserParameters()

template<typename F0 , typename F1 , typename... Fs>
void hydra::detail::CompositeBase< F0, F1, Fs >::AddUserParameters ( std::vector< hydra::Parameter *> &  user_parameters)
inline

◆ GetFunctor()

template<typename F0 , typename F1 , typename... Fs>
template<unsigned int I>
hydra::thrust::tuple_element<I,functors_type>::type& hydra::detail::CompositeBase< F0, F1, Fs >::GetFunctor ( hydra::placeholders::placeholder< I > const &  )
inline

◆ GetFunctors()

template<typename F0 , typename F1 , typename... Fs>
__hydra_host__ __hydra_device__ const functors_type& hydra::detail::CompositeBase< F0, F1, Fs >::GetFunctors ( ) const
inline

◆ GetNorm()

template<typename F0 , typename F1 , typename... Fs>
__hydra_host__ __hydra_device__ GReal_t hydra::detail::CompositeBase< F0, F1, Fs >::GetNorm ( ) const
inline

◆ GetNumberOfParameters()

template<typename F0 , typename F1 , typename... Fs>
size_t hydra::detail::CompositeBase< F0, F1, Fs >::GetNumberOfParameters ( ) const
inline

◆ GetParameter() [1/2]

template<typename F0 , typename F1 , typename... Fs>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
const hydra::Parameter& hydra::detail::CompositeBase< F0, F1, Fs >::GetParameter ( Int  i) const
inline

◆ GetParameter() [2/2]

template<typename F0 , typename F1 , typename... Fs>
const hydra::Parameter& hydra::detail::CompositeBase< F0, F1, Fs >::GetParameter ( const char *  name) const
inline

◆ GetParametersKey()

template<typename F0 , typename F1 , typename... Fs>
size_t hydra::detail::CompositeBase< F0, F1, Fs >::GetParametersKey ( )
inline

◆ operator=()

template<typename F0 , typename F1 , typename... Fs>
__hydra_host__ __hydra_device__ std::enable_if< std::is_copy_constructible<F0>::value && std::is_copy_constructible<F1>::value && detail::all_true<std::is_copy_constructible<Fs>::value...>::value, CompositeBase<F0,F1,Fs...>&>::type hydra::detail::CompositeBase< F0, F1, Fs >::operator= ( CompositeBase< F0, F1, Fs... > const &  other)
inline

◆ Parameter() [1/2]

template<typename F0 , typename F1 , typename... Fs>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
hydra::Parameter& hydra::detail::CompositeBase< F0, F1, Fs >::Parameter ( Int  i)
inline

◆ Parameter() [2/2]

template<typename F0 , typename F1 , typename... Fs>
hydra::Parameter& hydra::detail::CompositeBase< F0, F1, Fs >::Parameter ( const char *  name)
inline

◆ PrintRegisteredParameters()

template<typename F0 , typename F1 , typename... Fs>
void hydra::detail::CompositeBase< F0, F1, Fs >::PrintRegisteredParameters ( )
inline

◆ SetNorm()

template<typename F0 , typename F1 , typename... Fs>
__hydra_host__ __hydra_device__ void hydra::detail::CompositeBase< F0, F1, Fs >::SetNorm ( GReal_t  norm)
inline

◆ SetParameter() [1/4]

template<typename F0 , typename F1 , typename... Fs>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
void hydra::detail::CompositeBase< F0, F1, Fs >::SetParameter ( Int  i,
hydra::Parameter const &  value 
)
inline

◆ SetParameter() [2/4]

template<typename F0 , typename F1 , typename... Fs>
template<typename Int , typename = typename std::enable_if<std::is_integral<Int>::value, void>::type>
void hydra::detail::CompositeBase< F0, F1, Fs >::SetParameter ( Int  i,
double  value 
)
inline

◆ SetParameter() [3/4]

template<typename F0 , typename F1 , typename... Fs>
void hydra::detail::CompositeBase< F0, F1, Fs >::SetParameter ( const char *  name,
hydra::Parameter const &  value 
)
inline

◆ SetParameter() [4/4]

template<typename F0 , typename F1 , typename... Fs>
void hydra::detail::CompositeBase< F0, F1, Fs >::SetParameter ( const char *  name,
double  value 
)
inline

◆ SetParameters()

template<typename F0 , typename F1 , typename... Fs>
void hydra::detail::CompositeBase< F0, F1, Fs >::SetParameters ( const std::vector< double > &  parameters)
inline

Field Documentation

◆ fFtorTuple

template<typename F0 , typename F1 , typename... Fs>
functors_type hydra::detail::CompositeBase< F0, F1, Fs >::fFtorTuple
protected

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