/src/main/java/net/finmath/montecarlo/interestrate/models/LIBORMarketModelStandard.java
return liborShortPeriod;
return libor;
final double analyticLibor = getForwardRateCurve().getForward(getAnalyticModel(), previousEndTime, periodEnd-previousEndTime); final double analyticLiborShortPeriod = getForwardRateCurve().getForward(getAnalyticModel(), previousEndTime, nextEndTime-previousEndTime); final double analyticInterpolatedOnePlusLiborDt = (1 + analyticLiborShortPeriod * (nextEndTime-previousEndTime)) / Math.exp(Math.log(1 + analyticLiborShortPeriod * (nextEndTime-previousEndTime)) * (nextEndTime-periodEnd)/(nextEndTime-previousEndTime)); final double analyticOnePlusLiborDt = (1 + analyticLibor * (periodEnd-previousEndTime)); final double adjustment = analyticOnePlusLiborDt / analyticInterpolatedOnePlusLiborDt; libor = libor.mult(periodEnd-periodStart).add(1.0).mult(adjustment).sub(1.0).div(periodEnd-periodStart); <extra_id_0> } if(periodStartIndex < 0) { final int previousStartIndex = (-periodStartIndex-1)-1; final double previousStartTime = getLiborPeriod(previousStartIndex); final double nextStartTime = getLiborPeriod(previousStartIndex+1); final RandomVariable liborLongPeriod = getForwardRate(process, time, previousStartTime, periodEnd);