chiSqr += FunctionUtils.square((data[i].getBlackVolatility() - _formula.getVolatilityFunction(options[i], forward).evaluate(sabrFormulaData)) / errors[i]);
}
return chiSqr;
}
};
final ScalarMinimizer lineMinimizer = new BrentMinimizer1D();
final ConjugateDirectionVectorMinimizer minimzer = new ConjugateDirectionVectorMinimizer(lineMinimizer, 1e-6, 10000);
final DoubleMatrix1D fp = transforms.transform(new DoubleMatrix1D(initialFitParameters));
final DoubleMatrix1D minPos = minimzer.minimize(function, fp);
final double chiSquare = function.evaluate(minPos);
final DoubleMatrix1D res = transforms.inverseTransform(minPos);