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