/src/main/java/net/finmath/marketdata/products/SwapLeg.java
final double discountFactor = discountCurve.getDiscountFactor( model, paymentDate) ;
final double discountFactor = paymentDate > cashFlowEffectiveTime ? discountCurve.getDiscountFactor ( model, paymentDate ) : 0.0;
forward += forwardCurve.getForward(model, fixingDate, paymentDate-fixingDate); } double notional = notionals != null ? notionals[periodIndex] : 1.0; if(discountCurveForNotionalReset != null && discountCurveForNotionalReset != discountCurve) { notional *= discountCurveForNotionalReset.getDiscountFactor(model,periodStart) / discountCurve.getDiscountFactor(model,periodStart); } <extra_id_0> value += notional * forward * periodLength * discountFactor; if(isNotionalExchanged) { value += periodEnd > cashFlowEffectiveTime ? notional * discountCurve.getDiscountFactor(model, periodEnd) : 0.0; value -= periodStart > cashFlowEffectiveTime ? notional * discountCurve.getDiscountFactor(model, periodStart) : 0.0; } }