final String relativeToleranceName = desiredValue.getConstraint(PROPERTY_ROOT_FINDER_RELATIVE_TOLERANCE);
final String iterationsName = desiredValue.getConstraint(PROPERTY_ROOT_FINDER_MAX_ITERATIONS);
final String decompositionName = desiredValue.getConstraint(PROPERTY_DECOMPOSITION);
final String useFiniteDifferenceName = desiredValue.getConstraint(PROPERTY_USE_FINITE_DIFFERENCE);
final ConfigSource configSource = OpenGammaExecutionContext.getConfigSource(executionContext);
final MultiCurveCalculationConfig curveCalculationConfig = new ConfigDBCurveCalculationConfigSource(configSource).getConfig(curveCalculationConfigName);
final ComputationTargetSpecification targetSpec = target.toSpecification();
final YieldCurveBundle knownCurves = getKnownCurves(curveCalculationConfig, targetSpec, inputs);
final List<InstrumentDerivative> derivatives = new ArrayList<>();
final DoubleArrayList marketValues = new DoubleArrayList();
final DoubleArrayList initialRatesGuess = new DoubleArrayList();
final LinkedHashSet<String> curveNames = new LinkedHashSet<>();
for (final String curveName : curveCalculationConfig.getYieldCurveNames()) {
curveNames.add(curveName);
}
final LinkedHashMap<String, double[]> curveNodes = new LinkedHashMap<>();
final LinkedHashMap<String, Interpolator1D> interpolators = new LinkedHashMap<>();
final Map<String, Integer> nodesPerCurve = new HashMap<>();
final HistoricalTimeSeriesBundle timeSeries = getTimeSeriesBundle(inputs, targetSpec, curveCalculationConfigName);
for (final String curveName : curveNames) {
final InterpolatedYieldCurveSpecificationWithSecurities spec = getYieldCurveSpecification(inputs, targetSpec, curveName);
if (spec == null) {
continue;
}
int nInstruments = 0;
final Interpolator1D interpolator = spec.getInterpolator();
final SnapshotDataBundle marketData = getMarketData(inputs, targetSpec, curveName);
final DoubleArrayList nodeTimes = new DoubleArrayList();
FixedIncomeStripWithSecurity previousStrip = null;
for (final FixedIncomeStripWithSecurity strip : spec.getStrips()) {
final Double marketValue = marketData.getDataPoint(strip.getSecurityIdentifier());
if (marketValue == null) {
throw new OpenGammaRuntimeException("Could not get market data for " + strip.getSecurityIdentifier());
}
final Security security = strip.getSecurity();
final String[] curveNamesForSecurity = curveCalculationConfig.getCurveExposureForInstrument(curveName, strip.getInstrumentType());
final InstrumentDefinition<?> definition = _securityConverter.visit(security);
final InstrumentDerivative derivative = _definitionConverter.convert(security, definition, now, curveNamesForSecurity, timeSeries);
if (derivative != null) {
if (strip.getInstrumentType() == StripInstrumentType.FUTURE) {
final InterestRateFutureSecurityDefinition securityDefinition = (InterestRateFutureSecurityDefinition) definition;