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.