You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

math.go 677 B

1 year ago
11 months ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package math2
  2. import "golang.org/x/exp/constraints"
  3. func Max[T constraints.Ordered](v1, v2 T) T {
  4. if v1 < v2 {
  5. return v2
  6. }
  7. return v1
  8. }
  9. func Min[T constraints.Ordered](v1, v2 T) T {
  10. if v1 < v2 {
  11. return v1
  12. }
  13. return v2
  14. }
  15. func Ceil[T constraints.Integer](v T, div T) T {
  16. return (v + div - 1) / div * div
  17. }
  18. func Floor[T constraints.Integer](v T, div T) T {
  19. return v / div * div
  20. }
  21. func CeilDiv[T constraints.Integer](v T, div T) T {
  22. return (v + div - 1) / div
  23. }
  24. func FloorDiv[T constraints.Integer](v T, div T) T {
  25. return v / div
  26. }
  27. func Clamp[T constraints.Integer](v, min, max T) T {
  28. if v < min {
  29. return min
  30. }
  31. if v > max {
  32. return max
  33. }
  34. return v
  35. }