Files
ospab.host/node_modules/effect/dist/esm/internal/hashMap/bitwise.js
2025-09-15 18:10:26 +03:00

29 lines
609 B
JavaScript

import { MASK } from "./config.js";
/**
* Hamming weight.
*
* Taken from: http://jsperf.com/hamming-weight
*
* @internal
*/
export function popcount(x) {
x -= x >> 1 & 0x55555555;
x = (x & 0x33333333) + (x >> 2 & 0x33333333);
x = x + (x >> 4) & 0x0f0f0f0f;
x += x >> 8;
x += x >> 16;
return x & 0x7f;
}
/** @internal */
export function hashFragment(shift, h) {
return h >>> shift & MASK;
}
/** @internal */
export function toBitmap(x) {
return 1 << x;
}
/** @internal */
export function fromBitmap(bitmap, bit) {
return popcount(bitmap & bit - 1);
}
//# sourceMappingURL=bitwise.js.map