package org.streaminer.stream.frequency.decay; public class LogDecayFormula implements DecayFormula { private Double lifeTime; public LogDecayFormula(long lifeTimeInSeconds) { lifeTime = Double.valueOf(lifeTimeInSeconds) * 1000; } public Double evaluate(Double value, Double t) { if (t < 0 || t >= lifeTime ) { return 0.0; } else { return value + 1 - Math.pow(Math.E, Math.log(value + 1)/lifeTime*t); } } }