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:
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 VLLcpMonotoneMinimalPerfectHashFunction<T> extends AbstractHashFunction<T> implements java.io.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 aGOVMinimalPerfectHashFunction
indexing anEliasFanoLongBigList
. In theory, this function should use less memory than anLcpMonotoneMinimalPerfectHashFunction
when the lengths of common prefixes vary wildly, but in practice aTwoStepsLcpMonotoneMinimalPerfectHashFunction
is often a better choice.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected int
bucketSize
The size of a bucket.protected int
bucketSizeMask
The mask forlog2BucketSize
bits.protected GOV3Function<it.unimi.dsi.bits.BitVector>
lcp2Bucket
A function mapping each longest common prefix to its bucket.protected EliasFanoLongBigList
lcpLengths
A list, indexed bymph
, containing for each element the length of the longest common prefix of its bucket.protected int
log2BucketSize
Fast.ceilLog2(int)
ofbucketSize
.protected GOVMinimalPerfectHashFunction<it.unimi.dsi.bits.BitVector>
mph
A function mapping each element to a distinct index.protected long
n
The number of elements.protected it.unimi.dsi.fastutil.longs.LongBigList
offsets
A list, indexed bymph
, containing the offset of each element inside its bucket.static long
serialVersionUID
protected it.unimi.dsi.bits.TransformationStrategy<? super T>
transform
The transformation strategy.
-
Constructor Summary
Constructors Constructor Description VLLcpMonotoneMinimalPerfectHashFunction(java.lang.Iterable<? extends T> iterable, int numElements, it.unimi.dsi.bits.TransformationStrategy<? super T> transform)
VLLcpMonotoneMinimalPerfectHashFunction(java.lang.Iterable<? extends T> iterable, it.unimi.dsi.bits.TransformationStrategy<? super T> transform)
-
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()
Returns the number of bits used by this structure.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
-
n
protected final long n
The number of elements.
-
bucketSize
protected final int bucketSize
The size of a bucket.
-
log2BucketSize
protected final int log2BucketSize
Fast.ceilLog2(int)
ofbucketSize
.
-
bucketSizeMask
protected final int bucketSizeMask
The mask forlog2BucketSize
bits.
-
mph
protected final GOVMinimalPerfectHashFunction<it.unimi.dsi.bits.BitVector> mph
A function mapping each element to a distinct index.
-
offsets
protected final it.unimi.dsi.fastutil.longs.LongBigList offsets
A list, indexed bymph
, containing the offset of each element inside its bucket.
-
lcpLengths
protected final EliasFanoLongBigList lcpLengths
A list, indexed bymph
, containing for each element the length of the longest common prefix of its bucket.
-
lcp2Bucket
protected final GOV3Function<it.unimi.dsi.bits.BitVector> lcp2Bucket
A function mapping each longest common prefix to its bucket.
-
transform
protected final it.unimi.dsi.bits.TransformationStrategy<? super T> transform
The transformation strategy.
-
-
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()
Returns the number of bits used by this structure.- Returns:
- the number of bits used by this structure.
-
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
-
-