Package it.unimi.dsi.sux4j.mph
Class VLLcpMonotoneMinimalPerfectHashFunction<T>
java.lang.Object
it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction<K>
it.unimi.dsi.sux4j.mph.AbstractHashFunction<T>
it.unimi.dsi.sux4j.mph.VLLcpMonotoneMinimalPerfectHashFunction<T>
- All Implemented Interfaces:
Function<T,
,Long> Object2LongFunction<T>
,Size64
,Serializable
,Function<T,
,Long> ToLongFunction<T>
public class VLLcpMonotoneMinimalPerfectHashFunction<T>
extends AbstractHashFunction<T>
implements Serializable, 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
Modifier and TypeFieldDescriptionprotected final int
The size of a bucket.protected final int
The mask forlog2BucketSize
bits.protected final GOV3Function<BitVector>
A function mapping each longest common prefix to its bucket.protected final EliasFanoLongBigList
A list, indexed bymph
, containing for each element the length of the longest common prefix of its bucket.protected final int
protected final GOVMinimalPerfectHashFunction<BitVector>
A function mapping each element to a distinct index.protected final long
The number of elements.protected final LongBigList
A list, indexed bymph
, containing the offset of each element inside its bucket.static final long
protected final TransformationStrategy<? super T>
The transformation strategy.Fields inherited from class it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction
defRetValue
-
Constructor Summary
ConstructorDescriptionVLLcpMonotoneMinimalPerfectHashFunction
(Iterable<? extends T> iterable, int numElements, TransformationStrategy<? super T> transform) VLLcpMonotoneMinimalPerfectHashFunction
(Iterable<? extends T> iterable, TransformationStrategy<? super T> transform) -
Method Summary
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 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 log2BucketSize -
bucketSizeMask
protected final int bucketSizeMaskThe mask forlog2BucketSize
bits. -
mph
A function mapping each element to a distinct index. -
offsets
A 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, TransformationStrategy<? super T> transform) throws IOException - Throws:
IOException
-
VLLcpMonotoneMinimalPerfectHashFunction
public VLLcpMonotoneMinimalPerfectHashFunction(Iterable<? extends T> iterable, int numElements, TransformationStrategy<? super T> transform) throws IOException - Throws:
IOException
-
-
Method Details
-
getLong
- Specified by:
getLong
in interfaceObject2LongFunction<T>
-
size64
public long size64()- Specified by:
size64
in interfaceSize64
- Overrides:
size64
in 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
-