/src/main/java/net/finmath/montecarlo/interestrate/models/LIBORMarketModelStandard.java
final double nextStartTime = getLiborPeriod( previousStartIndex+1) ; final double previousStartTime = getLiborPeriod( previousStartIndex) ;
final double previousStartTime = getLiborPeriod ( previousStartIndex ) ; final double nextStartTime = getLiborPeriod ( previousStartIndex+1 ) ;
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; <extra_id_0> final RandomVariable liborLongPeriod = getForwardRate(process, time, previousStartTime, periodEnd); final RandomVariable liborShortPeriod = getForwardRate(process, time, previousStartTime, nextStartTime); RandomVariable libor = liborLongPeriod.mult(periodEnd-previousStartTime).add(1.0) .div( liborShortPeriod.mult(nextStartTime-previousStartTime).add(1.0).log().mult((periodStart-previousStartTime)/(nextStartTime-previousStartTime)).exp() ).sub(1.0).div(periodEnd-periodStart);