private void parseParameterDefinitions(final String[] paramDefinitions) {
        int paramIndex = 0;
        parameterNames = new String[paramDefinitions.length];
        allPossibleParameterValues = new double[paramDefinitions.length][];
        for (final String parameterDefinition : paramDefinitions) {
            final String[] tokens = parameterDefinition.split("[=,]");
            assert tokens.length > 3 : "parameter definition must be of the form name=value1,value2,...";
            parameterNames[paramIndex] = tokens[0];
            final DoubleList paramValues = new DoubleArrayList();
            for (int valueIndex = 1; valueIndex < tokens.length; valueIndex++) {
                paramValues.add(Double.parseDouble(tokens[valueIndex]));
            }
            allPossibleParameterValues[paramIndex] = paramValues.toDoubleArray();
            paramIndex++;
        }
    }