/src/main/java/net/finmath/montecarlo/interestrate/products/Swaption.java
final double forwardBondOnForwardCurve = discountCurveFromForwardCurve.getDiscountFactor( analyticModel, paymentDate) / discountCurveFromForwardCurve.getDiscountFactor( analyticModel, paymentDate) ;
final double forwardBondOnForwardCurve = discountCurveFromForwardCurve.getDiscountFactor ( analyticModel, discountingDate ) / discountCurveFromForwardCurve.getDiscountFactor ( analyticModel, paymentDate ) ;
double discountingAdjustment = 1.0; 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); <extra_id_0> final double forwardBondOnDiscountCurve = discountCurve.getDiscountFactor(analyticModel, discountingDate) / discountCurve.getDiscountFactor(analyticModel, paymentDate); discountingAdjustment = forwardBondOnForwardCurve / forwardBondOnDiscountCurve; } valueOfSwapAtExerciseDate = valueOfSwapAtExerciseDate.add(payoff); valueOfSwapAtExerciseDate = valueOfSwapAtExerciseDate.discount(libor, paymentDate - discountingDate).mult(discountingAdjustment); }