/src/main/java/net/finmath/montecarlo/interestrate/products/SwaptionSingleCurveAnalyticApproximation.java
final int swapAnnuity   =  swapAnnuities[0];
final double swapAnnuity  = swapAnnuities[0];
return new Scalar(integratedSwapRateVariance); } final double volatility = Math.sqrt(integratedSwapRateVariance / swapStart); if(valueUnit == ValueUnit.VOLATILITYLOGNORMAL || valueUnit == ValueUnit.VOLATILITY) { return new Scalar(volatility); } <extra_id_0> final double parSwaprate = (discountFactors[0] - discountFactors[swapEndIndex-swapStartIndex]) / swapAnnuity; final double optionMaturity = swapStart; final double valueSwaption = AnalyticFormulas.blackModelSwaptionValue(parSwaprate, volatility, optionMaturity, swaprate, swapAnnuity); return new Scalar(valueSwaption); } public static Map<String, double[]> getLogSwaprateDerivative(final TimeDiscretization liborPeriodDiscretization, final ForwardCurve forwardCurve, final double[] swapTenor) {