Class CustomWidthArray

  • All Implemented Interfaces:
    java.io.Serializable

    public final class CustomWidthArray
    extends java.lang.Object
    implements java.io.Serializable
    An array with a custom word "width" in bits. Borrows heavily from Sux4J (http://sux.dsi.unimi.it/)
    Author:
    adampauls
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      CustomWidthArray​(long numWords, int keyWidth)  
      CustomWidthArray​(long numWords, int keyWidth, int fullWidth)  
    • Constructor Detail

      • CustomWidthArray

        public CustomWidthArray​(long numWords,
                                int keyWidth)
      • CustomWidthArray

        public CustomWidthArray​(long numWords,
                                int keyWidth,
                                int fullWidth)
    • Method Detail

      • getKeyWidth

        public int getKeyWidth()
      • ensureCapacity

        public void ensureCapacity​(long numWords)
      • trim

        public void trim()
      • trimToSize

        public void trimToSize​(long sizeHere)
        Parameters:
        sizeHere -
      • getBit

        public boolean getBit​(long index)
      • clear

        public void clear​(long index)
      • add

        public boolean add​(long value)
      • addWithFixedCapacity

        public boolean addWithFixedCapacity​(long value)
      • get

        public long get​(long index)
      • get

        public long get​(long index,
                        int offset,
                        int width)
      • numBitsNeeded

        public static int numBitsNeeded​(long n)
      • set

        public void set​(long index,
                        long value)
      • set

        public void set​(long index,
                        long value,
                        int offset,
                        int width)
      • setAndGrowIfNeeded

        public void setAndGrowIfNeeded​(long pos,
                                       long value)
      • setAndGrowIfNeeded

        public void setAndGrowIfNeeded​(long pos,
                                       long value,
                                       int offset,
                                       int width)
      • size

        public long size()
      • fill

        public void fill​(long l,
                         long n)
      • linearSearch

        public long linearSearch​(long key,
                                 long rangeStart,
                                 long rangeEnd,
                                 long startIndex,
                                 long emptyKey,
                                 boolean returnFirstEmptyIndex)
      • incrementCount

        public void incrementCount​(long index,
                                   long count)
      • getFullWidth

        public int getFullWidth()