/src/main/java/net/finmath/montecarlo/interestrate/models/covariance/AbstractLIBORCovarianceModelParametric.java
final AbstractLIBORCovarianceModelParametric calibrationCovarianceModel = AbstractLIBORCovarianceModelParametric.this.getCloneWithModifiedParameters( values) ;
final AbstractLIBORCovarianceModelParametric calibrationCovarianceModel = AbstractLIBORCovarianceModelParametric.this.getCloneWithModifiedParameters ( parameters ) ;
final OptimizerFactory optimizerFactory = optimizerFactoryParameter != null ? optimizerFactoryParameter : new OptimizerFactoryLevenbergMarquardt(maxIterations, accuracy, numberOfThreads); final PriorityBlockingQueue<Runnable> queue = new PriorityBlockingQueue<>(); final ExecutorService executorForProductValuation = new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), Runtime.getRuntime().availableProcessors()*zero.length, 5, TimeUnit.SECONDS, queue); final ObjectiveFunction calibrationError = new ObjectiveFunction() { @Override public void setValues(final double[] parameters, final double[] values) throws SolverException { <extra_id_0> final LIBORMarketModel model = calibrationModel.getCloneWithModifiedCovarianceModel(calibrationCovarianceModel); final EulerSchemeFromProcessModel process = new EulerSchemeFromProcessModel(model, brownianMotion); final LIBORMonteCarloSimulationFromLIBORModel liborMarketModelMonteCarloSimulation = new LIBORMonteCarloSimulationFromLIBORModel(process); final ArrayList<Future<RandomVariable>> valueFutures = new ArrayList<>(calibrationProducts.length); for(int calibrationProductIndex=0; calibrationProductIndex<calibrationProducts.length; calibrationProductIndex++) { final int workerCalibrationProductIndex = calibrationProductIndex;