List of usage examples for com.google.common.collect Range closedOpen
public static <C extends Comparable<?>> Range<C> closedOpen(C lower, C upper)
From source file:algorithm.Selection.java
/** * Initialize the selection iterator with the fitness distribution of the * chromosomes which is used to generate the selection range of chromosomes * for the roulette wheel selection method. * /*w ww . ja v a 2 s .com*/ * Each range is defined as the left closed and right open, e.g. [0, 3) * * @param fitness The fitness distribution for the chromosomes to be used * for generating the selection ranges. */ public void init(HashMap<Chromosome, Double> fitness) { /* Lower closed bound and upper open bound for each interval */ Double lower = leftBound; Double upper = leftBound + EPSILON; /* Calculate right bound for the roulette wheel, include the epsilon offset */ for (Double value : fitness.values()) { rightBound += value + EPSILON; } /* Add each chromosome and interval to roulette wheel selection */ for (Chromosome chromosome : fitness.keySet()) { upper = lower + fitness.get(chromosome); selection.put(chromosome, Range.closedOpen(lower, upper)); /* Increase the lower closed bound to previous right bound + EPSILON */ lower = upper + EPSILON; } }
From source file:org.openehealth.ipf.commons.ihe.fhir.LazyBundleProvider.java
@Override public List<IBaseResource> getResources(int fromIndex, int toIndex) { if (!cacheResults) { return getPartialResult(fromIndex, toIndex); }/* w ww . j a v a 2s. c o m*/ LOG.debug("Cached results contain the following ranges: {}. Requesting resources from index {} to {}", resultRanges, fromIndex, toIndex); Range<Integer> wanted = Range.closedOpen(fromIndex, toIndex); RangeSet<Integer> needed = resultRanges.required(wanted); LOG.debug("Requiring the following ranges {}", needed); for (Range<Integer> requiredRange : needed.asDescendingSetOfRanges()) { LOG.debug("Now requesting the following range {}", requiredRange); List<IBaseResource> results = getPartialResult(requiredRange.lowerEndpoint(), requiredRange.upperEndpoint()); LOG.debug("Got back a list of size {}", results.size()); if (!results.isEmpty()) { cacheAll(requiredRange.lowerEndpoint(), results); // Take care, potentially less elements than requested have been retrieved resultRanges.add(Range.closedOpen(requiredRange.lowerEndpoint(), requiredRange.lowerEndpoint() + results.size())); } } LOG.debug("Cached results now contain the following ranges: {}", resultRanges); // Everything went OK, return whatever we got return cachedResults.subList(fromIndex, Math.min(cachedResults.size(), Math.min(cachedResults.size(), toIndex))); }
From source file:sklearn.preprocessing.OneHotEncoder.java
public List<? extends Number> getValues() { List<Integer> featureSizes = getFeatureSizes(); if (featureSizes.size() != 1) { throw new IllegalArgumentException(); }//from w w w . j av a 2s .c o m Object numberOfValues = get("n_values"); if (("auto").equals(numberOfValues)) { return getActiveFeatures(); } Integer featureSize = featureSizes.get(0); List<Integer> result = new ArrayList<>(); result.addAll(ContiguousSet.create(Range.closedOpen(0, featureSize), DiscreteDomain.integers())); return result; }
From source file:org.apache.kylin.common.util.RangeUtil.java
/** * remove from self the elements that exist in other * @return// ww w . j a va 2 s .com */ public static <C extends Comparable<?>> List<Range<C>> remove(Range<C> self, Range<C> other) { // mimic the following logic in guava 18: // RangeSet<C> rangeSet = TreeRangeSet.create(); // rangeSet.add(self); // rangeSet.remove(other); // return Lists.newArrayList(rangeSet.asRanges()); if (other == null || !self.isConnected(other)) { return Collections.singletonList(self); } Range<C> share = self.intersection(other); if (share.isEmpty()) { return Collections.singletonList(self); } List<Range<C>> ret = Lists.newArrayList(); //see left part if (!self.hasLowerBound()) { if (share.hasLowerBound()) { if (share.lowerBoundType() == BoundType.CLOSED) { ret.add(Range.lessThan(share.lowerEndpoint())); } else { ret.add(Range.atMost(share.lowerEndpoint())); } } } else { if (self.lowerEndpoint() != share.lowerEndpoint()) { if (self.lowerBoundType() == BoundType.CLOSED) { if (share.lowerBoundType() == BoundType.CLOSED) { ret.add(Range.closedOpen(self.lowerEndpoint(), share.lowerEndpoint())); } else { ret.add(Range.closed(self.lowerEndpoint(), share.lowerEndpoint())); } } else { if (share.lowerBoundType() == BoundType.CLOSED) { ret.add(Range.open(self.lowerEndpoint(), share.lowerEndpoint())); } else { ret.add(Range.openClosed(self.lowerEndpoint(), share.lowerEndpoint())); } } } else { if (self.lowerBoundType() == BoundType.CLOSED && share.lowerBoundType() == BoundType.OPEN) { ret.add(Range.closed(self.lowerEndpoint(), share.lowerEndpoint())); } } } //see right part if (!self.hasUpperBound()) { if (share.hasUpperBound()) { if (share.upperBoundType() == BoundType.CLOSED) { ret.add(Range.greaterThan(share.upperEndpoint())); } else { ret.add(Range.atLeast(share.upperEndpoint())); } } } else { if (self.upperEndpoint() != share.upperEndpoint()) { if (self.upperBoundType() == BoundType.CLOSED) { if (share.upperBoundType() == BoundType.CLOSED) { ret.add(Range.openClosed(share.upperEndpoint(), self.upperEndpoint())); } else { ret.add(Range.closed(share.upperEndpoint(), self.upperEndpoint())); } } else { if (share.upperBoundType() == BoundType.CLOSED) { ret.add(Range.open(share.upperEndpoint(), self.upperEndpoint())); } else { ret.add(Range.closedOpen(share.upperEndpoint(), self.upperEndpoint())); } } } else { if (self.upperBoundType() == BoundType.CLOSED && share.upperBoundType() == BoundType.OPEN) { ret.add(Range.closed(self.upperEndpoint(), share.upperEndpoint())); } } } return ret; }
From source file:zipkin2.storage.cassandra.v1.CassandraSpanStore.java
CassandraSpanStore(CassandraStorage storage) { Session session = storage.session(); Schema.Metadata metadata = storage.metadata(); maxTraceCols = storage.maxTraceCols; indexFetchMultiplier = storage.indexFetchMultiplier; strictTraceId = storage.strictTraceId; searchEnabled = storage.searchEnabled; timestampCodec = new TimestampCodec(metadata.protocolVersion); buckets = ContiguousSet.create(Range.closedOpen(0, storage.bucketCount), integers()); spans = new SelectFromTraces.Factory(session, strictTraceId, maxTraceCols); dependencies = new SelectDependencies.Factory(session); if (!searchEnabled) { serviceNames = null;//from w ww .j a v a 2s . c o m remoteServiceNames = null; spanNames = null; selectTraceIdsByServiceName = null; selectTraceIdsByServiceNames = null; selectTraceIdsByRemoteServiceName = null; selectTraceIdsBySpanName = null; selectTraceIdsByAnnotation = null; return; } if (metadata.hasRemoteService) { selectTraceIdsByRemoteServiceName = new SelectTraceIdTimestampFromServiceRemoteServiceName.Factory( session, timestampCodec); remoteServiceNames = new SelectRemoteServiceNames.Factory(session); } else { selectTraceIdsByRemoteServiceName = null; remoteServiceNames = null; } spanNames = new SelectSpanNames.Factory(session); serviceNames = new SelectServiceNames.Factory(session).create(); selectTraceIdsByServiceName = new SelectTraceIdTimestampFromServiceName.Factory(session, timestampCodec, buckets); if (metadata.protocolVersion.compareTo(ProtocolVersion.V4) < 0) { LOG.warn("Please update Cassandra to 2.2 or later, as some features may fail"); // Log vs failing on "Partition KEY part service_name cannot be restricted by IN relation" selectTraceIdsByServiceNames = null; } else { selectTraceIdsByServiceNames = new SelectTraceIdTimestampFromServiceNames.Factory(session, timestampCodec, buckets); } selectTraceIdsBySpanName = new SelectTraceIdTimestampFromServiceSpanName.Factory(session, timestampCodec); selectTraceIdsByAnnotation = new SelectTraceIdTimestampFromAnnotations.Factory(session, timestampCodec, buckets); }
From source file:dollar.api.types.DollarRange.java
public DollarRange(boolean lowerBounds, boolean upperBounds, boolean closedLeft, boolean closedRight, @Nullable Value lower, @Nullable Value upper) { super();// w w w . j a va 2s . com Value lowerBound; Value upperBound; if ((lower != null) && (upper != null) && (lower.compareTo(upper) > 0)) { lowerBound = upper; upperBound = lower; reversed = true; } else { lowerBound = lower; upperBound = upper; } if (!lowerBounds && !upperBounds) { range = Range.all(); } else if (!lowerBounds) { if (closedRight) { range = Range.atMost(upperBound); } else { range = Range.lessThan(upperBound); } } else if (!upperBounds) { if (closedLeft) { range = Range.atLeast(lowerBound); } else { range = Range.greaterThan(lowerBound); } } else if (closedLeft) { if (closedRight) { range = Range.closed(lowerBound, upperBound); } else { //openRight range = Range.closedOpen(lowerBound, upperBound); } } else if (!closedLeft) { //openLeft if (closedRight) { range = Range.openClosed(lowerBound, upperBound); } else { //openRight if (lowerBound.equals(upperBound)) { throw new IllegalArgumentException( "Cannot have an open range with lower bounds being the same as upper " + "bounds"); } else { range = Range.open(lowerBound, upperBound); } } } else { throw new IllegalStateException(); } }
From source file:com.google.cloud.genomics.dataflow.utils.AnnotationUtils.java
/** * Determines the effect of the given allele at the given position within a * transcript. Currently, this routine is relatively primitive: it only works * with SNPs and only computes effects on coding regions of the transcript. * This utility currently does not handle any splice sites well, including * splice site disruption and codons which span two exons. * * @param variantStart 0-based absolute start for the variant. * @param allele Bases to substitute at {@code variantStart}. * @param transcript The affected transcript. * @param transcriptBases The reference bases which span the provided * {@code transcript}. Must match the exact length of the * {@code transcript.position}.//from www. j a v a 2s . co m * @return The effect of this variant on the given transcript, or null if * unknown. */ public static VariantEffect determineVariantTranscriptEffect(long variantStart, String allele, Annotation transcript, String transcriptBases) { long txLen = transcript.getEnd() - transcript.getStart(); Preconditions.checkArgument(transcriptBases.length() == txLen, "transcriptBases must have equal length to the transcript; got " + transcriptBases.length() + " and " + txLen + ", respectively"); if (allele.length() != 1) { LOG.fine("determineVariantTranscriptEffects() only supports SNPs, ignoring " + allele); return null; } if (transcript.getTranscript().getCodingSequence() == null) { LOG.fine("determineVariantTranscriptEffects() only supports intersection with coding " + "transcript, ignoring "); return null; } long variantEnd = variantStart + 1; Range<Long> variantRange = Range.closedOpen(variantStart, variantEnd); Range<Long> codingRange = Range.closedOpen(transcript.getTranscript().getCodingSequence().getStart(), transcript.getTranscript().getCodingSequence().getEnd()); if (Boolean.TRUE.equals(transcript.getReverseStrand())) { allele = SequenceUtil.reverseComplement(allele); } for (Exon exon : transcript.getTranscript().getExons()) { // For now, only compute effects on variants within the coding region of an exon. Range<Long> exonRange = Range.closedOpen(exon.getStart(), exon.getEnd()); if (exonRange.isConnected(codingRange) && exonRange.intersection(codingRange).isConnected(variantRange) && !exonRange.intersection(codingRange).intersection(variantRange).isEmpty()) { // Get the bases which correspond to this exon. int txOffset = transcript.getStart().intValue(); String exonBases = transcriptBases.substring(exon.getStart().intValue() - txOffset, exon.getEnd().intValue() - txOffset); int variantExonOffset = (int) (variantStart - exon.getStart()); if (Boolean.TRUE.equals(transcript.getReverseStrand())) { // Normalize the offset and bases to 5' -> 3'. exonBases = SequenceUtil.reverseComplement(exonBases); variantExonOffset = (int) (exon.getEnd() - variantEnd); } // Determine the indices for the codon which contains this variant. if (exon.getFrame() == null) { LOG.fine("exon lacks frame data, cannot determine effect"); return null; } int offsetWithinCodon = (variantExonOffset + exon.getFrame()) % 3; int codonExonOffset = variantExonOffset - offsetWithinCodon; if (codonExonOffset < 0 || exonBases.length() <= codonExonOffset + 3) { LOG.fine("variant codon spans multiple exons, this case is not yet handled"); return null; } String fromCodon = exonBases.substring(codonExonOffset, codonExonOffset + 3); String toCodon = fromCodon.substring(0, offsetWithinCodon) + allele + fromCodon.substring(offsetWithinCodon + 1); return codonChangeToEffect(fromCodon, toCodon); } } return null; }
From source file:org.jpmml.evaluator.DiscretizationUtil.java
static public Range<Double> toRange(Interval interval) { Double leftMargin = interval.getLeftMargin(); Double rightMargin = interval.getRightMargin(); // "The attributes leftMargin and rightMargin are optional but at least one value must be defined" if (leftMargin == null && rightMargin == null) { throw new InvalidFeatureException(interval); } // End if/* www . jav a2s . co m*/ if (leftMargin != null && rightMargin != null && (leftMargin).compareTo(rightMargin) > 0) { throw new InvalidFeatureException(interval); } Interval.Closure closure = interval.getClosure(); switch (closure) { case OPEN_OPEN: { if (leftMargin == null) { return Range.lessThan(rightMargin); } else if (rightMargin == null) { return Range.greaterThan(leftMargin); } return Range.open(leftMargin, rightMargin); } case OPEN_CLOSED: { if (leftMargin == null) { return Range.atMost(rightMargin); } else if (rightMargin == null) { return Range.greaterThan(leftMargin); } return Range.openClosed(leftMargin, rightMargin); } case CLOSED_OPEN: { if (leftMargin == null) { return Range.lessThan(rightMargin); } else if (rightMargin == null) { return Range.atLeast(leftMargin); } return Range.closedOpen(leftMargin, rightMargin); } case CLOSED_CLOSED: { if (leftMargin == null) { return Range.atMost(rightMargin); } else if (rightMargin == null) { return Range.atLeast(leftMargin); } return Range.closed(leftMargin, rightMargin); } default: throw new UnsupportedFeatureException(interval, closure); } }
From source file:it.units.malelab.ege.ge.genotype.BitsGenotype.java
public BitsGenotype compress(int newLength) { BitsGenotype compressed = new BitsGenotype(newLength); List<BitsGenotype> slices = slices(Utils.slices(Range.closedOpen(0, length), newLength)); for (int i = 0; i < slices.size(); i++) { compressed.bitSet.set(i, slices.get(i).count() > slices.get(i).size() / 2); }/*from w w w . j a v a 2 s. c o m*/ return compressed; }
From source file:com.tinspx.util.base.NumberUtils.java
/** * {@code from} is inclusive, {@code to} is exclusive *///from w w w .ja v a 2 s . c o m public static ContiguousSet<Integer> asSet(int from, int to) { return asSet(Range.closedOpen(from, to)); }