/src/main/java/net/finmath/montecarlo/interestrate/products/Swaption.java
final double forwardBondOnDiscountCurve = discountCurve.getDiscountFactor( discountingDate) / discountCurve.getDiscountFactor( analyticModel, paymentDate) ;
final double forwardBondOnDiscountCurve = discountCurve.getDiscountFactor ( analyticModel, discountingDate ) / discountCurve.getDiscountFactor ( analyticModel, paymentDate ) ;
if(model.getModel() != null && model.getModel().getDiscountCurve() != null) { final AnalyticModel analyticModel = model.getModel().getAnalyticModel(); final DiscountCurve discountCurve = model.getModel().getDiscountCurve(); final ForwardCurve forwardCurve = model.getModel().getForwardRateCurve(); final DiscountCurve discountCurveFromForwardCurve = new DiscountCurveFromForwardCurve(forwardCurve); final double forwardBondOnForwardCurve = discountCurveFromForwardCurve.getDiscountFactor(analyticModel, discountingDate) / discountCurveFromForwardCurve.getDiscountFactor(analyticModel, paymentDate); <extra_id_0> discountingAdjustment = forwardBondOnForwardCurve / forwardBondOnDiscountCurve; } valueOfSwapAtExerciseDate = valueOfSwapAtExerciseDate.add(payoff); valueOfSwapAtExerciseDate = valueOfSwapAtExerciseDate.discount(libor, paymentDate - discountingDate).mult(discountingAdjustment); } RandomVariable values = valueOfSwapAtExerciseDate.floor(0.0);