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