Package it.unimi.dsi.bits
Class PrefixCoderTransformationStrategy
java.lang.Object
it.unimi.dsi.bits.PrefixCoderTransformationStrategy
- All Implemented Interfaces:
TransformationStrategy<CharSequence>
,Serializable
- Direct Known Subclasses:
HuTuckerTransformationStrategy
public class PrefixCoderTransformationStrategy
extends Object
implements TransformationStrategy<CharSequence>
A transformation strategy mapping strings using a prefix-free encoder.
The actual encoding must be provided via a map from characters to symbols, and a set of codewords. The default return value of the map will be used for unknown characters.
This strategy creates a new LongArrayBitVector
each time toBitVector(CharSequence)
is invoked.
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionprotected final Char2IntOpenHashMap
protected final BitVector[]
protected final boolean
-
Constructor Summary
ModifierConstructorDescriptionprotected
PrefixCoderTransformationStrategy
(BitVector[] codeWord, Char2IntOpenHashMap char2symbol, boolean prefixFree) protected
PrefixCoderTransformationStrategy
(PrefixCoderTransformationStrategy transformationStrategy) PrefixCoderTransformationStrategy
(PrefixCoder coder, Char2IntOpenHashMap char2symbol, boolean prefixFree) Create a new transformation strategy based on a prefix-free coder. -
Method Summary
Modifier and TypeMethodDescriptioncopy()
Returns a copy of this transformation strategy.long
Returns the length of the bit vector that would be computed byTransformationStrategy.toBitVector(Object)
.long
numBits()
The (approximate) number of bits occupied by this transformation.Returns a bit vector representation of the given object.
-
Field Details
-
codeWord
-
char2symbol
-
prefixFree
protected final boolean prefixFree
-
-
Constructor Details
-
PrefixCoderTransformationStrategy
public PrefixCoderTransformationStrategy(PrefixCoder coder, Char2IntOpenHashMap char2symbol, boolean prefixFree) Create a new transformation strategy based on a prefix-free coder.- Parameters:
coder
- a prefix-free coder.char2symbol
- a map from character to symbols (the default returned value will be used for unknown symbols).prefixFree
- whether it is required that the resulting bit vectors are prefix-free: in this case, symbol 0 will be appended to each string, and will not be allowed to appear in any string.
-
PrefixCoderTransformationStrategy
protected PrefixCoderTransformationStrategy(PrefixCoderTransformationStrategy transformationStrategy) -
PrefixCoderTransformationStrategy
protected PrefixCoderTransformationStrategy(BitVector[] codeWord, Char2IntOpenHashMap char2symbol, boolean prefixFree)
-
-
Method Details
-
toBitVector
Description copied from interface:TransformationStrategy
Returns a bit vector representation of the given object.- Specified by:
toBitVector
in interfaceTransformationStrategy<CharSequence>
- Parameters:
s
- the object to be turned into a bit-vector representation.- Returns:
- a bit-vector representation of
object
.
-
length
Description copied from interface:TransformationStrategy
Returns the length of the bit vector that would be computed byTransformationStrategy.toBitVector(Object)
.The raison d'être of this method is that it is often easy to know the length of the representation without actually computing the representation.
- Specified by:
length
in interfaceTransformationStrategy<CharSequence>
- Parameters:
s
- the object whose representation length is to be known.- Returns:
- the length of the bit-vector representation of
object
(the one that would be returned byTransformationStrategy.toBitVector(Object)
).
-
numBits
public long numBits()Description copied from interface:TransformationStrategy
The (approximate) number of bits occupied by this transformation.- Specified by:
numBits
in interfaceTransformationStrategy<CharSequence>
- Returns:
- the (approximate) number of bits occupied by this transformation.
-
copy
Description copied from interface:TransformationStrategy
Returns a copy of this transformation strategy.- Specified by:
copy
in interfaceTransformationStrategy<CharSequence>
- Returns:
- a copy of this transformation strategy.
-