Skip to main content

luaur_bytecode/functions/
ceillog_2.rs

1use crate::functions::log_2::log2;
2use luaur_common::LUAU_ASSERT;
3
4#[allow(non_snake_case)]
5pub(crate) fn ceillog2(v: i32) -> i32 {
6    LUAU_ASSERT!(v > 0);
7
8    if v == 1 {
9        0
10    } else {
11        log2(v - 1) + 1
12    }
13}
14
15#[allow(non_snake_case)]
16pub(crate) fn ceillog_2(v: i32) -> i32 {
17    ceillog2(v)
18}