Class HollowTrieDistributor<T>
- java.lang.Object
-
- it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction<T>
-
- it.unimi.dsi.sux4j.mph.HollowTrieDistributor<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 HollowTrieDistributor<T> extends it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction<T> implements it.unimi.dsi.fastutil.Size64
A distributor based on a hollow trie.Implementation details
This class implements a distributor on top of a hollow trie. First, a compacted trie is built from the delimiter set. Then, for each key we compute the node of the trie in which the bucket of the key is established. This gives us, for each node of the trie, a set of paths to which we must associate an action (exit on the left, go through, exit on the right). Overall, the number of such paths is equal to the number of keys plus the number of delimiters, so the mapping from each pair node/path to the respective action takes linear space. Now, from the compacted trie we just retain a hollow trie, as the path-length information is sufficient to rebuild the keys of the above mapping. By sizing the bucket size around the logarithm of the average length, we obtain a distributor that occupies linear space.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected double
meanSkipLength
The average skip length in bits (actually, the average length in bits of a skip length increased by one).
-
Constructor Summary
Constructors Constructor Description HollowTrieDistributor(java.lang.Iterable<? extends T> elements, int log2BucketSize, it.unimi.dsi.bits.TransformationStrategy<? super T> transformationStrategy)
Creates a partial compacted trie using given elements, bucket size and transformation strategy.HollowTrieDistributor(java.lang.Iterable<? extends T> elements, int log2BucketSize, it.unimi.dsi.bits.TransformationStrategy<? super T> transformationStrategy, java.io.File tempDir)
Creates a hollow trie distributor.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description double
bitsPerSkip()
boolean
containsKey(java.lang.Object o)
long
getLong(java.lang.Object o)
long
numBits()
int
size()
Deprecated.long
size64()
-
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
-
-
-
-
Constructor Detail
-
HollowTrieDistributor
public HollowTrieDistributor(java.lang.Iterable<? extends T> elements, int log2BucketSize, it.unimi.dsi.bits.TransformationStrategy<? super T> transformationStrategy) throws java.io.IOException
Creates a partial compacted trie using given elements, bucket size and transformation strategy.- Parameters:
elements
- the elements among which the trie must be able to rank.log2BucketSize
- the logarithm of the size of a bucket.transformationStrategy
- a transformation strategy that must turn the elements inelements
into a list of distinct, lexicographically increasing (in iteration order) bit vectors.- Throws:
java.io.IOException
-
HollowTrieDistributor
public HollowTrieDistributor(java.lang.Iterable<? extends T> elements, int log2BucketSize, it.unimi.dsi.bits.TransformationStrategy<? super T> transformationStrategy, java.io.File tempDir) throws java.io.IOException
Creates a hollow trie distributor.- Parameters:
elements
- the elements among which the trie must be able to rank.log2BucketSize
- the logarithm of the size of a bucket.transformationStrategy
- a transformation strategy that must turn the elements inelements
into a list of distinct, lexicographically increasing (in iteration order) bit vectors.tempDir
- the directory where temporary files will be created, orfor the default 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>
-
numBits
public long numBits()
-
containsKey
public boolean containsKey(java.lang.Object o)
- Specified by:
containsKey
in interfaceit.unimi.dsi.fastutil.Function<T,java.lang.Long>
-
size64
public long size64()
- Specified by:
size64
in interfaceit.unimi.dsi.fastutil.Size64
-
size
@Deprecated public int size()
Deprecated.- Specified by:
size
in interfaceit.unimi.dsi.fastutil.Function<T,java.lang.Long>
- Specified by:
size
in interfaceit.unimi.dsi.fastutil.Size64
-
bitsPerSkip
public double bitsPerSkip()
-
-