docs: private RandomVariable getV(double time, double maturity) {
  		if(time ==  maturity) {
  			return new Scalar(0.0);
  		}
  		int timeIndexStart = volatilityModel.getTimeDiscretization().getTimeIndex(time);
  		if(timeIndexStart < 0) {
  			timeIndexStart = -timeIndexStart-2;	// Get timeIndex corresponding to previous point
  		}
  
  		int timeIndexEnd =volatilityModel.getTimeDiscretization().getTimeIndex(maturity);
  		if(timeIndexEnd < 0) {
  			timeIndexEnd = -timeIndexEnd-2;	// Get timeIndex corresponding to previous point
  		}
  
  		RandomVariable integral = new Scalar(0.0);
  		double timePrev = time;
  		double timeNext;
  		RandomVariable expMRTimePrev = getMRTime(timePrev,maturity).mult(-1).exp();
  		for(int timeIndex=timeIndexStart+1; timeIndex<=timeIndexEnd; timeIndex++) {
  			timeNext = volatilityModel.getTimeDiscretization().getTime(timeIndex);
  			RandomVariable meanReversion = volatilityModel.getMeanReversion(timeIndex-1);
  			RandomVariable volatility = volatilityModel.getVolatility(timeIndex-1);
  			RandomVariable volatilityPerMeanReversionSquared = volatility.squared().div(meanReversion.squared());
  			RandomVariable expMRTimeNext = getMRTime(timeNext,maturity).mult(-1).exp();
  			integral = integral.add(volatilityPerMeanReversionSquared.mult(
  					expMRTimeNext.sub(expMRTimePrev).mult(-2).div(meanReversion)
  					.add( expMRTimeNext.squared().sub(expMRTimePrev.squared()).div(meanReversion).div(2.0))
  					.add(timeNext-timePrev)
  					));
  			timePrev = timeNext;
  			expMRTimePrev = expMRTimeNext;
  		}
  		timeNext = maturity;
  		RandomVariable meanReversion = volatilityModel.getMeanReversion(timeIndexEnd);
  		RandomVariable volatility = volatilityModel.getVolatility(timeIndexEnd);
  		RandomVariable volatilityPerMeanReversionSquared = volatility.squared().div(meanReversion.squared());
  		RandomVariable expMRTimeNext = getMRTime(timeNext,maturity).mult(-1).exp();
  		integral = integral.add(volatilityPerMeanReversionSquared.mult(
  				expMRTimeNext.sub(expMRTimePrev).mult(-2).div(meanReversion)
  				.add( expMRTimeNext.squared().sub(expMRTimePrev.squared()).div(meanReversion).div(2.0))
  				.add(timeNext-timePrev)
  				));
  
  		return integral;
  	}