public final class MonotonicBlockPackedWriter extends Object
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.
Format:
zig-zag encoded
vLong
Float.floatToIntBits(float)
on
4 bytes
variable-length int
packed
deltas from the expected value
(computed from the function) using exactly BitsPerValue bits per value.
MonotonicBlockPackedReader
Modifier and Type | Field and Description |
---|---|
protected byte[] |
blocks |
protected boolean |
finished |
protected int |
off |
protected long |
ord |
protected DataOutput |
out |
protected long[] |
values |
Constructor and Description |
---|
MonotonicBlockPackedWriter(DataOutput out,
int blockSize)
Sole constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
add(long l)
Append a new long.
|
void |
finish()
Flush all buffered data to disk.
|
protected void |
flush() |
long |
ord()
Return the number of values which have been added.
|
void |
reset(DataOutput out)
Reset this writer to wrap
out . |
protected void |
writeValues(int bitsRequired) |
protected DataOutput out
protected final long[] values
protected byte[] blocks
protected int off
protected long ord
protected boolean finished
public MonotonicBlockPackedWriter(DataOutput out, int blockSize)
blockSize
- the number of values of a single block, must be a power of 2public void add(long l) throws IOException
IOException
protected void flush() throws IOException
IOException
public void reset(DataOutput out)
out
. The block size remains unchanged.public void finish() throws IOException
reset(DataOutput)
has
been called.IOException
public long ord()
protected final void writeValues(int bitsRequired) throws IOException
IOException
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.