public double[] getSplitPointSuggestions() {
        Set<Double> suggestedSplitValues = new TreeSet<Double>();
        double minValue = Double.POSITIVE_INFINITY;
        double maxValue = Double.NEGATIVE_INFINITY;
        for (int i = 0; i < this.minValueObservedPerClass.numValues(); i++) {
            if (this.minValueObservedPerClass.getValue(i) < minValue) {
                minValue = this.minValueObservedPerClass.getValue(i);
            }
            if (this.maxValueObservedPerClass.getValue(i) > maxValue) {
                maxValue = this.maxValueObservedPerClass.getValue(i);
            }
        }
        if (minValue < Double.POSITIVE_INFINITY) {
            double range = maxValue - minValue;
            for (int i = 0; i < this.numBins; i++) {
                double splitValue = range / (this.numBins + 1.0) * (i + 1) + minValue;
                if ((splitValue > minValue) && (splitValue < maxValue)) {
                    suggestedSplitValues.add(splitValue);
                }
            }
        }
        double[] suggestions = new double[suggestedSplitValues.size()];
        int i = 0;
        for (double suggestion : suggestedSplitValues) {
            suggestions[i++] = suggestion;
        }
        return suggestions;
    }