Mathematical mean helper.

This commit is contained in:
Kistaro Windrider 2023-05-13 20:13:05 -07:00
parent e61d7571f0
commit 816b5e8e7a
Signed by: kistaro
SSH Key Fingerprint: SHA256:TBE2ynfmJqsAf0CP6gsflA0q5X5wD5fVKWPsZ7eVUg8

22
koboldsim/util.go Normal file
View File

@ -0,0 +1,22 @@
package koboldsim
import "math"
// Generic helper functions not directly attached to Card Sim Engine mechanics.
// Mean calculates the mathematical mean of its arguments (the sum, divided
// by the number of elements). If it is called with no arguments, it returns
// NaN ("not a number"). If there are contradictory infinities among the
// arguments, it also returns NaN. Overflowing or underflowing can create an
// infinity.
func Mean(vals ...float64) float64 {
if len(vals) == 0 {
return math.NaN()
}
total := 0.0
for _, x := range vals {
total += x
}
return total / float64(len(vals))
}