point-hash.js 360 B

12345678910111213
  1. // TODO if quantized, use simpler Int32 hashing?
  2. var buffer = new ArrayBuffer(16),
  3. floats = new Float64Array(buffer),
  4. uints = new Uint32Array(buffer);
  5. export default function(point) {
  6. floats[0] = point[0];
  7. floats[1] = point[1];
  8. var hash = uints[0] ^ uints[1];
  9. hash = hash << 5 ^ hash >> 7 ^ uints[2] ^ uints[3];
  10. return hash & 0x7fffffff;
  11. }