Files
OrangeDream/src/lib/running_average.lua
T

28 lines
631 B
Lua

local running_average = {
trackers = {}
}
local trackers = running_average.trackers
running_average.track = function(name, value)
if not trackers[name] then
trackers[name] = { running_total = 0, count = 0, }
end
local track = trackers[name]
track.running_total = track.running_total + value
track.count = track.count + 1
return track.running_total / track.count
end
running_average.average = function(name)
return trackers[name] and trackers[name].running_total / trackers[name].count
end
running_average.count = function(name)
return trackers[name] and trackers[name].count
end
return running_average