Class MonotonicBlockPackedWriter
A writer for large monotonically increasing sequences of positive System.Int64s.
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 System.Int64 (WriteVInt64(Int64))
- A: the A from f: x → A × x + B encoded using J2N.BitConversion.SingleToInt32Bits(System.Single) on 4 bytes (WriteVInt32(Int32))
- BitsPerValue: a variable-length System.Int32 (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
Note
This API is for internal purposes only and might change in incompatible ways in the next release.
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: Lucene.Net.Util.Packed
Assembly: Lucene.Net.dll
Syntax
public sealed class MonotonicBlockPackedWriter : AbstractBlockPackedWriter
Constructors
| Improve this Doc View SourceMonotonicBlockPackedWriter(DataOutput, Int32)
Sole constructor.
Declaration
public MonotonicBlockPackedWriter(DataOutput out, int blockSize)
Parameters
Type | Name | Description |
---|---|---|
DataOutput | out | |
System.Int32 | blockSize | The number of values of a single block, must be a power of 2. |
Methods
| Improve this Doc View SourceAdd(Int64)
Declaration
public override void Add(long l)
Parameters
Type | Name | Description |
---|---|---|
System.Int64 | l |
Overrides
| Improve this Doc View SourceFlush()
Declaration
protected override void Flush()