Class CASHInterval

  • All Implemented Interfaces:
    SpatialComparable, java.io.Externalizable, java.io.Serializable, java.lang.Comparable<CASHInterval>

    public class CASHInterval
    extends HyperBoundingBox
    implements java.lang.Comparable<CASHInterval>
    Provides a unique interval represented by its id, a hyper bounding box representing the alpha intervals, an interval of the corresponding distance, and a set of objects ids associated with this interval.
    Since:
    0.1
    Author:
    Elke Achtert
    See Also:
    Serialized Form
    • Field Detail

      • LOG

        private static final Logging LOG
        Class logger.
      • serialVersionUID

        private static final long serialVersionUID
        Serial version number.
        See Also:
        Constant Field Values
      • ID

        private static int ID
        Used for id assignment.
      • intervalID

        private final int intervalID
        Holds the unique id of this interval.
      • level

        private int level
        The level of this interval, 0 indicates the root level.
      • d_min

        private double d_min
        The minimum distance value.
      • d_max

        private double d_max
        The maximum distance value.
      • ids

        private ModifiableDBIDs ids
        Holds the ids of the objects associated with this interval.
      • maxSplitDimension

        private int maxSplitDimension
        Holds the maximum dimension which has already been split.
      • leftChild

        private CASHInterval leftChild
        Holds the left child.
      • rightChild

        private CASHInterval rightChild
        Holds the right child.
    • Constructor Detail

      • CASHInterval

        public CASHInterval()
        Empty constructor for Externalizable interface.
      • CASHInterval

        public CASHInterval​(double[] min,
                            double[] max,
                            CASHIntervalSplit split,
                            ModifiableDBIDs ids,
                            int maxSplitDimension,
                            int level,
                            double d_min,
                            double d_max)
        Provides a unique interval represented by its id, a hyper bounding box and a set of objects ids associated with this interval.
        Parameters:
        min - the coordinates of the minimum hyper point
        max - the coordinates of the maximum hyper point
        split - the object to perform interval splitting
        ids - the ids of the objects associated with this interval
        maxSplitDimension - the maximum dimension which has already been split
        level - the level of this interval, 0 indicates the root level
        d_min - the minimum distance value
        d_max - the maximum distance value
    • Method Detail

      • getIDs

        public ModifiableDBIDs getIDs()
        Returns the set of ids of the objects associated with this interval.
        Returns:
        the set of ids of the objects associated with this interval
      • removeIDs

        public void removeIDs​(DBIDs ids2)
        Removes the specified ids from this interval.
        Parameters:
        ids2 - the set of ids to be removed
      • numObjects

        public int numObjects()
        Returns the number of objects associated with this interval.
        Returns:
        the number of objects associated with this interval
      • toString

        public java.lang.String toString()
        Description copied from class: HyperBoundingBox
        Returns a String representation of the HyperBoundingBox.
        Overrides:
        toString in class HyperBoundingBox
        Returns:
        a string representation of this hyper bounding box
      • priority

        public int priority()
        Returns the priority of this interval (used as key in the heap).
        Returns:
        the priority of this interval (used as key in the heap)
      • getMaxSplitDimension

        public int getMaxSplitDimension()
        Returns the maximum split dimension.
        Returns:
        the maximum split dimension
      • getLevel

        public int getLevel()
        Returns the level of this interval.
        Returns:
        the level of this interval
      • getLeftChild

        public CASHInterval getLeftChild()
        Returns the left child of this interval.
        Returns:
        the left child of this interval
      • getRightChild

        public CASHInterval getRightChild()
        Returns the right child of this interval.
        Returns:
        the right child of this interval
      • getD_min

        public double getD_min()
        Returns the minimum distance value.
        Returns:
        the minimum distance value
      • getD_max

        public double getD_max()
        Returns the maximum distance value.
        Returns:
        the maximum distance value
      • compareTo

        public int compareTo​(CASHInterval other)
        Specified by:
        compareTo in interface java.lang.Comparable<CASHInterval>
      • hasChildren

        public boolean hasChildren()
        Returns true if this interval has children.
        Returns:
        if this interval has children
      • split

        public void split()
        Splits this interval into 2 children.