Class VLLcpMonotoneMinimalPerfectHashFunction<T>
java.lang.Object
it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction<T>
it.unimi.dsi.sux4j.mph.AbstractHashFunction<T>
it.unimi.dsi.sux4j.mph.VLLcpMonotoneMinimalPerfectHashFunction<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 VLLcpMonotoneMinimalPerfectHashFunction<T>
extends AbstractHashFunction<T>
implements Serializable, it.unimi.dsi.fastutil.Size64
A monotone minimal perfect hash implementation based on fixed-size bucketing that uses
longest common prefixes as distributors, and store their lengths using a
GOVMinimalPerfectHashFunction
indexing an EliasFanoLongBigList. In theory, this function should use less memory
than an LcpMonotoneMinimalPerfectHashFunction when the lengths of common prefixes vary
wildly, but in practice a TwoStepsLcpMonotoneMinimalPerfectHashFunction is often a better choice.- See Also:
-
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 EliasFanoLongBigListA list, indexed bymph, containing for each element the length of the longest common prefix of its bucket.protected final intFast.ceilLog2(int)ofbucketSize.protected final GOVMinimalPerfectHashFunction<it.unimi.dsi.bits.BitVector> A function mapping each element to a distinct index.protected final longThe number of elements.protected final it.unimi.dsi.fastutil.longs.LongBigListA list, indexed bymph, containing the offset of each element inside its bucket.static final longprotected final it.unimi.dsi.bits.TransformationStrategy<? super T> The transformation strategy.Fields inherited from class it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction
defRetValue -
Constructor Summary
ConstructorsConstructorDescriptionVLLcpMonotoneMinimalPerfectHashFunction(Iterable<? extends T> iterable, int numElements, it.unimi.dsi.bits.TransformationStrategy<? super T> transform) VLLcpMonotoneMinimalPerfectHashFunction(Iterable<? extends T> iterable, it.unimi.dsi.bits.TransformationStrategy<? super T> transform) -
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 elements. -
bucketSize
protected final int bucketSizeThe size of a bucket. -
log2BucketSize
protected final int log2BucketSizeFast.ceilLog2(int)ofbucketSize. -
bucketSizeMask
protected final int bucketSizeMaskThe mask forlog2BucketSizebits. -
mph
A function mapping each element to a distinct index. -
offsets
protected final it.unimi.dsi.fastutil.longs.LongBigList offsetsA list, indexed bymph, containing the offset of each element inside its bucket. -
lcpLengths
A list, indexed bymph, containing for each element the length of the longest common prefix of its bucket. -
lcp2Bucket
A function mapping each longest common prefix to its bucket. -
transform
The transformation strategy.
-
-
Constructor Details
-
VLLcpMonotoneMinimalPerfectHashFunction
public VLLcpMonotoneMinimalPerfectHashFunction(Iterable<? extends T> iterable, it.unimi.dsi.bits.TransformationStrategy<? super T> transform) throws IOException - Throws:
IOException
-
VLLcpMonotoneMinimalPerfectHashFunction
public VLLcpMonotoneMinimalPerfectHashFunction(Iterable<? extends T> iterable, int numElements, it.unimi.dsi.bits.TransformationStrategy<? super T> transform) throws IOException - 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
-