final MultiCapFloorPricer pricer = getPricer();
final double[] capVols = pricer.impliedVols(capPrices);
final LeastSquareResults lsRes = solveForPrice(capPrices, capVols, errors, scaleByVega);
final VolatilityTermStructure volCurve = getVolCurve(lsRes.getFitParameters());
final double[] mPrices = pricer.price(volCurve);
// least-squares gives chi2 including the penalty, and is calculated via the price differecne and vega w we just want the fit error
// TODO maybe the solver should provide this?
final double chi2 = chiSqr(capPrices, mPrices, errors); // ignore the vega weighting here