implement numeric encodings, optimize

This commit is contained in:
2026-01-17 12:27:41 +01:00
parent 45d74d9cff
commit 55faf1d670
22 changed files with 355 additions and 249 deletions

View File

@@ -2,14 +2,16 @@ package com.infendro.encoding.util
import kotlin.math.log2
internal fun log2(
value: Int,
) = log2(value.toDouble())
internal fun log2(value: Int): Double =
log2(value.toDouble())
internal fun gcd(
a: Int,
b: Int,
): Int {
internal fun Int.divCeil(n: Int): Int =
(this + n - 1) / n
internal fun Int.align(n: Int): Int =
divCeil(n) * n
internal fun gcd(a: Int, b: Int): Int {
var x = a
var y = b
while (y != 0) {
@@ -20,9 +22,6 @@ internal fun gcd(
return x
}
internal fun lcm(
a: Int,
b: Int,
): Int {
internal fun lcm(a: Int, b: Int): Int {
return (a * b) / gcd(a, b)
}