Ignite/utilities/math.go

31 lines
471 B
Go
Raw Normal View History

2022-11-30 06:41:50 +00:00
package utilities
import (
"golang.org/x/exp/constraints"
"math/bits"
)
func Min[T constraints.Ordered](v0 T, values ...T) (result T) {
result = v0
for _, v := range values {
if v < result {
result = v
}
}
return
}
func Max[T constraints.Ordered](v0 T, values ...T) (result T) {
result = v0
for _, v := range values {
if v > result {
result = v
}
}
return
}
func Log2[T constraints.Integer](v T) (result int) {
return bits.Len64(uint64(v))
}