public void deleteOldValues(final long now) {
			this.checkTime(now);
			final long minTime = now - this.windowLength;
			boolean deleted = false;
			while (this.size > 0) {
				if (this.times[this.ringTail] < minTime) {
					final float value = this.values[this.ringTail];
					this.delete();
					deleted = true;
					this.sum -= value;
					this.sumquadrat -= value * value;
					if ((this.cachedMaximum != null) && (this.cachedMaximum != Ring.CLEARED) && FloatHelper.equals(value, this.cachedMaximum.value(), AFixedTimeWindowTest.PRECISION)) {
						this.cachedMaximum = Ring.CLEARED; // we lost the maximum. we have to check all values to find the new minimum.
					}
					if ((this.cachedMinimum != null) && (this.cachedMinimum != Ring.CLEARED) && FloatHelper.equals(value, this.cachedMinimum.value(), AFixedTimeWindowTest.PRECISION)) {
						this.cachedMinimum = Ring.CLEARED; // we lost the minimum. we have to check all values to find the new minimum.
					}
				} else {
					break;
				}
			}
			if (deleted == true) {
				this.cachedAvergage = Float.POSITIVE_INFINITY;
				this.cachedVariance = Float.POSITIVE_INFINITY;
				this.cachedDeviation = Float.POSITIVE_INFINITY;
				this.cachedMedian = Float.POSITIVE_INFINITY;
			}
		}