code: public Double getTrend(final long timeDeltaThreshold) {
  		return processFunction(new SplitFunction<Double>() {
  			Split lastSplit;
  			long result;
  			int count;
  
  			public void evaluate(Split split) {
  				if (lastSplit == null) {
  					lastSplit = split;
  				} else {
  					long timeDelta = split.getStart() - lastSplit.getStart();
  					if (timeDelta > timeDeltaThreshold) {
  						long durationDelta = split.runningFor() - lastSplit.runningFor();
  						result += durationDelta;
  						count++;
  						lastSplit = split;
  					}
  				}
  			}
  
  			public Double result() {
  				return count > 0 ? (result / ((double) count)) : null;
  			}
  		});
  	}
docs: Compute a trend of duration: the average delta of splits between
  2 split spaced of at least the given threshold.
  The threshold is only here to avoid computing a delta between 2 splits
  occurring at the same time by 2 different threads.
  Sum(splits(t[n])-splits(t[n-1])/SizeOf(splits)
  
  @param timeDeltaThreshold Accepted splits space
  @return Trend, average delta of splits