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