docs: public float addValue(final float value) {
      long now = System.currentTimeMillis();
      // If more than 15 seconds passed then clear the data since it is
      // too old at this point.
      if (now - this.last_time > this.ageGap) {
        this.reset();
      }
      this.last_time = now;
      if (this.sizeHistory < this.maxHistory) {
        this.sum += value;
        this.sum_squares += Math.pow(value, 2);
        ++this.sizeHistory;
      } else {
        Float oldest_val = this.history.poll();
        if (oldest_val != null) {
          this.sum = this.sum - oldest_val.floatValue() + value;
          this.sum_squares = this.sum_squares - (float)Math.pow(oldest_val.floatValue(),2) + (float)Math
                  .pow(value, 2);
        } else {
          log.warn("Could not poll history to update variance.");
        }
      }
      this.history.offer(Float.valueOf(value));
  
      float degrees_of_freedom = this.sizeHistory - 1;
      if (degrees_of_freedom < 1.0) {
        return 0f;
      }
      this.currentVariance = (this.sum_squares - ((float)Math.pow(this.sum,2) / this.sizeHistory))
          / degrees_of_freedom;
      return this.currentVariance;
  
    }