Example usage for com.google.common.collect Range closedOpen

List of usage examples for com.google.common.collect Range closedOpen

Introduction

In this page you can find the example usage for com.google.common.collect Range closedOpen.

Prototype

public static <C extends Comparable<?>> Range<C> closedOpen(C lower, C upper) 

Source Link

Document

Returns a range that contains all values greater than or equal to lower and strictly less than upper .

Usage

From source file:org.terasology.dynamicCities.utilities.ProbabilityDistribution.java

public void initialise(Map<T, Float> probabilites) {
    ranges = new HashMap<>();
    //check if sum of probabilites is 1
    Float sum = 0f;/*from  ww  w  . ja v a2  s  .c o  m*/
    for (Float probability : probabilites.values()) {
        sum += probability;
    }
    if (!(TeraMath.fastAbs(sum - 1) < 0.01f)) {
        logger.error("Error initialising ProbabilityDistribution! Sum of probabilites was not 1!");
        return;
    }
    float lastIndex = 0;
    for (Map.Entry<T, Float> entry : probabilites.entrySet()) {
        Range<Float> range = Range.closedOpen(lastIndex, lastIndex + entry.getValue());
        lastIndex += entry.getValue();
        ranges.put(range, entry.getKey());
    }

}

From source file:org.opendaylight.controller.cluster.datastore.utils.UnsignedLongRangeSet.java

public void add(final UnsignedLong value) {
    rangeset.add(Range.closedOpen(value, UnsignedLong.ONE.plus(value)));
}

From source file:org.eclipse.fx.ui.controls.styledtext.internal.LineHelper.java

private Range<Integer> getSelection() {
    @NonNull/*  ww  w.j ava 2s .  com*/
    TextSelection selection = this.control.getSelection();
    return Range.closedOpen(Integer.valueOf(selection.offset),
            Integer.valueOf(selection.offset + selection.length));
}

From source file:com.google.devtools.build.lib.profiler.SingleStatRecorder.java

/** Create an snapshot of the the stats recorded up to now. */
public MetricData snapshot() {
    synchronized (this) {
        ImmutableList.Builder<HistogramElement> result = ImmutableList.builder();
        result.add(new HistogramElement(Range.closedOpen(0, 1), histogram[0]));
        int from = 1;
        for (int i = 1; i < histogram.length - 1; i++) {
            int to = from << 1;
            result.add(new HistogramElement(Range.closedOpen(from, to), histogram[i]));
            from = to;/*from  w w w. j  a va2s  . c om*/
        }
        result.add(new HistogramElement(Range.atLeast(from), histogram[histogram.length - 1]));
        return new MetricData(description, result.build(), count, avg, Math.sqrt(m2 / (double) count), max);
    }
}

From source file:org.onosproject.store.resource.impl.EncodedResourcesSerializer.java

@Override
public EncodedDiscreteResources read(Kryo kryo, Input input, Class<EncodedDiscreteResources> cls) {
    @SuppressWarnings("unchecked")
    List<ClosedOpenRange> ranges = kryo.readObject(input, ArrayList.class);
    DiscreteResourceCodec codec = (DiscreteResourceCodec) kryo.readClassAndObject(input);

    RangeSet<Integer> rangeSet = TreeRangeSet.create();
    ranges.stream().map(x -> Range.closedOpen(x.lowerBound(), x.upperBound())).forEach(rangeSet::add);
    return new EncodedDiscreteResources(rangeSet, codec);
}

From source file:com.cinchapi.concourse.server.concurrent.RangeTokens.java

/**
 * Convert the specified range {@code token} to one or more {@link Range
 * ranges} that provide the appropriate coverage.
 * /*w  w w.ja va 2 s. c  o  m*/
 * @param token
 * @return the Ranges
 */
public static Iterable<Range<Value>> convertToRange(RangeToken token) {
    List<Range<Value>> ranges = Lists.newArrayListWithCapacity(1);
    if (token.getOperator() == Operator.EQUALS || token.getOperator() == null) { // null operator means
                                                                                 // the range token is for
                                                                                 // writing
        ranges.add(Range.singleton(token.getValues()[0]));
    } else if (token.getOperator() == Operator.NOT_EQUALS) {
        ranges.add(Range.lessThan(token.getValues()[0]));
        ranges.add(Range.greaterThan(token.getValues()[0]));
    } else if (token.getOperator() == Operator.GREATER_THAN) {
        ranges.add(Range.greaterThan(token.getValues()[0]));
    } else if (token.getOperator() == Operator.GREATER_THAN_OR_EQUALS) {
        ranges.add(Range.atLeast(token.getValues()[0]));
    } else if (token.getOperator() == Operator.LESS_THAN) {
        ranges.add(Range.lessThan(token.getValues()[0]));
    } else if (token.getOperator() == Operator.LESS_THAN_OR_EQUALS) {
        ranges.add(Range.atMost(token.getValues()[0]));
    } else if (token.getOperator() == Operator.BETWEEN) {
        Value a = token.getValues()[0];
        Value b = token.getValues()[1];
        if (a == Value.NEGATIVE_INFINITY && b == Value.POSITIVE_INFINITY) {
            ranges.add(Range.<Value>all());
        } else if (token.getValues().length == 3) {
            ranges.add(Range.open(a, b));
        } else if (token.getValues().length == 4) {
            ranges.add(Range.closed(a, b));
        } else if (token.getValues().length == 5) {
            ranges.add(Range.openClosed(a, b));
        } else {
            ranges.add(Range.closedOpen(a, b));
        }
    } else if (token.getOperator() == Operator.REGEX || token.getOperator() == Operator.NOT_REGEX) {
        ranges.add(Range.<Value>all());
    } else {
        throw new UnsupportedOperationException();
    }
    return ranges;
}

From source file:com.google.cloud.genomics.dataflow.utils.PairGenerator.java

/**
 * * Generates all combinations (not permutations) of pairs of the elements in the iterable.
 *
 * The pairs are often used as keys for results in many n^2 analyses where we end up with
 * (n*(n-1))/2 or ((n*(n-1))/2)+n results.
 *
 * @param list// w w w.  j  a v  a 2 s  .com
 * @param comparator - used to enforce an order upon the elements within each pair
 * @return the pairs
 */
public <X, L extends List<? extends X> & RandomAccess> FluentIterable<KV<X, X>> allPairs(final L list,
        final Comparator<? super X> comparator) {
    return FluentIterable
            .from(ContiguousSet.create(Range.closedOpen(0, list.size()), DiscreteDomain.integers()))
            .transformAndConcat(new Function<Integer, Iterable<KV<X, X>>>() {
                @Override
                public Iterable<KV<X, X>> apply(final Integer i) {
                    return new Iterable<KV<X, X>>() {
                        @Override
                        public Iterator<KV<X, X>> iterator() {
                            int iteratorIndex = i;
                            if (!withReplacement) {
                                iteratorIndex++;
                            }
                            return Iterators.transform(list.listIterator(iteratorIndex),
                                    new Function<X, KV<X, X>>() {

                                        private final X key = list.get(i);

                                        @Override
                                        public KV<X, X> apply(X value) {
                                            boolean swap = 0 < comparator.compare(key, value);
                                            return KV.of(swap ? value : key, swap ? key : value);
                                        }
                                    });
                        }
                    };
                }
            });
}

From source file:it.units.malelab.ege.ge.mapper.MultiMapper.java

@Override
public Node<T> map(BitsGenotype genotype, Map<String, Object> report) throws MappingException {
    int mapperIndex = 0;
    BitsGenotype innerGenotype = genotype;
    switch (selectionCriterion) {
    case RESERVED_BITS: {
        int mapperBits = (int) Math.ceil(Math.log10(mappers.size()) / Math.log10(2d));
        mapperIndex = genotype.slice(0, mapperBits).toInt() % mappers.size();
        innerGenotype = genotype.slice(mapperIndex, genotype.size());
        break;//from   ww w .j  av  a 2s .  c  o m
    }
    case ALL_MODULE:
        mapperIndex = genotype.count() % mappers.size();
        break;
    case ALL_BINARY: {
        int mapperBits = (int) Math.ceil(Math.log10(mappers.size()) / Math.log10(2d));
        int index = 0;
        List<BitsGenotype> slices = genotype
                .slices(Utils.slices(Range.closedOpen(0, genotype.size()), mapperBits));
        for (int i = 0; i < mapperBits; i++) {
            int value = (int) Math.round((double) slices.get(i).count() / (double) slices.get(i).size());
            index = index + value * (int) Math.pow(2, i);
        }
        mapperIndex = index % mappers.size();
        break;
    }
    case ALL_MAX: {
        int maxIndex = 0;
        double maxValue = Double.NEGATIVE_INFINITY;
        List<BitsGenotype> slices = genotype
                .slices(Utils.slices(Range.closedOpen(0, genotype.size()), mappers.size()));
        for (int i = 0; i < slices.size(); i++) {
            double value = (double) slices.get(i).count() / (double) slices.get(i).size();
            if (value > maxValue) {
                maxValue = value;
                maxIndex = i;
            }
        }
        mapperIndex = maxIndex;
        break;
    }
    default:
        break;
    }
    report.put(MAPPER_INDEX_NAME, mapperIndex);
    return mappers.get(mapperIndex).map(innerGenotype, report);
}

From source file:edu.mit.streamjit.test.Datasets.java

public static Dataset allIntsInRange(int begin, int end) {
    return allIntsInRange(Range.closedOpen(begin, end));
}

From source file:com.shemnon.btc.coinbase.CBPriceHistory.java

private void loadPrices(long stoppingPoint) throws IOException, ParseException {
    while (lastDateQueried > stoppingPoint) { // hard coded date: 2011-07-18T00:00:00
        URL priceQuery = new URL("https://coinbase.com/api/v1/prices/historical?page=" + ++lastPageQueried);
        BufferedReader br = new BufferedReader(new InputStreamReader(priceQuery.openStream()));
        String line;//from  ww  w  .  j av a  2 s.com
        while ((line = br.readLine()) != null) {
            String[] entry = line.split(",");
            if (entry.length == 2) {
                Date date = IBase.JSON_DATE.parse(entry[0]);
                double value = Double.parseDouble(entry[1]);
                priceMap.put(Range.closedOpen(date.getTime(), lastDateQueried), value);
                lastDateQueried = date.getTime();
            }
        }
    }
}