Class LinearScanEuclideanKNNByObject<O extends elki.data.NumberVector>

  • Type Parameters:
    O - relation object type
    All Implemented Interfaces:
    elki.database.query.knn.KNNSearcher<O>, elki.database.query.LinearScanQuery

    public class LinearScanEuclideanKNNByObject<O extends elki.data.NumberVector>
    extends LinearScanPrimitiveKNNByObject<O>
    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, and to first find the nearest neighbors with squared Euclidean distances, then only compute the square root for the results.

    Since:
    0.7.0
    Author:
    Erich Schubert
    • Constructor Summary

      Constructors 
      Constructor Description
      LinearScanEuclideanKNNByObject​(elki.database.query.distance.PrimitiveDistanceQuery<O> distanceQuery)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      elki.database.ids.KNNList getKNN​(O obj, int k)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • LinearScanEuclideanKNNByObject

        public LinearScanEuclideanKNNByObject​(elki.database.query.distance.PrimitiveDistanceQuery<O> distanceQuery)
        Constructor.
        Parameters:
        distanceQuery - Distance function to use
    • Method Detail

      • getKNN

        public elki.database.ids.KNNList getKNN​(O obj,
                                                int k)
        Specified by:
        getKNN in interface elki.database.query.knn.KNNSearcher<O extends elki.data.NumberVector>
        Overrides:
        getKNN in class LinearScanPrimitiveKNNByObject<O extends elki.data.NumberVector>