package utils import "math" func f(x, a float64) float64 { return math.Exp(x) - a } func Ln(n float64) float64 { var lo, hi, m float64 if n <= 0 { return -1 } if n == 1 { return 0 } EPS := 0.00001 lo = 0 hi = n for math.Abs(lo-hi) >= EPS { m = float64((lo + hi) / 2.0) if f(m, n) < 0 { lo = m } else { hi = m } } return float64((lo + hi) / 2.0) } func MinInt(x, y int) int { if x < y { return x } return y } func MaxInt(x, y int) int { if x < y { return y } return x } func MinInt64(x, y int64) int64 { if x < y { return x } return y }