/** * Same as {@link #queryIntersect(double[], double[])}, except that it returns a list * instead of an iterator. This may be faster for small result sets. * @param lower min value * @param upper max value * @return List of query results */ public List<PhEntrySF<T>> queryIntersectAll(double[] lower, double[] upper) { return queryIntersectAll(lower, upper, Integer.MAX_VALUE, null, e -> { double[] lo = new double[lower.length]; double[] up = new double[lower.length]; pre.post(e.getKey(), lo, up); return new PhEntrySF<>(lo, up, e.getValue()); }); }
@Override public PhEntrySF<T> nextEntry() { double[] lower = new double[dims]; double[] upper = new double[dims]; PhEntry<T> pvEntry = iter.nextEntryReuse(); pre.post(pvEntry.getKey(), lower, upper); return new PhEntrySF<>(lower, upper, pvEntry.getValue()); } @Override
protected PhIteratorSF(PhIteratorBase<T, ? extends PhEntry<T>> iter, int dims, PreProcessorRangeF pre) { this.iter = iter; this.dims = dims; this.pre = pre; this.buffer = new PhEntrySF<>(new double[dims], new double[dims], null); } @Override