de.lmu.ifi.dbs.elki.database.query.knn
Class LinearScanPrimitiveDistanceKNNQuery<O,D extends Distance<D>>
java.lang.Object
de.lmu.ifi.dbs.elki.database.query.AbstractDataBasedQuery<O>
de.lmu.ifi.dbs.elki.database.query.knn.AbstractDistanceKNNQuery<O,D>
de.lmu.ifi.dbs.elki.database.query.knn.LinearScanKNNQuery<O,D>
de.lmu.ifi.dbs.elki.database.query.knn.LinearScanPrimitiveDistanceKNNQuery<O,D>
- All Implemented Interfaces:
- DatabaseQuery, KNNQuery<O,D>, LinearScanQuery
- Direct Known Subclasses:
- LinearScanRawDoubleDistanceKNNQuery
public class LinearScanPrimitiveDistanceKNNQuery<O,D extends Distance<D>>
- extends LinearScanKNNQuery<O,D>
Instance of this query for a particular database.
This is a subtle optimization: for primitive queries, it is clearly faster to
retrieve the query object from the relation only once!
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
LinearScanPrimitiveDistanceKNNQuery
public LinearScanPrimitiveDistanceKNNQuery(PrimitiveDistanceQuery<O,D> distanceQuery)
- Constructor.
- Parameters:
distanceQuery
- Distance function to use
linearScanBatchKNN
protected void linearScanBatchKNN(List<O> objs,
List<KNNHeap<D>> heaps)
- Perform a linear scan batch kNN for primitive distance functions.
- Parameters:
objs
- Objects listheaps
- Heaps array
getKNNForDBID
public List<DistanceResultPair<D>> getKNNForDBID(DBID id,
int k)
- Description copied from interface:
KNNQuery
- Get the k nearest neighbors for a particular id.
- Specified by:
getKNNForDBID
in interface KNNQuery<O,D extends Distance<D>>
- Overrides:
getKNNForDBID
in class LinearScanKNNQuery<O,D extends Distance<D>>
- Parameters:
id
- query object IDk
- Number of neighbors requested
- Returns:
- neighbors
getKNNForBulkDBIDs
public List<List<DistanceResultPair<D>>> getKNNForBulkDBIDs(ArrayDBIDs ids,
int k)
- Description copied from interface:
KNNQuery
- Bulk query method
- Specified by:
getKNNForBulkDBIDs
in interface KNNQuery<O,D extends Distance<D>>
- Overrides:
getKNNForBulkDBIDs
in class LinearScanKNNQuery<O,D extends Distance<D>>
- Parameters:
ids
- query object IDsk
- Number of neighbors requested
- Returns:
- neighbors
getKNNForBulkHeaps
public void getKNNForBulkHeaps(Map<DBID,KNNHeap<D>> heaps)
- Description copied from interface:
KNNQuery
- Bulk query method configured by a map.
Warning: this API is not optimal, and might be removed soon (in fact, it is
used in a single place)
- Specified by:
getKNNForBulkHeaps
in interface KNNQuery<O,D extends Distance<D>>
- Overrides:
getKNNForBulkHeaps
in class LinearScanKNNQuery<O,D extends Distance<D>>
- Parameters:
heaps
- Map of heaps to fill.