package utils
|
|
import "github.com/shopspring/decimal"
|
|
func Average(numbers []decimal.Decimal) decimal.Decimal {
|
if len(numbers) == 0 {
|
return decimal.Decimal{}
|
}
|
if len(numbers) == 1 {
|
return numbers[0]
|
}
|
var sum decimal.Decimal
|
for _, d := range numbers {
|
sum = sum.Add(d)
|
}
|
return sum.Div(decimal.NewFromInt(int64(len(numbers))))
|
}
|
|
func Deviation(numbers []decimal.Decimal) decimal.Decimal {
|
if len(numbers) == 0 || len(numbers) == 1 {
|
return decimal.Decimal{}
|
}
|
avgNum := Average(numbers)
|
var diffSquaredSum decimal.Decimal
|
for _, n := range numbers {
|
diff := n.Sub(avgNum)
|
diffSquaredSum = diffSquaredSum.Add(diff.Mul(diff))
|
}
|
return diffSquaredSum.Div(decimal.NewFromInt(int64(len(numbers))))
|
}
|