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