Documentation ¶
Overview ¶
Package bp128 implements SIMD-BP128 integer encoding and decoding. It requires an x86_64/AMD64 CPU that supports SSE2 instructions.
For more details on SIMD-BP128 algorithm see "Decoding billions of integers per second through vectorization" by Daniel Lemire, Leonid Boytsov, and Nathan Kurz at http://arxiv.org/pdf/1209.2137
For the original C++ implementation visit https://github.com/lemire/SIMDCompressionAndIntersection.
Index ¶
- Constants
- func DeltaPack(in []uint64) []byte
- func DeltaUnpack(in []byte, out []uint64)
- func NumIntegers(data []byte) int
- type BPackEncoder
- type BPackIterator
- func (pi *BPackIterator) AfterUid(uid uint64) (found bool)
- func (pi *BPackIterator) Init(data []byte, afterUid uint64)
- func (pi *BPackIterator) Length() int
- func (pi *BPackIterator) MaxIntInBlock() uint64
- func (pi *BPackIterator) Next()
- func (pi *BPackIterator) SkipNext()
- func (pi *BPackIterator) StartIdx() int
- func (pi *BPackIterator) Uids() []uint64
- func (pi *BPackIterator) Valid() bool
Constants ¶
View Source
const ( // BlockSize is the number of integers per block. Each // block address must be aligned at 16-byte boundaries. BlockSize = 256 )
Variables ¶
This section is empty.
Functions ¶
func DeltaUnpack ¶
func NumIntegers ¶
Types ¶
type BPackEncoder ¶
type BPackEncoder struct {
// contains filtered or unexported fields
}
func (*BPackEncoder) Length ¶
func (bp *BPackEncoder) Length() int
func (*BPackEncoder) PackAppend ¶
func (bp *BPackEncoder) PackAppend(in []uint64)
func (*BPackEncoder) Size ¶
func (bp *BPackEncoder) Size() int
func (*BPackEncoder) WriteTo ¶
func (bp *BPackEncoder) WriteTo(in []byte)
type BPackIterator ¶
type BPackIterator struct {
// contains filtered or unexported fields
}
func (*BPackIterator) AfterUid ¶
func (pi *BPackIterator) AfterUid(uid uint64) (found bool)
func (*BPackIterator) Init ¶
func (pi *BPackIterator) Init(data []byte, afterUid uint64)
func (*BPackIterator) Length ¶
func (pi *BPackIterator) Length() int
func (*BPackIterator) MaxIntInBlock ¶
func (pi *BPackIterator) MaxIntInBlock() uint64
func (*BPackIterator) Next ¶
func (pi *BPackIterator) Next()
func (*BPackIterator) SkipNext ¶
func (pi *BPackIterator) SkipNext()
func (*BPackIterator) Uids ¶
func (pi *BPackIterator) Uids() []uint64
func (*BPackIterator) Valid ¶
func (pi *BPackIterator) Valid() bool
Click to show internal directories.
Click to hide internal directories.