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) }