List of usage examples for com.google.common.collect Range lowerEndpoint
public C lowerEndpoint()
From source file:it.units.malelab.ege.ge.mapper.HierarchicalMapper.java
public Node<T> mapIteratively(BitsGenotype genotype, int[] bitUsages) throws MappingException { Node<EnhancedSymbol<T>> enhancedTree = new Node<>( new EnhancedSymbol<>(grammar.getStartingSymbol(), Range.closedOpen(0, genotype.size()))); while (true) { Node<EnhancedSymbol<T>> nodeToBeReplaced = null; for (Node<EnhancedSymbol<T>> node : enhancedTree.leafNodes()) { if (grammar.getRules().keySet().contains(node.getContent().getSymbol())) { nodeToBeReplaced = node; break; }/*from www.j av a 2 s.co m*/ } if (nodeToBeReplaced == null) { break; } //get genotype T symbol = nodeToBeReplaced.getContent().getSymbol(); Range<Integer> symbolRange = nodeToBeReplaced.getContent().getRange(); List<List<T>> options = grammar.getRules().get(symbol); //get option List<T> symbols; if ((symbolRange.upperEndpoint() - symbolRange.lowerEndpoint()) < options.size()) { int count = (symbolRange.upperEndpoint() - symbolRange.lowerEndpoint() > 0) ? genotype.slice(symbolRange).count() : genotype.count(); int index = shortestOptionIndexesMap.get(symbol) .get(count % shortestOptionIndexesMap.get(symbol).size()); symbols = options.get(index); } else { symbols = chooseOption(genotype, symbolRange, options); for (int i = symbolRange.lowerEndpoint(); i < symbolRange.upperEndpoint(); i++) { bitUsages[i] = bitUsages[i] + 1; } } //add children List<Range<Integer>> childRanges = getChildrenSlices(symbolRange, symbols); for (int i = 0; i < symbols.size(); i++) { Range<Integer> childRange = childRanges.get(i); if (childRanges.get(i).equals(symbolRange) && (childRange.upperEndpoint() - childRange.lowerEndpoint() > 0)) { childRange = Range.closedOpen(symbolRange.lowerEndpoint(), symbolRange.upperEndpoint() - 1); } Node<EnhancedSymbol<T>> newChild = new Node<>(new EnhancedSymbol<>(symbols.get(i), childRange)); nodeToBeReplaced.getChildren().add(newChild); } } //convert return extractFromEnhanced(enhancedTree); }
From source file:edu.cmu.lti.oaqa.framework.eval.passage.PassageMAPEvalAggregator.java
private float getAvgPsg2MAP(List<Passage> docs, List<Passage> gs) { if (gs.size() == 0) { return 0; }//from ww w . j a v a 2 s .c om Map<String, RangeSet<Integer>> gsId2Spans = Maps.newHashMap(); Map<String, RangeSet<Integer>> trackGsId2Spans = Maps.newHashMap(); for (Passage g : gs) { String id = g.getUri(); if (!gsId2Spans.containsKey(id)) { gsId2Spans.put(id, TreeRangeSet.<Integer>create()); trackGsId2Spans.put(id, TreeRangeSet.<Integer>create()); } gsId2Spans.get(g.getUri()).add(Range.closedOpen(g.getBegin(), g.getEnd())); trackGsId2Spans.get(g.getUri()).add(Range.closedOpen(g.getBegin(), g.getEnd())); } int totalChars = 0; int overlapLength = 0; float sumPrecision = 0; for (Passage doc : docs) { Range<Integer> docRange = Range.closedOpen(doc.getBegin(), doc.getEnd()); String docId = doc.getUri(); if (!gsId2Spans.containsKey(docId) || gsId2Spans.get(docId).encloses(docRange)) { totalChars += docRange.upperEndpoint() - docRange.lowerEndpoint(); continue; } for (int offset = docRange.lowerEndpoint(); offset < docRange.upperEndpoint(); offset++) { if (gsId2Spans.containsKey(docId) && gsId2Spans.get(docId).contains(offset)) { if (trackGsId2Spans.get(docId).contains(offset)) { trackGsId2Spans.get(docId).remove(Range.singleton(offset)); // +1 totalChars++; overlapLength++; sumPrecision += (float) overlapLength / (float) totalChars; } } else { // -1 totalChars++; } } } int count = 0; for (RangeSet<Integer> spans : gsId2Spans.values()) { for (Range<Integer> span : spans.asRanges()) { count += span.upperEndpoint() - span.lowerEndpoint(); } } return (float) sumPrecision / (float) count; }
From source file:net.sf.mzmine.datamodel.impl.SimpleScan.java
/** * @return Returns scan datapoints within a given range *//*w w w . j a va 2s.c o m*/ public @Nonnull DataPoint[] getDataPointsByMass(@Nonnull Range<Double> mzRange) { int startIndex, endIndex; for (startIndex = 0; startIndex < dataPoints.length; startIndex++) { if (dataPoints[startIndex].getMZ() >= mzRange.lowerEndpoint()) break; } for (endIndex = startIndex; endIndex < dataPoints.length; endIndex++) { if (dataPoints[endIndex].getMZ() > mzRange.upperEndpoint()) break; } DataPoint pointsWithinRange[] = new DataPoint[endIndex - startIndex]; // Copy the relevant points System.arraycopy(dataPoints, startIndex, pointsWithinRange, 0, endIndex - startIndex); return pointsWithinRange; }
From source file:com.google.android.apps.forscience.whistlepunk.sensordb.SensorDatabaseImpl.java
/** * Gets the selection string and selectionArgs based on the tag, range and resolution tier. * * @return a pair where the first element is the selection string and the second element is the * array of selectionArgs.// w w w . j a va 2s . co m */ private Pair<String, String[]> getSelectionAndArgs(String sensorTag, TimeRange range, int resolutionTier) { List<String> clauses = new ArrayList<>(); List<String> values = new ArrayList<>(); clauses.add(ScalarSensorsTable.Column.TAG + " = ?"); values.add(sensorTag); if (resolutionTier >= 0) { clauses.add(ScalarSensorsTable.Column.RESOLUTION_TIER + " = ?"); values.add(String.valueOf(resolutionTier)); } Range<Long> times = range.getTimes(); Range<Long> canonicalTimes = times.canonical(DiscreteDomain.longs()); if (canonicalTimes.hasLowerBound()) { String comparator = (canonicalTimes.lowerBoundType() == BoundType.CLOSED) ? " >= ?" : " > ?"; clauses.add(ScalarSensorsTable.Column.TIMESTAMP_MILLIS + comparator); values.add(String.valueOf(canonicalTimes.lowerEndpoint())); } if (canonicalTimes.hasUpperBound()) { String comparator = (canonicalTimes.upperBoundType() == BoundType.CLOSED) ? " =< ?" : " < ?"; clauses.add(ScalarSensorsTable.Column.TIMESTAMP_MILLIS + comparator); values.add(String.valueOf(canonicalTimes.upperEndpoint())); } return new Pair<>(Joiner.on(" AND ").join(clauses), values.toArray(new String[values.size()])); }
From source file:net.sf.mzmine.modules.peaklistmethods.identification.onlinedbsearch.databases.PubChemGateway.java
/** * Searches for CIDs of PubChem compounds based on their exact * (monoisotopic) mass. Returns maximum numOfResults results sorted by the * CID. If chargedOnly parameter is set, returns only molecules with * non-zero charge.// w w w . j a v a2 s . com */ public String[] findCompounds(double mass, MZTolerance mzTolerance, int numOfResults, ParameterSet parameters) throws IOException { Range<Double> toleranceRange = mzTolerance.getToleranceRange(mass); StringBuilder pubchemUrl = new StringBuilder(); pubchemUrl.append( "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?usehistory=n&db=pccompound&sort=cida&retmax="); pubchemUrl.append(numOfResults); pubchemUrl.append("&term="); pubchemUrl.append(toleranceRange.lowerEndpoint()); pubchemUrl.append(":"); pubchemUrl.append(toleranceRange.upperEndpoint()); pubchemUrl.append("[MonoisotopicMass]"); NodeList cidElements; try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = dbf.newDocumentBuilder(); Document parsedResult = builder.parse(pubchemUrl.toString()); XPathFactory factory = XPathFactory.newInstance(); XPath xpath = factory.newXPath(); XPathExpression expr = xpath.compile("//eSearchResult/IdList/Id"); cidElements = (NodeList) expr.evaluate(parsedResult, XPathConstants.NODESET); } catch (Exception e) { throw (new IOException(e)); } String cidArray[] = new String[cidElements.getLength()]; for (int i = 0; i < cidElements.getLength(); i++) { Element cidElement = (Element) cidElements.item(i); cidArray[i] = cidElement.getTextContent(); } return cidArray; }
From source file:com.cubeia.games.poker.handler.ActionTransformer.java
public RequestAction transform(ActionRequest request, int sequenceNumber) { RequestAction packet = new RequestAction(); packet.timeToAct = (int) request.getTimeToAct(); packet.player = request.getPlayerId(); packet.seq = sequenceNumber;//from w w w.j a v a2 s . c o m packet.currentPotSize = request.getTotalPotSize().toPlainString(); List<PlayerAction> allowed = new LinkedList<PlayerAction>(); for (PossibleAction option : request.getOptions()) { if (option instanceof DiscardRequest) { DiscardRequest discardRequest = (DiscardRequest) option; PlayerAction playerOption = createPlayerAction(PokerActionType.DISCARD); Range<Integer> cardsToDiscard = discardRequest.getCardsToDiscard(); // TODO: Consider if this is an ugly hack or if it's OK. (Using minAmount and maxAmount to describe the range of number of cards to discard) playerOption.minAmount = cardsToDiscard.lowerEndpoint().toString(); playerOption.maxAmount = cardsToDiscard.upperEndpoint().toString(); allowed.add(playerOption); } else { PlayerAction playerOption = createPlayerAction(option.getActionType()); // FIXME: Casting to integer here since Flash does not support long values! playerOption.minAmount = option.getMinAmount().toPlainString(); playerOption.maxAmount = option.getMaxAmount().toPlainString(); allowed.add(playerOption); } } packet.allowedActions = allowed; return packet; }
From source file:org.sonatype.nexus.repository.http.PartialFetchHandler.java
/** * Mutate the response into one that returns part of the payload. *///from ww w. ja v a 2s . c om private Response partialResponse(final Response response, final Payload payload, final Range<Long> requestedRange) { Response.Builder builder = new Response.Builder().copy(response) .status(Status.success(HttpStatus.PARTIAL_CONTENT)); Payload partialPayload = new PartialPayload(payload, requestedRange); builder.payload(partialPayload); // ResponseSender takes care of Content-Length header, via payload.size builder.header(HttpHeaders.CONTENT_RANGE, requestedRange.lowerEndpoint() + "-" + requestedRange.upperEndpoint() + "/" + payload.getSize()); return builder.build(); }
From source file:com.wealdtech.jackson.modules.DateTimeRangeSerializer.java
@Override public void serialize(final Range<DateTime> value, final JsonGenerator gen, final SerializerProvider provider) throws IOException { if (value != null) { final StringBuilder sb = new StringBuilder(64); if (value.hasLowerBound()) { if (value.lowerBoundType().equals(BoundType.CLOSED)) { sb.append('['); } else { sb.append('('); }//from w w w.j a va 2 s.c om sb.append(formatter.print(value.lowerEndpoint())); } else { sb.append('('); sb.append(NEGATIVE_INFINITY); } sb.append(','); if (value.hasUpperBound()) { sb.append(formatter.print(value.upperEndpoint())); if (value.upperBoundType().equals(BoundType.CLOSED)) { sb.append(']'); } else { sb.append(')'); } } else { sb.append(POSITIVE_INFINITY); sb.append(')'); } gen.writeString(sb.toString()); } }
From source file:com.wealdtech.utils.RangeFormatter.java
/** * Format the date and time of a date/time range. * * @param range the range to format/*w ww.j a va2 s.c o m*/ * @return a formatted range, or {@code null} if the input is {@code null} */ @Nullable public String formatDateTime(@Nullable final Range<DateTime> range) { if (range == null) { return null; } final DateTime curDateTime = DateTime.now(); final StringBuilder sb = new StringBuilder(96); final DateTime lower = range.lowerEndpoint(); final DateTime upper = range.upperEndpoint(); if (upper.isBefore(lower)) { throw new DataError.Bad("Upper part of range must be after lower part of range"); } // Lower date final Details lowerDetails = new Details(); lowerDetails.showTime = true; if (!isSameDay(lower, curDateTime)) { lowerDetails.showDayOfWeek = true; lowerDetails.showDayOfMonth = true; lowerDetails.showMonthOfYear = true; } if ((!isSameYear(lower, upper)) || (!isSameYear(lower, curDateTime))) { lowerDetails.showYear = true; } sb.append(doFormat(lower, lowerDetails)); if (!isSameMinute(lower, upper)) { sb.append(" - "); final Details upperDetails = new Details(); upperDetails.showTime = true; if (!isSameDay(lower, upper)) { upperDetails.showDayOfWeek = true; upperDetails.showDayOfMonth = true; upperDetails.showMonthOfYear = true; if ((!isSameYear(lower, upper)) || (!isSameYear(upper, curDateTime))) { upperDetails.showYear = true; } } sb.append(doFormat(upper, upperDetails)); } return sb.toString(); }
From source file:it.units.malelab.ege.ge.mapper.HierarchicalMapper.java
public Node<T> mapRecursively(T symbol, Range<Integer> range, BitsGenotype genotype, int[] bitUsages) throws MappingException { Node<T> node = new Node<>(symbol); if (grammar.getRules().keySet().contains(symbol)) { //a non-terminal node //update usage for (int i = range.lowerEndpoint(); i < range.upperEndpoint(); i++) { bitUsages[i] = bitUsages[i] + 1; }/*from w w w . j a va 2 s. c o m*/ List<List<T>> options = grammar.getRules().get(symbol); //get option List<T> symbols; if ((range.upperEndpoint() - range.lowerEndpoint()) < options.size()) { int count = (range.upperEndpoint() - range.lowerEndpoint() > 0) ? genotype.slice(range).count() : genotype.count(); int index = shortestOptionIndexesMap.get(symbol) .get(count % shortestOptionIndexesMap.get(symbol).size()); symbols = options.get(index); } else { symbols = chooseOption(genotype, range, options); for (int i = range.lowerEndpoint(); i < range.upperEndpoint(); i++) { bitUsages[i] = bitUsages[i] + 1; } } //add children List<Range<Integer>> childRanges = getChildrenSlices(range, symbols); for (int i = 0; i < symbols.size(); i++) { Range<Integer> childRange = childRanges.get(i); if (childRanges.get(i).equals(range) && (childRange.upperEndpoint() - childRange.lowerEndpoint() > 0)) { childRange = Range.closedOpen(range.lowerEndpoint(), range.upperEndpoint() - 1); childRanges.set(i, childRange); } } for (int i = 0; i < symbols.size(); i++) { node.getChildren().add(mapRecursively(symbols.get(i), childRanges.get(i), genotype, bitUsages)); } } return node; }