UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

29 lines (24 loc) 596 B
/** * Integer square root * * @author Jim Ulery (attributed on hextreme) * @see https://en.wikipedia.org/wiki/Integer_square_root * @see https://git.immc.ucl.ac.be/hextreme/hxt_seqdel/-/blob/master/src/hxt_tetrahedra.c#L54 * * @param {number} input * @returns {number} */ export function isqrt(input) { let temp; let g = 0; let b = 0x8000; let bshft = 15; let val = input; do { if (val >= (temp = (((g << 1) + b) << bshft--))) { g += b; val -= temp; } } while (b >>= 1); return g; }