/src/main/java/net/finmath/montecarlo/interestrate/models/LIBORMarketModelStandard.java
if( ! isUseAnalyticApproximation) {
if ( isUseAnalyticApproximation ) {
final Schedule swapTenor = new RegularSchedule(new TimeDiscretizationFromArray(swapTenorTimes)); final double swaprate = Swap.getForwardSwapRate(swapTenor, swapTenor, forwardCurve, null); final double[] swaprates = new double[numberOfPeriods]; for(int periodStartIndex=0; periodStartIndex<numberOfPeriods; periodStartIndex++) { swaprates[periodStartIndex] = swaprate; } <extra_id_0> final AbstractTermStructureMonteCarloProduct swaption = new SwaptionAnalyticApproximation(swaprate, swapTenorTimes, SwaptionAnalyticApproximation.ValueUnit.VOLATILITYLOGNORMAL); final double impliedVolatility = swaptionMarketData.getVolatility(exerciseDate, swapLength, swaptionMarketData.getSwapPeriodLength(), swaprate); calibrationProducts.add(new CalibrationProduct(swaption, impliedVolatility, 1.0)); } else { final AbstractTermStructureMonteCarloProduct swaption = new SwaptionSimple(swaprate, swapTenorTimes, SwaptionSimple.ValueUnit.VALUE);