Class LinearScanEuclideanPrioritySearcher<Q,​O extends elki.data.NumberVector>

  • Type Parameters:
    Q - Query type
    O - Relation object type
    All Implemented Interfaces:
    elki.database.ids.DBIDIter, elki.database.ids.DBIDRef, elki.database.query.knn.KNNSearcher<Q>, elki.database.query.LinearScanQuery, elki.database.query.PrioritySearcher<Q>, elki.database.query.range.RangeSearcher<Q>, elki.utilities.datastructures.iterator.Iter
    Direct Known Subclasses:
    LinearScanEuclideanPrioritySearcher.ByDBID, LinearScanEuclideanPrioritySearcher.ByObject

    public abstract class LinearScanEuclideanPrioritySearcher<Q,​O extends elki.data.NumberVector>
    extends java.lang.Object
    implements elki.database.query.PrioritySearcher<Q>, elki.database.query.LinearScanQuery
    Default linear scan search class, for Euclidean distance.

    This is a fallback option - results are not returned in order, and (as always) may exceed the given cutoff threshold.

    Since:
    0.4.0
    Author:
    Erich Schubert
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private double curdist
      Current distance.
      private double curdistsq
      Current squared distance.
      protected elki.database.query.distance.DistanceQuery<O> distanceQuery
      Distance to use.
      private elki.database.ids.DBIDIter iter
      Iterator.
      private O query
      Current query object.
      private static elki.distance.minkowski.SquaredEuclideanDistance SQUARED
      Squared distance
      private double thresholdsq
      Cutoff threshold.
      private double thresholdUp
      Fake lower bound to return for cut-off values.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      elki.database.query.PrioritySearcher<Q> advance()  
      double allLowerBound()  
      double computeExactDistance()  
      elki.database.query.PrioritySearcher<Q> decreaseCutoff​(double threshold)  
      double getApproximateAccuracy()  
      double getApproximateDistance()  
      double getLowerBound()  
      double getSquaredDistance()
      Get the squared distance.
      double getUpperBound()  
      int internalGetIndex()  
      elki.database.query.PrioritySearcher<Q> realSearch​(O query)
      The real search function.
      boolean valid()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface elki.database.ids.DBIDIter

        addTo
      • Methods inherited from interface elki.database.ids.DBIDRef

        equals, hashCode
      • Methods inherited from interface elki.database.query.PrioritySearcher

        getKNN, getRange, search, search
      • Methods inherited from interface elki.database.query.range.RangeSearcher

        getRange
    • Field Detail

      • distanceQuery

        protected elki.database.query.distance.DistanceQuery<O extends elki.data.NumberVector> distanceQuery
        Distance to use.
      • iter

        private elki.database.ids.DBIDIter iter
        Iterator.
      • query

        private O extends elki.data.NumberVector query
        Current query object.
      • thresholdUp

        private double thresholdUp
        Fake lower bound to return for cut-off values.
      • thresholdsq

        private double thresholdsq
        Cutoff threshold.
      • curdist

        private double curdist
        Current distance.
      • curdistsq

        private double curdistsq
        Current squared distance.
      • SQUARED

        private static final elki.distance.minkowski.SquaredEuclideanDistance SQUARED
        Squared distance
    • Constructor Detail

      • LinearScanEuclideanPrioritySearcher

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

      • realSearch

        public elki.database.query.PrioritySearcher<Q> realSearch​(O query)
        The real search function.
        Parameters:
        query - Query object
        Returns:
        this
      • valid

        public boolean valid()
        Specified by:
        valid in interface elki.utilities.datastructures.iterator.Iter
      • advance

        public elki.database.query.PrioritySearcher<Q> advance()
        Specified by:
        advance in interface elki.database.ids.DBIDIter
        Specified by:
        advance in interface elki.utilities.datastructures.iterator.Iter
        Specified by:
        advance in interface elki.database.query.PrioritySearcher<Q>
      • internalGetIndex

        public int internalGetIndex()
        Specified by:
        internalGetIndex in interface elki.database.ids.DBIDRef
      • decreaseCutoff

        public elki.database.query.PrioritySearcher<Q> decreaseCutoff​(double threshold)
        Specified by:
        decreaseCutoff in interface elki.database.query.PrioritySearcher<Q>
      • computeExactDistance

        public double computeExactDistance()
        Specified by:
        computeExactDistance in interface elki.database.query.PrioritySearcher<Q>
      • getSquaredDistance

        public double getSquaredDistance()
        Get the squared distance.
        Returns:
        squared distance
      • getApproximateAccuracy

        public double getApproximateAccuracy()
        Specified by:
        getApproximateAccuracy in interface elki.database.query.PrioritySearcher<Q>
      • getApproximateDistance

        public double getApproximateDistance()
        Specified by:
        getApproximateDistance in interface elki.database.query.PrioritySearcher<Q>
      • getLowerBound

        public double getLowerBound()
        Specified by:
        getLowerBound in interface elki.database.query.PrioritySearcher<Q>
      • getUpperBound

        public double getUpperBound()
        Specified by:
        getUpperBound in interface elki.database.query.PrioritySearcher<Q>
      • allLowerBound

        public double allLowerBound()
        Specified by:
        allLowerBound in interface elki.database.query.PrioritySearcher<Q>