Class GV3CompressedFunction.Builder<T>

java.lang.Object
it.unimi.dsi.sux4j.mph.GV3CompressedFunction.Builder<T>
Enclosing class:
GV3CompressedFunction<T>

public static class GV3CompressedFunction.Builder<T> extends Object
  • Field Details

    • keys

      protected Iterable<? extends T> keys
    • transform

      protected it.unimi.dsi.bits.TransformationStrategy<? super T> transform
    • tempDir

      protected File tempDir
    • bucketedHashStore

      protected BucketedHashStore<T> bucketedHashStore
    • values

      protected it.unimi.dsi.fastutil.longs.LongIterable values
    • indirect

      protected boolean indirect
    • built

      protected boolean built
      Whether build() has already been called.
    • codec

      protected Codec codec
    • peeled

      protected boolean peeled
  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • keys

      public GV3CompressedFunction.Builder<T> keys(Iterable<? extends T> keys)
      Specifies the keys of the function; if you have specified a BucketedHashStore, it can be null.
      Parameters:
      keys - the keys of the function.
      Returns:
      this builder.
    • transform

      public GV3CompressedFunction.Builder<T> transform(it.unimi.dsi.bits.TransformationStrategy<? super T> transform)
      Specifies the transformation strategy for the keys of the function; the strategy can be raw.
      Parameters:
      transform - a transformation strategy for the keys of the function.
      Returns:
      this builder.
    • tempDir

      public GV3CompressedFunction.Builder<T> tempDir(File tempDir)
      Specifies a temporary directory for the BucketedHashStore.
      Parameters:
      tempDir - a temporary directory for the BucketedHashStore files, or null for the standard temporary directory.
      Returns:
      this builder.
    • store

      public GV3CompressedFunction.Builder<T> store(BucketedHashStore<T> bucketedHashStore)
      Specifies a bucketed hash store containing the keys.

      Note that if you specify a store, it is your responsibility that it conforms to the rest of the data: it must contain ranks if you do not specify values or if you use the indirect feature, values otherwise.

      Parameters:
      bucketedHashStore - a bucketed hash store containing the keys associated with their values and counting value frequencies, or null; the store can be unchecked, but in this case you must specify keys and a transform (otherwise, in case of a hash collision in the store an IllegalStateException will be thrown).
      Returns:
      this builder.
    • values

      public GV3CompressedFunction.Builder<T> values(it.unimi.dsi.fastutil.longs.LongIterable values)
      Specifies the values assigned to the keys; the output width of the function will be the minimum width needed to represent all values.
      Parameters:
      values - values to be assigned to each element, in the same order of the keys.
      Returns:
      this builder.
    • indirect

      public GV3CompressedFunction.Builder<T> indirect()
      Specifies that the function construction must be indirect: a provided store contains indices that must be used to access the values.

      If you specify this option, the provided values must be a LongList or a LongBigList.

      Returns:
      this builder.
    • codec

      public GV3CompressedFunction.Builder<T> codec(Codec codec)
      Specifies a codec that will be used to encode the function output values. The default is a Codec.Huffman codec with default parameters.
      Parameters:
      codec - a codec that will be used to encode the function output values
      Returns:
      this builder.
    • peeled

      public GV3CompressedFunction.Builder<T> peeled()
      Specifies to use peeling rather than lazy Gaussian elimination; the resulting structure uses +12% space, but it can be constructed much more quickly.
      Returns:
      this builder.
    • build

      public GV3CompressedFunction<T> build() throws IOException
      Builds a new function.
      Returns:
      a GOV3Function instance with the specified parameters.
      Throws:
      IllegalStateException - if called more than once.
      IOException