Class ZFastTrieDistributorMonotoneMinimalPerfectHashFunction<T>

java.lang.Object
it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction<T>
it.unimi.dsi.sux4j.mph.AbstractHashFunction<T>
it.unimi.dsi.sux4j.mph.ZFastTrieDistributorMonotoneMinimalPerfectHashFunction<T>
All Implemented Interfaces:
it.unimi.dsi.fastutil.Function<T,Long>, it.unimi.dsi.fastutil.objects.Object2LongFunction<T>, it.unimi.dsi.fastutil.Size64, Serializable, Function<T,Long>, ToLongFunction<T>

public class ZFastTrieDistributorMonotoneMinimalPerfectHashFunction<T> extends AbstractHashFunction<T> implements Serializable
A monotone minimal perfect hash implementation based on fixed-size bucketing that uses a z-fast trie as a distributor.

See the package overview for a comparison with other implementations. Similarly to a GOV3Function, an instance of this class may be signed.

See Also:
  • Nested Class Summary

    Nested Classes
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final long
     
    protected final long
    The mask to compare signatures, or zero for no signatures.
    protected final it.unimi.dsi.fastutil.longs.LongBigList
    The signatures.

    Fields inherited from class it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction

    defRetValue
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    ZFastTrieDistributorMonotoneMinimalPerfectHashFunction(Iterable<? extends T> keys, it.unimi.dsi.bits.TransformationStrategy<? super T> transform, int log2BucketSize, int signatureWidth, File tempDir)
    Creates a new monotone minimal perfect hash function based on a z-fast trie distributor using the given keys, transformation strategy and bucket size.
  • Method Summary

    Modifier and Type
    Method
    Description
    long
     
    static void
    main(String[] arg)
     
    long
     
    long
     

    Methods inherited from class it.unimi.dsi.sux4j.mph.AbstractHashFunction

    containsKey, size

    Methods inherited from class it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction

    defaultReturnValue, defaultReturnValue

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface it.unimi.dsi.fastutil.Function

    apply, clear

    Methods inherited from interface java.util.function.Function

    compose

    Methods inherited from interface it.unimi.dsi.fastutil.objects.Object2LongFunction

    andThen, andThenByte, andThenChar, andThenDouble, andThenFloat, andThenInt, andThenLong, andThenObject, andThenReference, andThenShort, applyAsLong, composeByte, composeChar, composeDouble, composeFloat, composeInt, composeLong, composeObject, composeReference, composeShort, get, getOrDefault, getOrDefault, put, put, remove, removeLong
  • Field Details

    • serialVersionUID

      public static final long serialVersionUID
      See Also:
    • signatureMask

      protected final long signatureMask
      The mask to compare signatures, or zero for no signatures.
    • signatures

      protected final it.unimi.dsi.fastutil.longs.LongBigList signatures
      The signatures.
  • Constructor Details

    • ZFastTrieDistributorMonotoneMinimalPerfectHashFunction

      protected ZFastTrieDistributorMonotoneMinimalPerfectHashFunction(Iterable<? extends T> keys, it.unimi.dsi.bits.TransformationStrategy<? super T> transform, int log2BucketSize, int signatureWidth, File tempDir) throws IOException
      Creates a new monotone minimal perfect hash function based on a z-fast trie distributor using the given keys, transformation strategy and bucket size.
      Parameters:
      keys - the keys among which the trie must be able to rank.
      transform - a transformation strategy that must turn the keys into a list of distinct, prefix-free, lexicographically increasing (in iteration order) bit vectors.
      log2BucketSize - the logarithm of the bucket size, or -1 for the default value.
      signatureWidth - a signature width, or 0 for no signature.
      tempDir - a temporary directory for the store files, or null for the standard temporary directory.
      Throws:
      IOException
  • Method Details

    • getLong

      public long getLong(Object o)
      Specified by:
      getLong in interface it.unimi.dsi.fastutil.objects.Object2LongFunction<T>
    • size64

      public long size64()
      Specified by:
      size64 in interface it.unimi.dsi.fastutil.Size64
      Overrides:
      size64 in class AbstractHashFunction<T>
    • numBits

      public long numBits()
    • main

      public static void main(String[] arg) throws NoSuchMethodException, IOException, com.martiansoftware.jsap.JSAPException
      Throws:
      NoSuchMethodException
      IOException
      com.martiansoftware.jsap.JSAPException