HashFunctions.h 364 B

1234567891011121314151617181920
  1. #pragma once
  2. #include "Types.h"
  3. inline unsigned int_hash(dword key)
  4. {
  5. key += ~(key << 15);
  6. key ^= (key >> 10);
  7. key += (key << 3);
  8. key ^= (key >> 6);
  9. key += ~(key << 11);
  10. key ^= (key >> 16);
  11. return key;
  12. }
  13. inline unsigned pair_int_hash(dword key1, dword key2)
  14. {
  15. return int_hash((int_hash(key1) * 209) ^ (int_hash(key2 * 413)));
  16. }