def range:()

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))
    }