@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
29 lines (24 loc) • 596 B
JavaScript
/**
* 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;
}