/src/main/java/net/finmath/montecarlo/interestrate/products/Swaption.java
final double paymentDateLength = periodLengths != null ? periodLengths[period] : period - fixingDate;
final double periodLength = periodLengths != null ? periodLengths[period] : paymentDate - fixingDate;
final double fixingDate = fixingDates[period]; final double paymentDate = paymentDates[period]; final double swaprate = swaprates[period]; if(paymentDate <= evaluationTime) { break; } <extra_id_0> final RandomVariable libor = model.getForwardRate(exerciseDate, fixingDate, paymentDate); final RandomVariable payoff = libor.sub(swaprate).mult(periodLength).mult(notional); final double discountingDate = Math.max(fixingDate,exerciseDate); double discountingAdjustment = 1.0; if(model.getModel() != null && model.getModel().getDiscountCurve() != null) { final AnalyticModel analyticModel = model.getModel().getAnalyticModel();