X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fcore%2Fhash.cpp;h=aed9ed19d2aa522c33b9e047c1d2bca7b89e87ec;hp=fe5e339c5aedc9ff0691ada988705fa0e6949898;hb=HEAD;hpb=062b200b08ec5998c4c02326e1e7b4e71fe4a5c6 diff --git a/source/core/hash.cpp b/source/core/hash.cpp deleted file mode 100644 index fe5e339..0000000 --- a/source/core/hash.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include -#include "hash.h" - -using namespace std; - -namespace Msp { - -/* -http://en.wikipedia.org/wiki/Fowler-Noll-Vo_hash_function -http://www.isthe.com/chongo/tech/comp/fnv/index.html -*/ - -UInt32 hash32(const void *data, unsigned size, unsigned bits) -{ - if(bits==0 || bits>32) - throw invalid_argument("hash32"); - - static const unsigned prime = 16777619; - static const unsigned offset = 2166136261U; - - unsigned result = offset; - for(unsigned i=0; i(data)+i))*prime; - - if(bits<32) - result = (result>>bits ^ result) & ((1<64) - throw invalid_argument("hash64"); - - static const UInt64 prime = 1099511628211ULL; - static const UInt64 offset = 14695981039346656037ULL; - - UInt64 result = offset; - for(unsigned i=0; i(data)+i))*prime; - - if(bits<64) - result = (result>>bits ^ result) & ((1ULL<