Class MonotonicBlockPackedWriter
A writer for large monotonically increasing sequences of positive
The sequence is divided into fixed-size blocks and for each block, values are modeled after a linear function f: x ? A × x + B. The block encodes deltas from the expected values computed from this function using as few bits as possible. Each block has an overhead between 6 and 14 bytes.
Format:
- <BLock>BlockCount
- BlockCount: ? ValueCount / BlockSize ?
- Block: <Header, (Ints)>
- Header: <B, A, BitsPerValue>
- B: the B from f: x ? A × x + B using a
variable-length
(WriteVInt64(Int64)) - A: the A from f: x ? A × x + B encoded using SingleToInt32Bits(Single) on 4 bytes (WriteVInt32(Int32))
- BitsPerValue: a variable-length
(WriteVInt32(Int32)) - Ints: if BitsPerValue is
0
, then there is nothing to read and all values perfectly match the result of the function. Otherwise, these are the zigzag-encoded packed (PackedInt32s) deltas from the expected value (computed from the function) using exaclty BitsPerValue bits per value
@lucene.internal
Inherited Members
Assembly: DistributedLucene.Net.dll
Syntax
public sealed class MonotonicBlockPackedWriter : AbstractBlockPackedWriter
Constructors
Name | Description |
---|---|
MonotonicBlockPackedWriter(DataOutput, Int32) | Sole constructor. |
Methods
Name | Description |
---|---|
Add(Int64) | |
Flush() |