/
githubmirror
/
pixijs
Обзор
Документация
Войти
/
githubmirror
/
pixijs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
src/maths/misc/pow2.ts
60 строк
1 KB
Zyie
chore: add standard/advanced tags to documentation (#11448)
03 июн 2025, 10:12
Не верифицирован
03 июн 2025, 10:12
7d91234
Код
Авторство
О чём код?
// Taken from the bit-twiddle package /** * Rounds to next power of two. * @function nextPow2 * @param {number} v - input value * @returns {number} - next rounded power of two * @category maths * @advanced */ export function nextPow2(v: number): number { v += v === 0 ? 1 : 0; --v; v |= v >>> 1; v |= v >>> 2; v |= v >>> 4; v |= v >>> 8; v |= v >>> 16; return v + 1; } /** * Checks if a number is a power of two. * @function isPow2 * @param {number} v - input value * @returns {boolean} `true` if value is power of two * @category maths * @advanced */ export function isPow2(v: number): boolean { return !(v & (v - 1)) && (!!v); } /** * Computes ceil of log base 2 * @function log2 * @param {number} v - input value * @returns {number} logarithm base 2 * @category maths * @advanced */ export function log2(v: number): number { let r = (v > 0xFFFF ? 1 : 0) << 4; v >>>= r; let shift = (v > 0xFF ? 1 : 0) << 3; v >>>= shift; r |= shift; shift = (v > 0xF ? 1 : 0) << 2; v >>>= shift; r |= shift; shift = (v > 0x3 ? 1 : 0) << 1; v >>>= shift; r |= shift; return r | (v >> 1); }