Files
encoding.kt/src/commonMain/kotlin/com/infendro/encoding/util/Math.kt
2026-01-21 22:03:03 +01:00

28 lines
491 B
Kotlin

package com.infendro.encoding.util
import kotlin.math.log2
internal fun Int.divCeil(n: Int): Int =
(this + n - 1) / n
internal fun Int.align(n: Int): Int =
divCeil(n) * n
internal fun log2(value: Int): Double =
log2(value.toDouble())
internal fun gcd(a: Int, b: Int): Int {
var x = a
var y = b
while (y != 0) {
val temp = y
y = x % y
x = temp
}
return x
}
internal fun lcm(a: Int, b: Int): Int {
return (a * b) / gcd(a, b)
}