pub fun min(a: i64, b: i64) i64;
返回两个有符号整数中较小的一个
a:第一个值 b:第二个值 返回值:a 和 b 中较小者
pub fun max(a: i64, b: i64) i64;
返回两个有符号整数中较大的一个
a:第一个值 b:第二个值 返回值:a 和 b 中较大者
pub fun clamp(v: i64, lo: i64, hi: i64) i64;
将有符号整数限制在范围 [lo, hi] 内
v:要限制的值 lo:下界 hi:上界 返回值:被限制在 [lo, hi] 内的 v
pub fun abs(v: i64) i64;
返回有符号整数的绝对值
当输入为 I64_MIN 时在 I64_MAX 处饱和。
v:值 返回值:v 的绝对值
pub fun umin(a: u64, b: u64) u64;
返回两个无符号整数中较小的一个
a:第一个值 b:第二个值 返回值:a 和 b 中较小者
pub fun umax(a: u64, b: u64) u64;
返回两个无符号整数中较大的一个
a:第一个值 b:第二个值 返回值:a 和 b 中较大者
pub fun uclamp(v: u64, lo: u64, hi: u64) u64;
将无符号整数限制在范围 [lo, hi] 内
v:要限制的值 lo:下界 hi:上界 返回值:被限制在 [lo, hi] 内的 v
pub fun is_pow2(v: u64) bool;
检查一个值是否为 2 的幂
v:要检查的值 返回值:如果 v 是非零的 2 的幂,则为 true
pub fun next_pow2(v: u64) u64;
向上取整到下一个 2 的幂
如果 v 已经是 2 的幂则返回 v,如果 v 为 0 则返回 1。
v:要向上取整的值 返回值:下一个 >= v 的 2 的幂
pub fun log2(v: u64) u64;
计算以 2 为底的对数的向下取整(floor)
当 v == 0(未定义)时返回 0。
v:值 返回值:floor(log2(v))
pub fun ceil_div(a: u64, b: u64) u64;
两个无符号整数的向上取整除法(ceiling division)
a:被除数 b:除数(不能为 0) 返回值:ceil(a / b)
pub fun sat_add(a: i64, b: i64) i64;
饱和有符号加法
发生溢出时将结果限制在 [I64_MIN, I64_MAX] 范围内。
a:第一个操作数 b:第二个操作数 返回值:饱和后的 a + b
pub fun sat_sub(a: i64, b: i64) i64;
饱和有符号减法
发生溢出时将结果限制在 [I64_MIN, I64_MAX] 范围内。
a:第一个操作数 b:第二个操作数 返回值:饱和后的 a - b
pub fun sat_mul(a: i64, b: i64) i64;
饱和有符号乘法
发生溢出时将结果限制在 [I64_MIN, I64_MAX] 范围内。
a:第一个操作数 b:第二个操作数 返回值:饱和后的 a * b