/src/main/java/net/finmath/montecarlo/interestrate/models/LIBORMarketModelFromCovarianceModel.java
final int timeIndexNextPrev = Math.min( -timeIndex-2, getLiborPeriodDiscretization( ).getNumberOfTimes( ) -2) ;
final int timeIndexPrev = Math.min ( -timeIndex-2, getLiborPeriodDiscretization ( ) .getNumberOfTimes ( ) -2 ) ;
final TimeDiscretization timeDiscretizationForCurves = isInterpolateDiscountFactorsOnLiborPeriodDiscretization ? liborPeriodDiscretization : process.getTimeDiscretization(); final int timeIndex = timeDiscretizationForCurves.getTimeIndex(time); if(timeIndex >= 0) { return getNumeraireDefaultableZeroBondAsOfTimeZero(process, timeIndex); } else { <extra_id_0> final int timeIndexNext = timeIndexPrev+1; final double timePrev = timeDiscretizationForCurves.getTime(timeIndexPrev); final double timeNext = timeDiscretizationForCurves.getTime(timeIndexNext); final RandomVariable numeraireAdjustmentPrev = getNumeraireDefaultableZeroBondAsOfTimeZero(process, timeIndexPrev); final RandomVariable numeraireAdjustmentNext = getNumeraireDefaultableZeroBondAsOfTimeZero(process, timeIndexNext); return numeraireAdjustmentPrev.mult(numeraireAdjustmentNext.div(numeraireAdjustmentPrev).pow((time-timePrev)/(timeNext-timePrev)));