public RandomVariableInterface[] getDrift(int timeIndex, RandomVariableInterface[] realizationAtTimeIndex, RandomVariableInterface[] realizationPredictor) {

		RandomVariableInterface[] drift = new RandomVariableInterface[getNumberOfComponents()];

		/*
		 * We implemented several different methods to calculate the drift
		 */
		for(int componentIndex=0; componentIndex<getNumberOfComponents(); componentIndex++) {
			drift[componentIndex] = getDrift(timeIndex, componentIndex, realizationAtTimeIndex, realizationPredictor);
		}
		return drift;
	}
public RandomVariableInterface [ ] getDrift ( int timeIndex , RandomVariableInterface [ ] realizationAtTimeIndex , RandomVariableInterface [ ] realizationPredictor ) { RandomVariableInterface [ ] drift = new RandomVariableInterface [ getNumberOfComponents ( ) ] ; for ( int componentIndex = 0 ; componentIndex < getNumberOfComponents ( ) ; componentIndex ++ ) { drift [ componentIndex ] = getDrift ( timeIndex , componentIndex , realizationAtTimeIndex , realizationPredictor ) ; } return drift ; }
Get the the drift.

@param timeIndex The time index (related to the model times discretization).
@param realizationAtTimeIndex The given realization at timeIndex
@param realizationPredictor The given realization at <code>timeIndex+1</code> or null of no predictor is available.
@return The (average) drift from timeIndex to timeIndex+1