Hydra  4.0.1
A header-only templated C++ framework to perform data analysis on massively parallel platforms.
hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs > Struct Template Reference

#include <AddPdfFunctor.h>

Collaboration diagram for hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >:

Public Types

typedef hydra::thrust::tuple< typename PDF1::functor_type, typename PDF2::functor_type, typename PDFs::functor_type... > functors_tuple_type
 
typedef void hydra_composed_functor_type
 

Public Member Functions

 AddPdfFunctor ()=delete
 
 AddPdfFunctor (hydra::thrust::tuple< typename PDF1::functor_type, typename PDF2::functor_type, typename PDFs::functor_type... > const &functors, const Parameter(&coeficients)[sizeof...(PDFs)+2], GReal_t coef_sum)
 
__hydra_host__ __hydra_device__ AddPdfFunctor (AddPdfFunctor< PDF1, PDF2, PDFs... > const &other)
 
__hydra_host__ __hydra_device__ const GReal_tGetCoefficients () const
 
__hydra_host__ __hydra_device__ GReal_t GetCoefSum () const
 
__hydra_host__ __hydra_device__ const functors_tuple_typeGetFunctors () const
 
__hydra_host__ __hydra_device__ GReal_t GetNorm () const
 
template<typename T >
__hydra_host__ __hydra_device__ GReal_t operator() (T &&t) const
 
template<typename T1 , typename T2 >
__hydra_host__ __hydra_device__ GReal_t operator() (T1 &&x, T2 &&cache) const
 
template<typename T >
__hydra_host__ __hydra_device__ GReal_t operator() (GUInt_t, T *x)
 
__hydra_host__ __hydra_device__ AddPdfFunctor< PDF1, PDF2, PDFs... > & operator= (AddPdfFunctor< PDF1, PDF2, PDFs... > const &other)
 
__hydra_host__ void PrintRegisteredParameters ()
 
__hydra_host__ __hydra_device__ void SetCoefSum (GReal_t coefSum)
 
__hydra_host__ __hydra_device__ void SetFunctors (functors_tuple_type functors)
 

Static Public Attributes

static constexpr size_t npdfs = sizeof...(PDFs)+2
 

Detailed Description

template<typename PDF1, typename PDF2, typename ... PDFs>
struct hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >

Member Typedef Documentation

◆ functors_tuple_type

template<typename PDF1 , typename PDF2 , typename ... PDFs>
typedef hydra::thrust::tuple< typename PDF1::functor_type, typename PDF2::functor_type, typename PDFs::functor_type...> hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::functors_tuple_type

◆ hydra_composed_functor_type

template<typename PDF1 , typename PDF2 , typename ... PDFs>
typedef void hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::hydra_composed_functor_type

Constructor & Destructor Documentation

◆ AddPdfFunctor() [1/3]

template<typename PDF1 , typename PDF2 , typename ... PDFs>
hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::AddPdfFunctor ( )
delete

◆ AddPdfFunctor() [2/3]

template<typename PDF1 , typename PDF2 , typename ... PDFs>
hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::AddPdfFunctor ( hydra::thrust::tuple< typename PDF1::functor_type, typename PDF2::functor_type, typename PDFs::functor_type... > const &  functors,
const Parameter(&)  coeficients[sizeof...(PDFs)+2],
GReal_t  coef_sum 
)
inline

◆ AddPdfFunctor() [3/3]

template<typename PDF1 , typename PDF2 , typename ... PDFs>
__hydra_host__ __hydra_device__ hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::AddPdfFunctor ( AddPdfFunctor< PDF1, PDF2, PDFs... > const &  other)
inline

Member Function Documentation

◆ GetCoefficients()

template<typename PDF1 , typename PDF2 , typename ... PDFs>
__hydra_host__ __hydra_device__ const GReal_t* hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::GetCoefficients ( ) const
inline

◆ GetCoefSum()

template<typename PDF1 , typename PDF2 , typename ... PDFs>
__hydra_host__ __hydra_device__ GReal_t hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::GetCoefSum ( ) const
inline

◆ GetFunctors()

template<typename PDF1 , typename PDF2 , typename ... PDFs>
__hydra_host__ __hydra_device__ const functors_tuple_type& hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::GetFunctors ( ) const
inline

◆ GetNorm()

template<typename PDF1 , typename PDF2 , typename ... PDFs>
__hydra_host__ __hydra_device__ GReal_t hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::GetNorm ( ) const
inline

◆ operator()() [1/3]

template<typename PDF1 , typename PDF2 , typename ... PDFs>
template<typename T >
__hydra_host__ __hydra_device__ GReal_t hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::operator() ( T &&  t) const
inline

◆ operator()() [2/3]

template<typename PDF1 , typename PDF2 , typename ... PDFs>
template<typename T1 , typename T2 >
__hydra_host__ __hydra_device__ GReal_t hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::operator() ( T1 &&  x,
T2 &&  cache 
) const
inline

◆ operator()() [3/3]

template<typename PDF1 , typename PDF2 , typename ... PDFs>
template<typename T >
__hydra_host__ __hydra_device__ GReal_t hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::operator() ( GUInt_t  ,
T *  x 
)
inline

◆ operator=()

template<typename PDF1 , typename PDF2 , typename ... PDFs>
__hydra_host__ __hydra_device__ AddPdfFunctor< PDF1, PDF2, PDFs...>& hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::operator= ( AddPdfFunctor< PDF1, PDF2, PDFs... > const &  other)
inline

◆ PrintRegisteredParameters()

template<typename PDF1 , typename PDF2 , typename ... PDFs>
__hydra_host__ void hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::PrintRegisteredParameters ( )
inline

◆ SetCoefSum()

template<typename PDF1 , typename PDF2 , typename ... PDFs>
__hydra_host__ __hydra_device__ void hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::SetCoefSum ( GReal_t  coefSum)
inline

◆ SetFunctors()

template<typename PDF1 , typename PDF2 , typename ... PDFs>
__hydra_host__ __hydra_device__ void hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::SetFunctors ( functors_tuple_type  functors)
inline

Field Documentation

◆ npdfs

template<typename PDF1 , typename PDF2 , typename ... PDFs>
constexpr size_t hydra::detail::AddPdfFunctor< PDF1, PDF2, PDFs >::npdfs = sizeof...(PDFs)+2
static

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