public class MinimalisticMemoryKDTree.KDTreeRangeQuery extends AbstractDistanceRangeQuery<O,DoubleDistance>
Modifier and Type | Field and Description |
---|---|
private DoubleNorm<? super O> |
norm
Norm to use.
|
distanceQuery
relation
HINT_BULK, HINT_EXACT, HINT_HEAVY_USE, HINT_NO_CACHE, HINT_OPTIMIZED_ONLY, HINT_SINGLE
Constructor and Description |
---|
MinimalisticMemoryKDTree.KDTreeRangeQuery(DistanceQuery<O,DoubleDistance> distanceQuery,
DoubleNorm<? super O> norm)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
DoubleDistanceDBIDPairList |
getRangeForObject(O obj,
DoubleDistance range)
Get the nearest neighbors for a particular object in a given query range
|
private void |
kdRangeSearch(int left,
int right,
int axis,
O query,
ModifiableDoubleDistanceDBIDList res,
DBIDArrayIter iter,
double radius)
Perform a kNN search on the kd-tree.
|
getDistanceFactory, getRangeForDBID
getRelation
private DoubleNorm<? super O extends NumberVector<?>> norm
public MinimalisticMemoryKDTree.KDTreeRangeQuery(DistanceQuery<O,DoubleDistance> distanceQuery, DoubleNorm<? super O> norm)
distanceQuery
- Distance querynorm
- Norm to usepublic DoubleDistanceDBIDPairList getRangeForObject(O obj, DoubleDistance range)
RangeQuery
getRangeForObject
in interface RangeQuery<O extends NumberVector<?>,DoubleDistance>
getRangeForObject
in class AbstractDistanceRangeQuery<O extends NumberVector<?>,DoubleDistance>
obj
- Query objectrange
- Query rangeprivate void kdRangeSearch(int left, int right, int axis, O query, ModifiableDoubleDistanceDBIDList res, DBIDArrayIter iter, double radius)
left
- Subtree beginright
- Subtree end (exclusive)axis
- Current splitting axisquery
- Query objectres
- kNN heapiter
- Iterator variable (reduces memory footprint!)radius
- Query radius