Class TwoIndex

    • Constructor Detail

      • TwoIndex

        public TwoIndex​(int id1,
                        int id2)
    • Method Detail

      • size

        public int size()
        Description copied from interface: IColIndex
        Get the size of the index aka, how many columns is contained
        Returns:
        The size of the array
      • get

        public int get​(int i)
        Description copied from interface: IColIndex
        Get the index at a specific location, Note that many of the underlying implementations does not throw exceptions on indexes that are completely wrong, so all implementations that use this index should always be well behaved.
        Parameters:
        i - The index to get
        Returns:
        the column index at the index.
      • shift

        public TwoIndex shift​(int i)
        Description copied from interface: IColIndex
        Return a new column index where the values are shifted by the specified amount. It is returning a new instance of the index.
        Parameters:
        i - The amount to shift
        Returns:
        the new instance of an index.
      • iterator

        public IIterate iterator()
        Description copied from interface: IColIndex
        A Iterator of the indexes see the iterator interface for details.
        Returns:
        A iterator for the indexes contained.
      • write

        public void write​(DataOutput out)
                   throws IOException
        Description copied from interface: IColIndex
        Write out the IO representation of this column index
        Parameters:
        out - The Output to write into
        Throws:
        IOException - IO exceptions in case of for instance not enough disk space
      • getExactSizeOnDisk

        public long getExactSizeOnDisk()
        Description copied from interface: IColIndex
        Get the exact size on disk to enable preallocation of the disk output buffer sizes
        Returns:
        The exact disk representation size
      • estimateInMemorySize

        public long estimateInMemorySize()
        Description copied from interface: IColIndex
        Get the in memory size of this object.
        Returns:
        The memory size of this object
      • estimateInMemorySizeStatic

        public static long estimateInMemorySizeStatic()
      • findIndex

        public int findIndex​(int i)
        Description copied from interface: IColIndex
        Find the index of the value given return negative if non existing.
        Parameters:
        i - the value to find inside the allocation
        Returns:
        The index of the value.
      • slice

        public IColIndex.SliceResult slice​(int l,
                                           int u)
        Description copied from interface: IColIndex
        Slice the range given. The slice result is an object containing the indexes in the original array to slice out and a new index for the sliced columns offset by l. Example: ArrayIndex(1,3,5).slice(2,6) returns SliceResult(1,3,ArrayIndex(1,3))
        Parameters:
        l - inclusive lower bound
        u - exclusive upper bound
        Returns:
        A slice result
      • equals

        public boolean equals​(IColIndex other)
      • combine

        public IColIndex combine​(IColIndex other)
        Description copied from interface: IColIndex
        combine the indexes of this colIndex with another, it is expected that all calls to this contains unique indexes, and no copies of values.
        Parameters:
        other - The other array
        Returns:
        The combined array
      • isContiguous

        public boolean isContiguous()
        Description copied from interface: IColIndex
        Get if these columns are contiguous, meaning all indexes are integers at increments of 1. ex: 1,2,3,4,5,6 is contiguous 1,3,4 is not.
        Returns:
        If the Columns are contiguous.
      • getReorderingIndex

        public int[] getReorderingIndex()
        Description copied from interface: IColIndex
        If the columns are not in sorted incrementing order this method can be called to get the sorting index for this set of column indexes. The returned list should be the mapping of elements for each column to where it should be after sorting.
        Returns:
        A Reordered index.
      • isSorted

        public boolean isSorted()
        Description copied from interface: IColIndex
        Get if the Index is sorted.
        Returns:
        If the index is sorted
      • sort

        public IColIndex sort()
        Description copied from interface: IColIndex
        Sort the index and return a new object if there are modifications otherwise return this.
        Returns:
        The sorted instance of this column index.
      • contains

        public boolean contains​(int i)
        Description copied from interface: IColIndex
        Analyze if this column group contain the given column id
        Parameters:
        i - id to search for
        Returns:
        if it is contained
      • avgOfIndex

        public double avgOfIndex()
        Description copied from interface: IColIndex
        Get the average of this index. We use this to sort the priority que when combining equivalent costly groups
        Returns:
        The average of the indexes.