18 #ifndef viskores_Hash_h
19 #define viskores_Hash_h
38 template <
typename InVecType>
49 hash = (hash * FNV1A_PRIME) ^ dataBits;
57 template <
typename InVecType>
70 hash = (hash * FNV1A_PRIME) ^ upperDataBits;
73 hash = (hash * FNV1A_PRIME) ^ lowerDataBits;
81 template <
typename NumericTag, std::
size_t DataSize>
87 template <
typename InVecType>
90 return viskores::detail::HashFNV1a32(inVec);
97 template <
typename InVecType>
100 return viskores::detail::HashFNV1a64(inVec);
116 template <
typename InVecType>
122 using Chooser = detail::HashChooser<
typename ComponentTraits::NumericTag,
sizeof(ComponentType)>;
128 #endif //viskores_Hash_h