42 #ifndef KOKKOS_FUNCTIONAL_HPP 
   43 #define KOKKOS_FUNCTIONAL_HPP 
   45 #include <Kokkos_Macros.hpp> 
   46 #include <impl/Kokkos_Functional_impl.hpp> 
   55   typedef T argument_type;
 
   56   typedef T first_argument_type;
 
   57   typedef uint32_t second_argument_type;
 
   58   typedef uint32_t result_type;
 
   60   KOKKOS_FORCEINLINE_FUNCTION
 
   61   uint32_t operator()(T 
const & t)
 const 
   62   { 
return Impl::MurmurHash3_x86_32( &t, 
sizeof(T), 0); }
 
   64   KOKKOS_FORCEINLINE_FUNCTION
 
   65   uint32_t operator()(T 
const & t, uint32_t seed)
 const 
   66   { 
return Impl::MurmurHash3_x86_32( &t, 
sizeof(T), seed); }
 
   72   typedef T first_argument_type;
 
   73   typedef T second_argument_type;
 
   74   typedef bool result_type;
 
   76   KOKKOS_FORCEINLINE_FUNCTION
 
   77   bool operator()(T 
const & a, T 
const & b)
 const 
   78   { 
return Impl::bitwise_equal(&a,&b); }
 
   82 struct pod_not_equal_to
 
   84   typedef T first_argument_type;
 
   85   typedef T second_argument_type;
 
   86   typedef bool result_type;
 
   88   KOKKOS_FORCEINLINE_FUNCTION
 
   89   bool operator()(T 
const & a, T 
const & b)
 const 
   90   { 
return !Impl::bitwise_equal(&a,&b); }
 
   96   typedef T first_argument_type;
 
   97   typedef T second_argument_type;
 
   98   typedef bool result_type;
 
  100   KOKKOS_FORCEINLINE_FUNCTION
 
  101   bool operator()(T 
const & a, T 
const & b)
 const 
  105 template <
typename T>
 
  108   typedef T first_argument_type;
 
  109   typedef T second_argument_type;
 
  110   typedef bool result_type;
 
  112   KOKKOS_FORCEINLINE_FUNCTION
 
  113   bool operator()(T 
const & a, T 
const & b)
 const 
  118 template <
typename T>
 
  121   typedef T first_argument_type;
 
  122   typedef T second_argument_type;
 
  123   typedef bool result_type;
 
  125   KOKKOS_FORCEINLINE_FUNCTION
 
  126   bool operator()(T 
const & a, T 
const & b)
 const 
  131 template <
typename T>
 
  134   typedef T first_argument_type;
 
  135   typedef T second_argument_type;
 
  136   typedef bool result_type;
 
  138   KOKKOS_FORCEINLINE_FUNCTION
 
  139   bool operator()(T 
const & a, T 
const & b)
 const 
  143 template <
typename T>
 
  146   typedef T first_argument_type;
 
  147   typedef T second_argument_type;
 
  148   typedef bool result_type;
 
  150   KOKKOS_FORCEINLINE_FUNCTION
 
  151   bool operator()(T 
const & a, T 
const & b)
 const 
  156 template <
typename T>
 
  159   typedef T first_argument_type;
 
  160   typedef T second_argument_type;
 
  161   typedef bool result_type;
 
  163   KOKKOS_FORCEINLINE_FUNCTION
 
  164   bool operator()(T 
const & a, T 
const & b)
 const 
  171 #endif //KOKKOS_FUNCTIONAL_HPP