/src/main/java/net/finmath/marketdata/products/Cap.java
final SwapLeg annuityLeg = new SwapLeg( remainderSchedule, null, 7.0, discountCurveName, false) ;
final SwapLeg annuityLeg = new SwapLeg ( remainderSchedule, null, 1.0, discountCurveName, false ) ;
if(periods.size() > 1) { periods.remove(0); } remainderSchedule = new ScheduleFromPeriods(schedule.getReferenceDate(), periods, schedule.getDaycountconvention()); } final SwapLeg floatLeg = new SwapLeg(remainderSchedule, forwardCurveName, 0.0, discountCurveName, false); <extra_id_0> cachedATMForward = floatLeg.getValue(model) / annuityLeg.getValue(model); cacheStateModel = new SoftReference<>(model); cacheStateIsFirstPeriodIncluded = isFirstPeriodIncluded; return cachedATMForward; } public double getImpliedVolatility(final double evaluationTime, final AnalyticModel model, final VolatilitySurface.QuotingConvention quotingConvention) {