Package it.unimi.dsi.sux4j.mph
Class ZFastTrieDistributorMonotoneMinimalPerfectHashFunction<T>
- java.lang.Object
-
- it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction<K>
-
- it.unimi.dsi.sux4j.mph.AbstractHashFunction<T>
-
- it.unimi.dsi.sux4j.mph.ZFastTrieDistributorMonotoneMinimalPerfectHashFunction<T>
-
- All Implemented Interfaces:
it.unimi.dsi.fastutil.Function<T,java.lang.Long>
,it.unimi.dsi.fastutil.objects.Object2LongFunction<T>
,it.unimi.dsi.fastutil.Size64
,java.io.Serializable
,java.util.function.Function<T,java.lang.Long>
,java.util.function.ToLongFunction<T>
public class ZFastTrieDistributorMonotoneMinimalPerfectHashFunction<T> extends AbstractHashFunction<T> implements java.io.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:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ZFastTrieDistributorMonotoneMinimalPerfectHashFunction.Builder<T>
A builder class forZFastTrieDistributorMonotoneMinimalPerfectHashFunction
.
-
Field Summary
Fields Modifier and Type Field Description static long
serialVersionUID
protected long
signatureMask
The mask to compare signatures, or zero for no signatures.protected it.unimi.dsi.fastutil.longs.LongBigList
signatures
The signatures.
-
Constructor Summary
Constructors Modifier Constructor Description protected
ZFastTrieDistributorMonotoneMinimalPerfectHashFunction(java.lang.Iterable<? extends T> keys, it.unimi.dsi.bits.TransformationStrategy<? super T> transform, int log2BucketSize, int signatureWidth, java.io.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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description long
getLong(java.lang.Object o)
static void
main(java.lang.String[] arg)
long
numBits()
long
size64()
-
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.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 Detail
-
serialVersionUID
public static final long serialVersionUID
- See Also:
- Constant Field Values
-
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 Detail
-
ZFastTrieDistributorMonotoneMinimalPerfectHashFunction
protected ZFastTrieDistributorMonotoneMinimalPerfectHashFunction(java.lang.Iterable<? extends T> keys, it.unimi.dsi.bits.TransformationStrategy<? super T> transform, int log2BucketSize, int signatureWidth, java.io.File tempDir) throws java.io.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, ornull
for the standard temporary directory.- Throws:
java.io.IOException
-
-
Method Detail
-
getLong
public long getLong(java.lang.Object o)
- Specified by:
getLong
in interfaceit.unimi.dsi.fastutil.objects.Object2LongFunction<T>
-
size64
public long size64()
- Specified by:
size64
in interfaceit.unimi.dsi.fastutil.Size64
- Overrides:
size64
in classAbstractHashFunction<T>
-
numBits
public long numBits()
-
main
public static void main(java.lang.String[] arg) throws java.lang.NoSuchMethodException, java.io.IOException, com.martiansoftware.jsap.JSAPException
- Throws:
java.lang.NoSuchMethodException
java.io.IOException
com.martiansoftware.jsap.JSAPException
-
-