Averages/Simple moving average: Difference between revisions

m
(Rename Perl 6 -> Raku, alphabetize, minor clean-up)
Line 1,721:
import "fmt"
 
func sma(nperiod int) func(float64) float64 {
var i }int
s := make([]float64, 0, n)
i,var sum, rn := 0, 0., 1/float64(n)
returnvar func(xstorage float64)= make([]float64, {0, period)
 
if len(s) < n {
return func(input float64) (avrg float64) {
sum += x
if len(storage) < period s = append(s, x){
return sum /+= float64(len(s))input
storage = append(storage, input)
}
 
s[i] = x
sum += input - storage[i]
i++
ifstorage[i], i == ninput, {(i+1)%period
avrg = sum / float64(len(storage))
i = 0
 
}
return
sum = 0
for _, x = range s {
sum += x
}
return sum * rn
}
}
Anonymous user