code: private RandomVariable getShortRate(int timeIndex) throws CalculationException {
  		double time = getProcess().getTime(timeIndex);
  		double timePrev = timeIndex > 0 ? getProcess().getTime(timeIndex-1) : time;
  		double timeNext = getProcess().getTime(timeIndex+1);
  
  		RandomVariable zeroRate = getZeroRateFromForwardCurve(time); //getDiscountFactorFromForwardCurve(time).div(getDiscountFactorFromForwardCurve(timeNext)).log().div(timeNext-time);
  
  		RandomVariable alpha = getDV(0, time);
  
  		RandomVariable value = getProcess().getProcessValue(timeIndex, 0);
  		value = value.add(alpha);
  		//		value = value.sub(Math.log(value.exp().getAverage()));
  
  		value = value.add(zeroRate);
  
  		return value;
  	}
docs: Returns the "short rate" from timeIndex to timeIndex+1.
  
  @param timeIndex The time index (corresponding to {@link getTime()).
  @return The "short rate" from timeIndex to timeIndex+1.
  @throws CalculationException Thrown if simulation failed.