8 #include "../misc/randomness.h"
43 hashingSpaceSize(hashingSpaceSize),
47 std::uniform_int_distribution<unsigned long long> dis(0, hashingSpaceSize-1);
53 pPrime = pg.
getPrime(hashingSpaceSize, hashingSpaceSize*2, 0.00001);
58 return H(((lValue * element * element + mValue * element + nValue) % pPrime) % hashingSpaceSize) + offset;
63 this->offset = offset;
Encapsulates an STL random generator.
unsigned long long pPrime
Base class template for any hash function mapping an element from universe U to hashing space H...
CarterWegman(U universeSize, H hashingSpaceSize=std::numeric_limits< H >::max())
static RandomGenerator getRandomGenerator()
unsigned long long getPrime(unsigned long long lowerBound, unsigned long long upperBound, double errorProbability)
Returns a number [lowerBound, upperBound] which is prime with probablity 1-errorProbability.
void setOffset(H offset)
Sets the hash value offset (default is 0)
virtual H operator()(U const &element) const
H getOffset() const
Gets the hash value offset (default is 0)
Generates numbers which are (most likely) prime numbers.