]> git.tdb.fi Git - libs/core.git/commitdiff
Add folding functions for hashes
authorMikko Rasa <tdb@tdb.fi>
Sat, 3 Apr 2021 15:44:36 +0000 (18:44 +0300)
committerMikko Rasa <tdb@tdb.fi>
Sat, 3 Apr 2021 15:44:36 +0000 (18:44 +0300)
source/core/hash.h

index 75aba09a57d8e04dfb0a06cdf05f29d90f4c3f4a..d696cae5b63542e65d6718f1012d0606b9f55833 100644 (file)
@@ -31,6 +31,12 @@ Convenience function to compute a 64-bit hash of a string.
 inline UInt64 hash64(const std::string &s, unsigned b = 64)
 { return hash64(s.data(), s.size(), b); }
 
+inline UInt32 fold32(UInt64 hash)
+{ return hash^(hash>>32); }
+
+inline UInt16 fold16(UInt64 hash)
+{ return hash^(hash>>16)^(hash>>32)^(hash>>48); }
+
 } // namespace Msp
 
 #endif