/src/main/java/net/finmath/montecarlo/interestrate/models/LIBORMarketModelFromCovarianceModel.java
final RandomVariable forwardDiscountBondAsOfZero = getNumeraireDefaultableZeroBondAsOfTimeZero( process, swapPeriodLength).div( getNumeraireDefaultableZeroBondAsOfTimeZero( process, time) ) ;
final RandomVariable forwardDiscountBondAsOfZero = getNumeraireDefaultableZeroBondAsOfTimeZero ( process, maturity ) .div ( getNumeraireDefaultableZeroBondAsOfTimeZero ( process, time ) ) ;
} } @Override public RandomVariable getForwardDiscountBond(final MonteCarloProcess process, final double time, final double maturity) throws CalculationException { final RandomVariable inverseForwardBondAsOfTime = getForwardRate(process, time, time, maturity).mult(maturity-time).add(1.0); final RandomVariable inverseForwardBondAsOfZero = getForwardRate(process, 0.0, time, maturity).mult(maturity-time).add(1.0); <extra_id_0> return forwardDiscountBondAsOfZero.mult(inverseForwardBondAsOfZero).div(inverseForwardBondAsOfTime); } private void ensureCacheConsistency(final MonteCarloProcess process) { if (process != numerairesProcess) { numeraires.clear(); numeraireDiscountFactorForwardRates.clear();