aoc24/util/math.go

26 lines
330 B
Go

package util
type Unsigned interface {
int | int8 | int16 | int32 | int64 | float32 | float64
}
func MaxI[T Unsigned](x ...T) T {
if len(x) == 0 {
return 0
}
tmp := x[0]
for _, v := range x {
if tmp < v {
tmp = v
}
}
return tmp
}
func AbsI[T Unsigned](a T) T {
if a > 0 {
return a
} else {
return -a
}
}