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