All files Utils.ts

100% Statements 33/33
92.86% Branches 13/14
100% Functions 6/6
100% Lines 27/27
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 413x   3x 3x 3x 3x   3x 24077x   3x 28175x   3x 28175x   3x 42x   3x 168x 140x 332x     168x       4704x 4704x 4704x 4704x 4704x 4704x 4704x 4704x 4704x      
export const BITS = 5;
 
export const SHIFT0 = 0;
export const SHIFT1 = SHIFT0 + BITS;
export const SHIFT2 = SHIFT1 + BITS;
export const SHIFT3 = SHIFT2 + BITS;
 
export const calculateOffset = (index: number, shift: number): number =>
  Math.floor(index / (1 << shift));
 
export const calculateRow = (index: number, shift: number): number =>
  (index >>> shift) & ((1 << BITS) - 1);
 
export const calculateMask = (index: number, shift: number): number =>
  1 << calculateRow(index, shift);
 
export const nextPowerOfTwo = (index: number): number =>
  Math.pow(2, Math.ceil(Math.log(index) / Math.log(2)));
 
export const copyArrays = (source: Uint32Array, target: Uint32Array): Uint32Array => {
  if (source) {
    for (var i = 0; i < source.length; i += 1) {
      target[i] = source[i];
    }
  }
  return target;
}
 
export function countTrailingZeros(v: number) {
  var c = 32
  v &= -v
  Eif (v) c--
  if (v & 0x0000FFFF) c -= 16
  if (v & 0x00FF00FF) c -= 8
  if (v & 0x0F0F0F0F) c -= 4
  if (v & 0x33333333) c -= 2
  if (v & 0x55555555) c -= 1
  return c
}