implement numeric encodings, optimize
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user