|
- package math2
-
- import "golang.org/x/exp/constraints"
-
- func Max[T constraints.Ordered](v1, v2 T) T {
- if v1 < v2 {
- return v2
- }
-
- return v1
- }
-
- func Min[T constraints.Ordered](v1, v2 T) T {
- if v1 < v2 {
- return v1
- }
-
- return v2
- }
-
- func Ceil[T constraints.Integer](v T, div T) T {
- return (v + div - 1) / div * div
- }
-
- func Floor[T constraints.Integer](v T, div T) T {
- return v / div * div
- }
-
- func CeilDiv[T constraints.Integer](v T, div T) T {
- return (v + div - 1) / div
- }
-
- func FloorDiv[T constraints.Integer](v T, div T) T {
- return v / div
- }
-
- func Clamp[T constraints.Integer](v, min, max T) T {
- if v < min {
- return min
- }
-
- if v > max {
- return max
- }
-
- return v
- }
|