1 #ifndef WARPCORE_CHECKS_CUH
2 #define WARPCORE_CHECKS_CUH
12 HOSTDEVICEQUALIFIER INLINEQUALIFIER
31 HOSTDEVICEQUALIFIER INLINEQUALIFIER
35 std::is_same<T, std::uint32_t>::value ||
36 std::is_same<T, std::uint64_t>::value);
40 HOSTDEVICEQUALIFIER INLINEQUALIFIER
43 return is_valid_key_type<T>();
47 HOSTDEVICEQUALIFIER INLINEQUALIFIER
50 return std::is_trivially_copyable<T>::value;
54 HOSTDEVICEQUALIFIER INLINEQUALIFIER
58 std::is_same<T,
int>::value ||
59 std::is_same<T, std::uint32_t>::value ||
60 std::is_same<T, std::uint64_t>::value);
64 HOSTDEVICEQUALIFIER INLINEQUALIFIER
68 std::is_same<
typename T::tag, tags::hasher>::value ||
69 std::is_same<
typename T::tag, tags::true_permutation_hasher>::value;
73 HOSTDEVICEQUALIFIER INLINEQUALIFIER
76 return std::is_same<
typename T::tag, tags::true_permutation_hasher>::value;
80 HOSTDEVICEQUALIFIER INLINEQUALIFIER
84 std::is_same<
typename T::tag, tags::probing_scheme>::value ||
85 std::is_same<
typename T::tag, tags::cycle_free_probing_scheme>::value;
89 HOSTDEVICEQUALIFIER INLINEQUALIFIER
92 return std::is_same<
typename T::tag, tags::cycle_free_probing_scheme>::value;
96 HOSTDEVICEQUALIFIER INLINEQUALIFIER
99 return std::is_same<
typename T::tag, tags::key_value_storage>::value;
103 HOSTDEVICEQUALIFIER INLINEQUALIFIER
107 std::is_same<
typename T::tag, tags::static_value_storage>::value ||
108 std::is_same<
typename T::tag, tags::dynamic_value_storage>::value;
112 HOSTDEVICEQUALIFIER INLINEQUALIFIER
115 return std::is_same<
typename T::tag, tags::status_handler>::value;