@@ -75,14 +75,14 @@ func (a *FloatAggregator) UpdateExpr(col string, bucket int) string {
75
75
}
76
76
77
77
func (a * FloatAggregator ) InitExpr (col string , buckets int ) string {
78
- return fmt .Sprintf ("_%s_%s=init_array(%d,'double');" , col , a .attr , buckets )
78
+ return fmt .Sprintf ("_%s_%s=init_array(%d,'double',%f );" , col , a .attr , buckets , a . val )
79
79
}
80
80
81
81
// Sum Aggregator
82
82
type SumAggregator struct { FloatAggregator }
83
83
84
84
func (a * SumAggregator ) Aggregate (t int64 , v float64 ) {
85
- if ! math . IsNaN (v ) {
85
+ if utils . IsDefined (v ) {
86
86
a .val += v
87
87
}
88
88
}
@@ -91,18 +91,18 @@ func (a *SumAggregator) Aggregate(t int64, v float64) {
91
91
type SqrAggregator struct { FloatAggregator }
92
92
93
93
func (a * SqrAggregator ) Aggregate (t int64 , v float64 ) {
94
- if ! math . IsNaN (v ) {
94
+ if utils . IsDefined (v ) {
95
95
a .val += v * v
96
96
}
97
97
}
98
98
99
99
// Minimum Aggregator
100
100
type MinAggregator struct { FloatAggregator }
101
101
102
- func (a * MinAggregator ) Clear () { a .val = math .MaxFloat64 } // TODO: use math. Inf(1)
102
+ func (a * MinAggregator ) Clear () { a .val = math .Inf (1 ) }
103
103
104
104
func (a * MinAggregator ) Aggregate (t int64 , v float64 ) {
105
- if ! math . IsNaN ( v ) && ( math . IsNaN ( a . val ) || v < a .val ) {
105
+ if v < a .val {
106
106
a .val = v
107
107
}
108
108
}
@@ -114,10 +114,10 @@ func (a *MinAggregator) UpdateExpr(col string, bucket int) string {
114
114
// Maximum Aggregator
115
115
type MaxAggregator struct { FloatAggregator }
116
116
117
- func (a * MaxAggregator ) Clear () { a .val = - math .MaxFloat64 } // TODO: use math. Inf(-1)
117
+ func (a * MaxAggregator ) Clear () { a .val = math .Inf (- 1 ) }
118
118
119
119
func (a * MaxAggregator ) Aggregate (t int64 , v float64 ) {
120
- if ! math . IsNaN ( v ) && ( math . IsNaN ( a . val ) || v > a .val ) {
120
+ if v > a .val {
121
121
a .val = v
122
122
}
123
123
}
@@ -132,7 +132,7 @@ type LastAggregator struct {
132
132
lastT int64
133
133
}
134
134
135
- func (a * LastAggregator ) Clear () { a .val = - math .MaxFloat64 } // TODO: use math. Inf(1)
135
+ func (a * LastAggregator ) Clear () { a .val = math .Inf (- 1 ) }
136
136
137
137
func (a * LastAggregator ) Aggregate (t int64 , v float64 ) {
138
138
if t > a .lastT {
@@ -142,7 +142,7 @@ func (a *LastAggregator) Aggregate(t int64, v float64) {
142
142
}
143
143
144
144
func (a * LastAggregator ) UpdateExpr (col string , bucket int ) string {
145
- if math . IsNaN (a .val ) {
145
+ if utils . IsUndefined (a .val ) {
146
146
return ""
147
147
}
148
148
0 commit comments