public PhRangeQuery<T> reset(double range, long... center) { filter.set(center, dist, range); dist.toMBB(range, center, min, max); q.reset(min, max); return this; }
private final boolean findNeighbours(double maxDist, int nMin, long[] val) { results.maxDistance = maxDist; checker.set(val, distance, maxDist); distance.toMBB(maxDist, val, mbbMin, mbbMax); iter.resetAndRun(pht.getRoot(), mbbMin, mbbMax, Integer.MAX_VALUE); if (results.size() < nMin) { //too small, we need a bigger range return false; } return true; }
@Override public PhRangeQuery<T> rangeQuery(double dist, PhDistance optionalDist, long...center) { PhFilterDistance filter = new PhFilterDistance(); if (optionalDist == null) { optionalDist = PhDistanceL.THIS; } filter.set(center, optionalDist, dist); PhQuery<T> q = new PhIteratorNoGC<>(this, filter); PhRangeQuery<T> qr = new PhRangeQuery<>(q, this, optionalDist, filter); qr.reset(dist, center); return qr; }
private final boolean findNeighbours(double maxDist, int nMin, long[] val) { results.maxDistance = maxDist; checker.set(val, distance, maxDist); distance.toMBB(maxDist, val, mbbMin, mbbMax); iter.resetAndRun(pht.getRoot(), mbbMin, mbbMax, Integer.MAX_VALUE); if (results.size() < nMin) { //too small, we need a bigger range return false; } return true; }
@Override public PhRangeQuery<T> rangeQuery(double dist, PhDistance optionalDist, long...center) { PhFilterDistance filter = new PhFilterDistance(); if (optionalDist == null) { optionalDist = PhDistanceL.THIS; } filter.set(center, optionalDist, dist); PhQuery<T> q = new PhIteratorNoGC<T>(this, filter); PhRangeQuery<T> qr = new PhRangeQuery<>(q, this, optionalDist, filter); qr.reset(dist, center); return qr; }
@Override public PhRangeQuery<T> rangeQuery(double dist, PhDistance optionalDist, long...center) { PhFilterDistance filter = new PhFilterDistance(); if (optionalDist == null) { optionalDist = PhDistanceL.THIS; } filter.set(center, optionalDist, dist); PhQuery<T> q = new PhIteratorNoGC<>(this, filter); PhRangeQuery<T> qr = new PhRangeQuery<>(q, this, optionalDist, filter); qr.reset(dist, center); return qr; }
@Override public PhRangeQuery<T> rangeQuery(double dist, PhDistance optionalDist, long...center) { PhFilterDistance filter = new PhFilterDistance(); if (optionalDist == null) { optionalDist = PhDistanceL.THIS; } filter.set(center, optionalDist, dist); PhQuery<T> q = new PhIteratorNoGC<>(this, filter); PhRangeQuery<T> qr = new PhRangeQuery<>(q, this, optionalDist, filter); qr.reset(dist, center); return qr; }
@Override public PhRangeQuery<T> rangeQuery(double dist, PhDistance optionalDist, long...center) { PhFilterDistance filter = new PhFilterDistance(); if (optionalDist == null) { optionalDist = PhDistanceL.THIS; } filter.set(center, optionalDist, dist); PhQuery<T> q = new PhIteratorNoGC<>(this, filter); PhRangeQuery<T> qr = new PhRangeQuery<>(q, this, optionalDist, filter); qr.reset(dist, center); return qr; }
final int CONSOLIDATION_INTERVAL = 10; clearEntries(); checker.set(val, distance, maxDist); distance.toMBB(maxDist, val, mbbMin, mbbMax); itEx.reset(mbbMin, mbbMax); checker.set(val, distance, maxDist); distance.toMBB(maxDist, val, mbbMin, mbbMax); maxDist = consolidate(nMin, EPS, maxDist); checker.set(val, distance, maxDist); distance.toMBB(maxDist, val, mbbMin, mbbMax);
final int CONSOLIDATION_INTERVAL = 10; clearEntries(); checker.set(val, distance, maxDist); distance.toMBB(maxDist, val, mbbMin, mbbMax); iter.reset(mbbMin, mbbMax); checker.set(val, distance, maxDist); distance.toMBB(maxDist, val, mbbMin, mbbMax); iter.adjustMinMax(); maxDist = consolidate(nMin, EPS, maxDist); checker.set(val, distance, maxDist); distance.toMBB(maxDist, val, mbbMin, mbbMax); iter.adjustMinMax();
final int CONSOLIDATION_INTERVAL = 10; clearEntries(); checker.set(val, distance, maxDist); distance.toMBB(maxDist, val, mbbMin, mbbMax); iter.reset(mbbMin, mbbMax); checker.set(val, distance, maxDist); distance.toMBB(maxDist, val, mbbMin, mbbMax); iter.adjustMinMax(); maxDist = consolidate(nMin, EPS, maxDist); checker.set(val, distance, maxDist); distance.toMBB(maxDist, val, mbbMin, mbbMax); iter.adjustMinMax();
PhEntryDist<T> e = results.getFreeEntry(); e.setCopyKey(val, pht.get(val), 0); checker.set(val, distance, Double.MAX_VALUE); results.phOffer(e); return; PhEntryDist<T> e2 = results.getFreeEntry(); e2.set(e, distance.dist(val, e.getKey())); checker.set(val, distance, Double.MAX_VALUE); results.phOffer(e2);
PhEntryDist<T> e = results.getFreeEntry(); e.setCopyKey(val, pht.get(val), 0); checker.set(val, distance, Double.MAX_VALUE); results.phOffer(e); return; PhEntryDist<T> e2 = results.getFreeEntry(); e2.set(e, distance.dist(val, e.getKey())); checker.set(val, distance, Double.MAX_VALUE); results.phOffer(e2);