Hydra  4.0.1
A header-only templated C++ framework to perform data analysis on massively parallel platforms.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
FunctionArgument.h File Reference
Include dependency graph for FunctionArgument.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  hydra::detail::FunctionArgument< Derived, Type >
 

Namespaces

 hydra
 Generic policies definition.
 
 hydra::arguments
 
 hydra::detail
 

Macros

#define declarg(NAME, TYPE)
 

Functions

template<typename Arg1 , typename Arg2 >
__hydra_host__ __hydra_device__ std::enable_if< detail::is_function_argument< Arg1 >::value &&!detail::is_function_argument< Arg2 >::value, decltype(std::declval< typename Arg1::value_type >) *std::declval< Arg2 >))>::type hydra::arguments::operator* (Arg1 const &a1, Arg2 const &a2)
 
template<typename Arg1 , typename Arg2 >
__hydra_host__ __hydra_device__ std::enable_if< detail::is_function_argument< Arg1 >::value &&!detail::is_function_argument< Arg2 >::value, decltype(std::declval< typename Arg1::value_type >) *std::declval< Arg2 >))>::type hydra::arguments::operator* (Arg2 const &a2, Arg1 const &a1)
 
template<typename Arg1 , typename Arg2 >
__hydra_host__ __hydra_device__ std::enable_if< detail::is_function_argument_pack< Arg1, Arg2 >::value, decltype(std::declval< typename Arg1::value_type >) *std::declval< typename Arg2::value_type >))>::type hydra::arguments::operator* (Arg1 const &a1, Arg2 const &a2)
 
template<typename Arg1 , typename Arg2 >
__hydra_host__ __hydra_device__ std::enable_if< detail::is_function_argument< Arg1 >::value &&!detail::is_function_argument< Arg2 >::value, decltype(std::declval< typename Arg1::value_type >)+std::declval< Arg2 >))>::type hydra::arguments::operator+ (Arg1 const &a1, Arg2 const &a2)
 
template<typename Arg1 , typename Arg2 >
__hydra_host__ __hydra_device__ std::enable_if< detail::is_function_argument< Arg1 >::value &&!detail::is_function_argument< Arg2 >::value, decltype(std::declval< typename Arg1::value_type >)+std::declval< Arg2 >))>::type hydra::arguments::operator+ (Arg2 const &a2, Arg1 const &a1)
 
template<typename Arg1 , typename Arg2 >
__hydra_host__ __hydra_device__ std::enable_if< detail::is_function_argument_pack< Arg1, Arg2 >::value, decltype(std::declval< typename Arg1::value_type >)+std::declval< typename Arg2::value_type >))>::type hydra::arguments::operator+ (Arg1 const &a1, Arg2 const &a2)
 
template<typename Arg1 , typename Arg2 >
__hydra_host__ __hydra_device__ std::enable_if< detail::is_function_argument< Arg1 >::value &&!detail::is_function_argument< Arg2 >::value, decltype(std::declval< typename Arg1::value_type >) - std::declval< Arg2 >))>::type hydra::arguments::operator- (Arg1 const &a1, Arg2 const &a2)
 
template<typename Arg1 , typename Arg2 >
__hydra_host__ __hydra_device__ std::enable_if< detail::is_function_argument< Arg1 >::value &&!detail::is_function_argument< Arg2 >::value, decltype(std::declval< typename Arg1::value_type >) - std::declval< Arg2 >))>::type hydra::arguments::operator- (Arg2 const &a2, Arg1 const &a1)
 
template<typename Arg1 , typename Arg2 >
__hydra_host__ __hydra_device__ std::enable_if< detail::is_function_argument_pack< Arg1, Arg2 >::value, decltype(std::declval< typename Arg1::value_type >) - std::declval< typename Arg2::value_type >))>::type hydra::arguments::operator- (Arg1 const &a1, Arg2 const &a2)
 
template<typename Arg1 , typename Arg2 >
__hydra_host__ __hydra_device__ std::enable_if< detail::is_function_argument< Arg1 >::value &&!detail::is_function_argument< Arg2 >::value, decltype(std::declval< typename Arg1::value_type >)/std::declval< Arg2 >))>::type hydra::arguments::operator/ (Arg1 const &a1, Arg2 const &a2)
 
template<typename Arg1 , typename Arg2 >
__hydra_host__ __hydra_device__ std::enable_if< detail::is_function_argument< Arg1 >::value &&!detail::is_function_argument< Arg2 >::value, decltype(std::declval< typename Arg1::value_type >)/std::declval< Arg2 >))>::type hydra::arguments::operator/ (Arg2 const &a2, Arg1 const &a1)
 
template<typename Arg1 , typename Arg2 >
__hydra_host__ __hydra_device__ std::enable_if< detail::is_function_argument_pack< Arg1, Arg2 >::value, decltype(std::declval< typename Arg1::value_type >)/std::declval< typename Arg2::value_type >))>::type hydra::arguments::operator/ (Arg1 const &a1, Arg2 const &a2)
 
template<typename Arg >
std::enable_if< detail::is_function_argument< Arg >::value, std::ostream & >::type hydra::arguments::operator<< (std::ostream &s, const hydra::thrust::device_reference< Arg > &a)
 
template<typename Arg >
std::enable_if< detail::is_function_argument< Arg >::value, std::ostream & >::type hydra::arguments::operator<< (std::ostream &s, const Arg &a)
 

Macro Definition Documentation

◆ declarg

#define declarg (   NAME,
  TYPE 
)