43 #include "Teuchos_Assert.hpp" 48 const int HashUtils::primeCount_ = 33;
49 const int HashUtils::primes_[]
50 = {11, 19, 37, 59, 101, 163, 271, 443, 733, 1187, 1907, 3061,
51 4919, 7759, 12379, 19543, 30841, 48487, 75989,
52 119089, 185971, 290347, 452027, 703657, 1093237,
53 1695781, 2627993, 4067599, 6290467, 9718019,
54 15000607, 23133937, 35650091};
57 int HashUtils::nextPrime(
int newCapacity)
61 "HashUtils::nextPrime() overflow");
63 for (
int i=0; i<primeCount_; i++)
65 if (newCapacity <= primes_[i])
73 "unexpected case in HashUtils::nextPrime()");
86 unsigned char *to =
reinterpret_cast<unsigned char *
>(&total);
88 for (
size_t i=0; i < len; i++){
98 size_t maxIntBeforeWrap = std::numeric_limits<int>::max();
100 total += maxIntBeforeWrap;
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
Macro for throwing an exception with breakpointing to ease debugging.
static int getHashCode(const unsigned char *a, size_t len)
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos, as well as a number of utility routines.
Utilities for generating hashcodes.