-
Notifications
You must be signed in to change notification settings - Fork 3
/
math.go
75 lines (63 loc) · 1.19 KB
/
math.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package cs
import "math"
// population is often updated with floating point math, but we have to convert
// it back to Colonist Cargo values, which are stored in units of 100 colonists per 1kT of Colonist Cargo
func roundToNearest100f(value float64) int {
return int(math.Round(value/100) * 100)
}
func roundToNearest100(value int) int {
return int(math.Round(float64(value)/100) * 100)
}
func Clamp(value, min, max int) int {
if value < min {
return min
} else {
if value > max {
return max
}
}
return value
}
func ClampFloat64(value, min, max float64) float64 {
if value < min {
return min
} else {
if value > max {
return max
}
}
return value
}
func MaxInt(nums ...int) int {
result := math.MinInt
for _, value := range nums {
if value > result {
result = value
}
}
return result
}
func MinInt(nums ...int) int {
result := math.MaxInt
for _, value := range nums {
if value < result {
result = value
}
}
return result
}
func MinFloat64(nums ...float64) float64 {
result := math.MaxFloat64
for _, value := range nums {
if value < result {
result = value
}
}
return result
}
func AbsInt(num int) int {
if num < 0 {
return -num
}
return num
}