From b196adffc7f1c5b0746af4ad8df7cc3bbc583dd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Schw=C3=B6rer?= Date: Tue, 9 May 2023 11:33:01 +0200 Subject: [PATCH] v0.0.118 --- mathext/math.go | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/mathext/math.go b/mathext/math.go index 6c5c69f..37575d2 100644 --- a/mathext/math.go +++ b/mathext/math.go @@ -22,6 +22,31 @@ func Max[T langext.OrderedConstraint](v1 T, v2 T) T { } } +func Max3[T langext.OrderedConstraint](v1 T, v2 T, v3 T) T { + result := v1 + if v2 > result { + result = v2 + } + if v3 > result { + result = v3 + } + return result +} + +func Max4[T langext.OrderedConstraint](v1 T, v2 T, v3 T, v4 T) T { + result := v1 + if v2 > result { + result = v2 + } + if v3 > result { + result = v3 + } + if v4 > result { + result = v4 + } + return result +} + func Min[T langext.OrderedConstraint](v1 T, v2 T) T { if v1 < v2 { return v1 @@ -30,6 +55,31 @@ func Min[T langext.OrderedConstraint](v1 T, v2 T) T { } } +func Min3[T langext.OrderedConstraint](v1 T, v2 T, v3 T) T { + result := v1 + if v2 < result { + result = v2 + } + if v3 < result { + result = v3 + } + return result +} + +func Min4[T langext.OrderedConstraint](v1 T, v2 T, v3 T, v4 T) T { + result := v1 + if v2 < result { + result = v2 + } + if v3 < result { + result = v3 + } + if v4 < result { + result = v4 + } + return result +} + func Abs[T langext.NumberConstraint](v T) T { if v < 0 { return -v