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:
- Serialized Form
-
Field Summary
Fields Modifier and Type Field Description protected Char2IntOpenHashMap
char2symbol
protected BitVector[]
codeWord
protected boolean
prefixFree
-
Constructor Summary
Constructors Modifier Constructor Description protected
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 Type Method Description PrefixCoderTransformationStrategy
copy()
Returns a copy of this transformation strategy.long
length(CharSequence s)
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.LongArrayBitVector
toBitVector(CharSequence s)
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.
-