Class LinearScanPrioritySearcher<Q,​O>

    • Field Detail

      • distanceQuery

        protected DistanceQuery<O> distanceQuery
        Distance to use.
      • iter

        protected DBIDIter iter
        Iterator.
      • query

        protected O query
        Current query object.
      • curdist

        protected double curdist
        Current distance
    • Constructor Detail

      • LinearScanPrioritySearcher

        public LinearScanPrioritySearcher​(DistanceQuery<O> distanceQuery)
        Constructor.
        Parameters:
        distanceQuery - Distance function to use
    • Method Detail

      • realSearch

        protected PrioritySearcher<Q> realSearch​(O query)
        Implementation of the search function.
        Parameters:
        query - Query object
        Returns:
        this
      • valid

        public boolean valid()
        Description copied from interface: Iter
        Returns true if the iterator currently points to a valid object.
        Specified by:
        valid in interface Iter
        Returns:
        a boolean value, whether the position is valid.
      • internalGetIndex

        public int internalGetIndex()
        Description copied from interface: DBIDRef
        Internal only: Get the internal index.

        NOT FOR PUBLIC USE - ELKI Optimization engine only.

        Specified by:
        internalGetIndex in interface DBIDRef
        Returns:
        Internal index
      • decreaseCutoff

        public PrioritySearcher<Q> decreaseCutoff​(double threshold)
        Description copied from interface: PrioritySearcher
        Decrease the cutoff threshold.

        The cutoff must not be increased, as the search may have pruned some results automatically.

        Specified by:
        decreaseCutoff in interface PrioritySearcher<Q>
        Parameters:
        threshold - Threshold parameter
        Returns:
        this, for chaining
      • computeExactDistance

        public double computeExactDistance()
        Description copied from interface: PrioritySearcher
        Compute the exact distance to the current candidate.

        The searcher may or may not have this value already.

        Specified by:
        computeExactDistance in interface PrioritySearcher<Q>
        Returns:
        Distance
      • getApproximateAccuracy

        public double getApproximateAccuracy()
        Description copied from interface: PrioritySearcher
        Get approximate distance accuracy (if available).

        Quality guarantees may vary a lot!

        Specified by:
        getApproximateAccuracy in interface PrioritySearcher<Q>
        Returns:
        Double.NaN if not valid
      • getApproximateDistance

        public double getApproximateDistance()
        Description copied from interface: PrioritySearcher
        Get approximate distance (if available).

        Quality guarantees may vary a lot!

        Specified by:
        getApproximateDistance in interface PrioritySearcher<Q>
        Returns:
        Double.NaN if not valid
      • getLowerBound

        public double getLowerBound()
        Description copied from interface: PrioritySearcher
        Get the lower bound (if available).

        Note: the lower bound is already checked by the cutoff of the priority search, so this is primarily useful for analyzing the search behavior.

        Specified by:
        getLowerBound in interface PrioritySearcher<Q>
        Returns:
        Double.NaN if not valid
      • getUpperBound

        public double getUpperBound()
        Description copied from interface: PrioritySearcher
        Get the upper bound (if available).
        Specified by:
        getUpperBound in interface PrioritySearcher<Q>
        Returns:
        Double.NaN if not valid
      • allLowerBound

        public double allLowerBound()
        Description copied from interface: PrioritySearcher
        Lower bound for all subsequent instances (that have been completely explored). The searcher guarantees that no further results will be returned with a distance less than this.
        Specified by:
        allLowerBound in interface PrioritySearcher<Q>
        Returns:
        lower bound; 0 if no guarantees (e.g., linear scan)