correction of several small bugs

This commit is contained in:
Eric Coissac
2024-09-03 06:08:07 -03:00
parent 373464cb06
commit 65ae82622e
22 changed files with 770 additions and 79 deletions

View File

@ -1,11 +1,9 @@
package obistats
func Max[T int64 | int32 | int16 | int8 | int | float32 | float64] (data []T) T {
func Max[T int64 | int32 | int16 | int8 | int | float32 | float64](data []T) T {
m := data[0]
for _,v := range data {
for _, v := range data {
if v > m {
m = v
}
@ -14,14 +12,34 @@ func Max[T int64 | int32 | int16 | int8 | int | float32 | float64] (data []T) T
return m
}
func Min[T int64 | int32 | int16 | int8 | int | float32 | float64] (data []T) T {
func Min[T int64 | int32 | int16 | int8 | int | uint64 | uint32 | uint16 | uint8 | uint | float32 | float64](data []T) T {
m := data[0]
for _,v := range data {
for _, v := range data {
if v < m {
m = v
}
}
return m
}
}
func Mode[T int64 | int32 | int16 | int8 | int | uint64 | uint32 | uint16 | uint8 | uint](data []T) T {
ds := make(map[T]int)
for _, v := range data {
ds[v]++
}
md := T(0)
maxocc := 0
for v, occ := range ds {
if occ > maxocc {
maxocc = occ
md = v
}
}
return md
}