17 #ifndef KOKKOS_FUNCTIONAL_HPP
18 #define KOKKOS_FUNCTIONAL_HPP
19 #ifndef KOKKOS_IMPL_PUBLIC_INCLUDE
20 #define KOKKOS_IMPL_PUBLIC_INCLUDE
21 #define KOKKOS_IMPL_PUBLIC_INCLUDE_NOTDEFINED_FUNCTIONAL
24 #include <Kokkos_Macros.hpp>
25 #include <impl/Kokkos_Functional_impl.hpp>
33 KOKKOS_FORCEINLINE_FUNCTION
34 uint32_t operator()(T
const& t)
const {
35 return Impl::MurmurHash3_x86_32(&t,
sizeof(T), 0);
38 KOKKOS_FORCEINLINE_FUNCTION
39 uint32_t operator()(T
const& t, uint32_t seed)
const {
40 return Impl::MurmurHash3_x86_32(&t,
sizeof(T), seed);
46 KOKKOS_FORCEINLINE_FUNCTION
47 bool operator()(T
const& a, T
const& b)
const {
48 return Impl::bitwise_equal(&a, &b);
53 struct pod_not_equal_to {
54 KOKKOS_FORCEINLINE_FUNCTION
55 bool operator()(T
const& a, T
const& b)
const {
56 return !Impl::bitwise_equal(&a, &b);
62 KOKKOS_FORCEINLINE_FUNCTION
63 bool operator()(T
const& a, T
const& b)
const {
return a == b; }
68 KOKKOS_FORCEINLINE_FUNCTION
69 bool operator()(T
const& a, T
const& b)
const {
return a != b; }
74 KOKKOS_FORCEINLINE_FUNCTION
75 bool operator()(T
const& a, T
const& b)
const {
return a > b; }
80 KOKKOS_FORCEINLINE_FUNCTION
81 bool operator()(T
const& a, T
const& b)
const {
return a < b; }
85 struct greater_equal {
86 KOKKOS_FORCEINLINE_FUNCTION
87 bool operator()(T
const& a, T
const& b)
const {
return a >= b; }
92 KOKKOS_FORCEINLINE_FUNCTION
93 bool operator()(T
const& a, T
const& b)
const {
return a <= b; }
98 #ifdef KOKKOS_IMPL_PUBLIC_INCLUDE_NOTDEFINED_FUNCTIONAL
99 #undef KOKKOS_IMPL_PUBLIC_INCLUDE
100 #undef KOKKOS_IMPL_PUBLIC_INCLUDE_NOTDEFINED_FUNCTIONAL
102 #endif // KOKKOS_FUNCTIONAL_HPP