Class LcpMonotoneMinimalPerfectHashFunction<T>
java.lang.Object
it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction<T>
it.unimi.dsi.sux4j.mph.AbstractHashFunction<T>
it.unimi.dsi.sux4j.mph.LcpMonotoneMinimalPerfectHashFunction<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 LcpMonotoneMinimalPerfectHashFunction<T>
extends AbstractHashFunction<T>
implements it.unimi.dsi.fastutil.Size64, Serializable
A monotone minimal perfect hash implementation based on fixed-size bucketing that uses
longest common prefixes as distributors.
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 ClassesModifier and TypeClassDescriptionstatic classA builder class forLcpMonotoneMinimalPerfectHashFunction. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final intThe size of a bucket.protected final intThe mask forlog2BucketSizebits.protected final GOV3Function<it.unimi.dsi.bits.BitVector> A function mapping each longest common prefix to its bucket.protected final intFast.ceilLog2(int)ofbucketSize.protected final longThe number of keys.protected final GOV3Function<it.unimi.dsi.bits.BitVector> A function mapping each key to the offset inside its bucket (lowestlog2BucketSizebits) and to the length of the longest common prefix of its bucket (remaining bits).protected final longThe seed returned by theBucketedHashStore.static final longprotected final longThe mask to compare signatures, or zero for no signatures.protected final it.unimi.dsi.fastutil.longs.LongBigListThe signatures.protected final it.unimi.dsi.bits.TransformationStrategy<? super T> The transformation strategy.Fields inherited from class it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction
defRetValue -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedLcpMonotoneMinimalPerfectHashFunction(Iterable<? extends T> keys, long numKeys, it.unimi.dsi.bits.TransformationStrategy<? super T> transform, int signatureWidth, File tempDir) Creates a new LCP monotone minimal perfect hash function for the given keys. -
Method Summary
Methods inherited from class AbstractHashFunction
containsKey, sizeMethods inherited from class it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction
defaultReturnValue, defaultReturnValueMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface it.unimi.dsi.fastutil.Function
apply, clearMethods 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, removeLongMethods inherited from interface it.unimi.dsi.fastutil.Size64
size
-
Field Details
-
serialVersionUID
public static final long serialVersionUID- See Also:
-
n
protected final long nThe number of keys. -
bucketSize
protected final int bucketSizeThe size of a bucket. -
log2BucketSize
protected final int log2BucketSizeFast.ceilLog2(int)ofbucketSize. -
bucketSizeMask
protected final int bucketSizeMaskThe mask forlog2BucketSizebits. -
offsetLcpLength
A function mapping each key to the offset inside its bucket (lowestlog2BucketSizebits) and to the length of the longest common prefix of its bucket (remaining bits). -
lcp2Bucket
A function mapping each longest common prefix to its bucket. -
transform
The transformation strategy. -
seed
protected final long seedThe seed returned by theBucketedHashStore. -
signatureMask
protected final long signatureMaskThe mask to compare signatures, or zero for no signatures. -
signatures
protected final it.unimi.dsi.fastutil.longs.LongBigList signaturesThe signatures.
-
-
Constructor Details
-
LcpMonotoneMinimalPerfectHashFunction
protected LcpMonotoneMinimalPerfectHashFunction(Iterable<? extends T> keys, long numKeys, it.unimi.dsi.bits.TransformationStrategy<? super T> transform, int signatureWidth, File tempDir) throws IOException Creates a new LCP monotone minimal perfect hash function for the given keys.- Parameters:
keys- the keys to hash.numKeys- the number of keys, or -1 if the number of keys is not known (will be computed).transform- a transformation strategy for the keys.signatureWidth- a signature width, or 0 for no signature.tempDir- a temporary directory for the store files, ornullfor the standard temporary directory.- Throws:
IOException
-
-
Method Details
-
getLong
-
size64
public long size64()- Specified by:
size64in interfaceit.unimi.dsi.fastutil.Size64- Overrides:
size64in classAbstractHashFunction<T>
-
numBits
public long numBits()Returns the number of bits used by this structure.- Returns:
- the number of bits used by this structure.
-
main
public static void main(String[] arg) throws NoSuchMethodException, IOException, com.martiansoftware.jsap.JSAPException - Throws:
NoSuchMethodExceptionIOExceptioncom.martiansoftware.jsap.JSAPException
-