Class SimplifiedCoverTree.CoverTreePrioritySearcher<Q>

    • Field Detail

      • threshold

        double threshold
        Stopping distance threshold.
      • tmp

        private DBIDVar tmp
        Temporary storage.
      • routingDist

        private double routingDist
        Distance to routing object.
      • maxDist

        private double maxDist
        Maximum distance of current node.
      • lb

        private double lb
        Current lower bound.
    • Constructor Detail

      • CoverTreePrioritySearcher

        public CoverTreePrioritySearcher()
        Constructor.
    • Method Detail

      • queryDistance

        protected abstract double queryDistance​(DBIDRef it)
        Compute distance to query object.
        Parameters:
        it - Candidate
        Returns:
        Distance
      • doSearch

        protected PrioritySearcher<Q> doSearch()
        Start the search.
        Returns:
        this.
      • 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
      • 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)
      • 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.
      • advanceQueue

        protected boolean advanceQueue()
        Expand the next node of the priority heap.
      • 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
      • 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
      • 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
      • 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
      • 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