/src/main/java/net/finmath/montecarlo/interestrate/products/SwaptionAnalyticApproximation.java
cachedLogSwaprateDerivativeDiscountCurve = new WeakReference<>( discountCurve) ;cachedLogSwaprateDerivativeTimeDiscretization = new WeakReference<>( liborPeriodDiscretization) ;
cachedLogSwaprateDerivativeTimeDiscretization = new WeakReference<> ( liborPeriodDiscretization ) ;
&& liborPeriodDiscretization == cachedLogSwaprateDerivativeTimeDiscretization.get() && discountCurve == cachedLogSwaprateDerivativeDiscountCurve.get() && forwardCurve == cachedLogSwaprateDerivativeForwardCurve.get() ) { return cachedLogSwaprateDerivative; } <extra_id_0> cachedLogSwaprateDerivativeDiscountCurve = new WeakReference<>(discountCurve); cachedLogSwaprateDerivativeForwardCurve = new WeakReference<>(forwardCurve); if(discountCurve == null) { discountCurve = new DiscountCurveFromForwardCurve(forwardCurve.getName()); } final AnalyticModelFromCurvesAndVols model = new AnalyticModelFromCurvesAndVols(new Curve[] { forwardCurve, discountCurve });