private void addEdgePartition(FeatureRange range, long value, int from, int to, boolean isNeg) {
        String label;
        if (value == 0x8000000000000000L)  // special case long_min.
            label = range.getKey() + "=-9223372036854775808";
        else
            label = range.getKey() + (isNeg ? "=-" : "=") + Long.toString(value);
        range.addPartition(new RangeEdgePartition(label, value, from, to));
    }
Partitions all the feature ranges according to the arity and bounds
set in the PredicateOptions, and updates the ranges with a set of
partitions and edge partitions.
This is required to be able to store a range in the PredicateIndex.

@author Magnar Nedland
@author bjorncs
predicate-search-core/src/main/java/com/yahoo/search/predicate/optimization/ComplexNodeTransformer.java