in algebird-core/src/main/scala/com/twitter/algebird/DecayingCMS.scala [321:343]
def range: (DoubleAt, DoubleAt) = {
var minMinimum = Double.PositiveInfinity
var minMaximum = Double.PositiveInfinity
var i = 0
while (i < cells.length) {
val it = cells(i).iterator
var localMax = it.next() // we know it doesn't start empty
if (localMax < minMinimum) minMinimum = localMax
while (it.hasNext) {
val n = it.next()
if (n > localMax) localMax = n
else if (n < minMinimum) minMinimum = n
}
if (localMax < minMaximum) minMaximum = localMax
i += 1
}
val s = scale
def sc(x: Double): DoubleAt =
new DoubleAt(if (x == 0.0) 0.0 else x * s, timeInHL)
(sc(minMinimum), sc(minMaximum))
}