@Override public PhEntryDistSF<T> nextEntryReuse() { PhEntryDist<T> pvEntry = q.nextEntryReuse(); pre.post(pvEntry.getKey(), buffer.lower(), buffer.upper()); buffer.setValueDist( pvEntry.getValue(), pvEntry.dist() ); return buffer; } @Override
/** * @param e an entry that describes the query rectangle * @return a query iterator * @see #queryIntersect(double[], double[]) */ public PhQuerySF<T> queryIntersect(PhEntrySF<T> e) { return queryIntersect(e.lower(), e.upper()); }
/** * @param e an entry that describes the query rectangle * @return a query iterator * @see #queryInclude(double[], double[]) */ public PhQuerySF<T> queryInclude(PhEntrySF<T> e) { return queryInclude(e.lower(), e.upper()); }
@Override public PhEntryS<T> nextEntryReuse() { PhEntry<T> pvEntry = iter.nextEntryReuse(); pre.post(pvEntry.getKey(), buffer.lower, buffer.upper); buffer.setValue( pvEntry.getValue() ); return buffer; } @Override
private void addEntry(PhEntry<T> e, long[] center) { double dist = distance.dist(center, e.getKey()); if (resultSize < entries.size()) { entries.get(resultSize).set(e, dist); } else { PhEntryDist<T> de = new PhEntryDist<>(e, dist); entries.add(de); } resultSize++; }
/** * @param e entry object that describes the query rectangle * @return a query iterator * @see #queryIntersect(long[], long[]) */ public PhQueryS<T> queryIntersect(PhEntryS<T> e) { return queryIntersect(e.lower(), e.upper()); }
/** * @return an iterator over all elements in the tree */ public PhExtentF<T> queryExtent() { return new PhExtentF<>(pht.queryExtent(), pht.getDim(), pre); }
/** * @param e entry object that describes the query rectangle * @return a query iterator * @see #queryInclude(long[], long[]) */ public PhQueryS<T> queryInclude(PhEntryS<T> e) { return queryInclude(e.lower(), e.upper()); }
/** * Create a new tree with the specified number of dimensions. * * @param dim number of dimensions * @param pre a preprocessor instance * @return new tree * @param <T> value type of the tree */ public static <T> PhTreeSolidF<T> create(int dim, PreProcessorRangeF pre) { return new PhTreeSolidF<>(PhTree.create(dim*2), pre); }
@Override public PhIteratorS<T> iterator() { return new PhIteratorS<>(pht.queryExtent(), dims, pre); }
private void addEntry(PhEntry<T> e, long[] center) { double dist = distance.dist(center, e.getKey()); if (resultSize < entries.size()) { entries.get(resultSize).set(e, dist); } else { PhEntryDist<T> de = new PhEntryDist<>(e, dist); entries.add(de); } resultSize++; }
private void addEntry(PhEntry<T> e, long[] center) { double dist = distance.dist(center, e.getKey()); if (resultSize < entries.size()) { entries.get(resultSize).set(e, dist); } else { PhEntryDist<T> de = new PhEntryDist<>(e, dist); entries.add(de); } resultSize++; }