final double[] rates = new double[nInstruments];
for (int k = 0; k < nInstruments; k++) {
derivatives[k] = convert(definitions[i][j][k], withToday);
rates[k] = initialRateGuess(definitions[i][j][k]);
}
final GeneratorYDCurve generator = curveGenerators[i][j].finalGenerator(derivatives);
final double[] initialGuess = generator.initialGuess(rates);
singleCurves[j] = new SingleCurveBundle<>(curveNames[i][j], derivatives, initialGuess, generator);
}
curveBundles[i] = new MultiCurveBundle<>(singleCurves);
}
return CURVE_BUILDING_REPOSITORY.makeCurvesFromDerivatives(curveBundles, knownData, DSC_MAP, FWD_IBOR_MAP, FWD_ON_MAP, calculator, sensitivityCalculator);