'use strict'; const MIN_VALUE = -2147483648 | 0; const MAX_VALUE = 2147483647 | 0; function is(v) { return typeof v === "number" && isFinite(v) && (v | 0) === v; } function abs(x) { var m = x >> 31; return (x + m) ^ m; } function signEqual(x, y) { return (x ^ y) >= 0; } function isPow2(x) { return (x & (x - 1)) === 0; } function prevPow2(x) { return nextPow2(x + 1) >>> 1; } function nextPow2(x) { x--; x |= x >>> 1; x |= x >>> 2; x |= x >>> 4; x |= x >>> 8; x |= x >>> 16; return x + 1; } function pow2(x) { return 1 << x; } const POW10_VAL32 = [ 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000 ]; function pow10(x) { return x < 0 ? 0 : POW10_VAL32[x]; } const DEBRUIJN_POS32 = [ 0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31 ]; function log2(x) { x |= x >>> 1; x |= x >>> 2; x |= x >>> 4; x |= x >>> 8; x |= x >>> 16; return DEBRUIJN_POS32[(x * 0x07C4ACDD) >>> 27]; } function log10(x) { var a = ((log2(x) + 1) * 1233) >>> 12; return a - (x < POW10_VAL32[a] ? 1 : 0); } exports.MAX_VALUE = MAX_VALUE; exports.MIN_VALUE = MIN_VALUE; exports.abs = abs; exports.is = is; exports.isPow2 = isPow2; exports.log10 = log10; exports.log2 = log2; exports.nextPow2 = nextPow2; exports.pow10 = pow10; exports.pow2 = pow2; exports.prevPow2 = prevPow2; exports.signEqual = signEqual;