public class LinearScanPrimitiveDistanceKNNQuery<O> extends AbstractDistanceKNNQuery<O> implements LinearScanQuery
Modifier and Type | Field and Description |
---|---|
private PrimitiveDistanceFunction<? super O> |
rawdist
Unboxed distance function.
|
distanceQuery, relation
HINT_BULK, HINT_EXACT, HINT_HEAVY_USE, HINT_NO_CACHE, HINT_OPTIMIZED_ONLY, HINT_SINGLE
Constructor and Description |
---|
LinearScanPrimitiveDistanceKNNQuery(PrimitiveDistanceQuery<O> distanceQuery)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
List<KNNList> |
getKNNForBulkDBIDs(ArrayDBIDs ids,
int k)
Bulk query method
|
KNNList |
getKNNForDBID(DBIDRef id,
int k)
Get the k nearest neighbors for a particular id.
|
KNNList |
getKNNForObject(O obj,
int k)
Get the k nearest neighbors for a particular id.
|
private KNNHeap |
linearScan(Relation<? extends O> relation,
DBIDIter iter,
O obj,
KNNHeap heap)
Main loop of the linear scan.
|
protected void |
linearScanBatchKNN(List<O> objs,
List<KNNHeap> heaps)
Perform a linear scan batch kNN for primitive distance functions.
|
private PrimitiveDistanceFunction<? super O> rawdist
public LinearScanPrimitiveDistanceKNNQuery(PrimitiveDistanceQuery<O> distanceQuery)
distanceQuery
- Distance function to usepublic KNNList getKNNForDBID(DBIDRef id, int k)
KNNQuery
getKNNForDBID
in interface KNNQuery<O>
getKNNForDBID
in class AbstractDistanceKNNQuery<O>
id
- query object IDk
- Number of neighbors requestedpublic KNNList getKNNForObject(O obj, int k)
KNNQuery
getKNNForObject
in interface KNNQuery<O>
getKNNForObject
in class AbstractDistanceKNNQuery<O>
obj
- Query objectk
- Number of neighbors requestedprivate KNNHeap linearScan(Relation<? extends O> relation, DBIDIter iter, O obj, KNNHeap heap)
relation
- Data relationiter
- ID iteratorobj
- Query objectheap
- Output heappublic List<KNNList> getKNNForBulkDBIDs(ArrayDBIDs ids, int k)
KNNQuery
getKNNForBulkDBIDs
in interface KNNQuery<O>
getKNNForBulkDBIDs
in class AbstractDistanceKNNQuery<O>
ids
- query object IDsk
- Number of neighbors requestedCopyright © 2015 ELKI Development Team, Lehr- und Forschungseinheit für Datenbanksysteme, Ludwig-Maximilians-Universität München. License information.