Codebase list golang-github-vbauerster-mpb / 8feb9fa
movingAverageETA: record zero n duration Vladimir Bauer 2 years ago
1 changed file(s) with 12 addition(s) and 6 deletion(s). Raw diff Collapse all Expand all
6262
6363 type movingAverageETA struct {
6464 WC
65 producer func(time.Duration) string
6566 average ewma.MovingAverage
6667 normalizer TimeNormalizer
67 producer func(time.Duration) string
68 zDur time.Duration
6869 }
6970
7071 func (d *movingAverageETA) Decor(s Statistics) (string, int) {
7778 }
7879
7980 func (d *movingAverageETA) EwmaUpdate(n int64, dur time.Duration) {
80 durPerItem := float64(dur) / float64(n)
81 if math.IsInf(durPerItem, 0) || math.IsNaN(durPerItem) {
82 return
83 }
84 d.average.Add(durPerItem)
81 if n <= 0 {
82 d.zDur += dur
83 } else {
84 durPerItem := float64(d.zDur+dur) / float64(n)
85 if math.IsInf(durPerItem, 0) || math.IsNaN(durPerItem) {
86 return
87 }
88 d.zDur = 0
89 d.average.Add(durPerItem)
90 }
8591 }
8692
8793 // AverageETA decorator. It's wrapper of NewAverageETA.