Source: utils/bit-twiddle.js

/**
 * bit-twiddle v1.0.1
 * @see https://github.com/mikolalysenko/bit-twiddle
 */

//Checks if a number is a power of two
export function isPow2(v) {
  return !(v & (v - 1)) && (!!v);
}

//Rounds to next power of 2
export function nextPow2(v) {
  v += v === 0;
  --v;
  v |= v >>> 1;
  v |= v >>> 2;
  v |= v >>> 4;
  v |= v >>> 8;
  v |= v >>> 16;
  return v + 1;
}

//Computes log base 2 of v
/* eslint-disable */
export function log2 (v) {
  let r, shift;
  r =     (v > 0xFFFF) << 4; v >>>= r;
  shift = (v > 0xFF  ) << 3; v >>>= shift; r |= shift;
  shift = (v > 0xF   ) << 2; v >>>= shift; r |= shift;
  shift = (v > 0x3   ) << 1; v >>>= shift; r |= shift;
  return r | (v >> 1);
}
/* eslint-enable */
Documentation generated by JSDoc 3.4.3 on Fri Jul 09 2021 19:32:25 GMT+0800 (CST)