summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/RoaringBitmap/roaring/rlecommon.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/RoaringBitmap/roaring/rlecommon.go')
-rw-r--r--vendor/github.com/RoaringBitmap/roaring/rlecommon.go163
1 files changed, 0 insertions, 163 deletions
diff --git a/vendor/github.com/RoaringBitmap/roaring/rlecommon.go b/vendor/github.com/RoaringBitmap/roaring/rlecommon.go
deleted file mode 100644
index 133636787a..0000000000
--- a/vendor/github.com/RoaringBitmap/roaring/rlecommon.go
+++ /dev/null
@@ -1,163 +0,0 @@
-package roaring
-
-import (
- "fmt"
-)
-
-// common to rle32.go and rle16.go
-
-// rleVerbose controls whether p() prints show up.
-// The testing package sets this based on
-// testing.Verbose().
-var rleVerbose bool
-
-// p is a shorthand for fmt.Printf with beginning and
-// trailing newlines. p() makes it easy
-// to add diagnostic print statements.
-func p(format string, args ...interface{}) {
- if rleVerbose {
- fmt.Printf("\n"+format+"\n", args...)
- }
-}
-
-// MaxUint32 is the largest uint32 value.
-const MaxUint32 = 4294967295
-
-// MaxUint16 is the largest 16 bit unsigned int.
-// This is the largest value an interval16 can store.
-const MaxUint16 = 65535
-
-// searchOptions allows us to accelerate runContainer32.search with
-// prior knowledge of (mostly lower) bounds. This is used by Union
-// and Intersect.
-type searchOptions struct {
- // start here instead of at 0
- startIndex int64
-
- // upper bound instead of len(rc.iv);
- // endxIndex == 0 means ignore the bound and use
- // endxIndex == n ==len(rc.iv) which is also
- // naturally the default for search()
- // when opt = nil.
- endxIndex int64
-}
-
-// And finds the intersection of rc and b.
-func (rc *runContainer32) And(b *Bitmap) *Bitmap {
- out := NewBitmap()
- for _, p := range rc.iv {
- for i := p.start; i <= p.last; i++ {
- if b.Contains(i) {
- out.Add(i)
- }
- }
- }
- return out
-}
-
-// Xor returns the exclusive-or of rc and b.
-func (rc *runContainer32) Xor(b *Bitmap) *Bitmap {
- out := b.Clone()
- for _, p := range rc.iv {
- for v := p.start; v <= p.last; v++ {
- if out.Contains(v) {
- out.RemoveRange(uint64(v), uint64(v+1))
- } else {
- out.Add(v)
- }
- }
- }
- return out
-}
-
-// Or returns the union of rc and b.
-func (rc *runContainer32) Or(b *Bitmap) *Bitmap {
- out := b.Clone()
- for _, p := range rc.iv {
- for v := p.start; v <= p.last; v++ {
- out.Add(v)
- }
- }
- return out
-}
-
-// trial is used in the randomized testing of runContainers
-type trial struct {
- n int
- percentFill float64
- ntrial int
-
- // only in the union test
- // only subtract test
- percentDelete float64
-
- // only in 067 randomized operations
- // we do this + 1 passes
- numRandomOpsPass int
-
- // allow sampling range control
- // only recent tests respect this.
- srang *interval16
-}
-
-// And finds the intersection of rc and b.
-func (rc *runContainer16) And(b *Bitmap) *Bitmap {
- out := NewBitmap()
- for _, p := range rc.iv {
- plast := p.last()
- for i := p.start; i <= plast; i++ {
- if b.Contains(uint32(i)) {
- out.Add(uint32(i))
- }
- }
- }
- return out
-}
-
-// Xor returns the exclusive-or of rc and b.
-func (rc *runContainer16) Xor(b *Bitmap) *Bitmap {
- out := b.Clone()
- for _, p := range rc.iv {
- plast := p.last()
- for v := p.start; v <= plast; v++ {
- w := uint32(v)
- if out.Contains(w) {
- out.RemoveRange(uint64(w), uint64(w+1))
- } else {
- out.Add(w)
- }
- }
- }
- return out
-}
-
-// Or returns the union of rc and b.
-func (rc *runContainer16) Or(b *Bitmap) *Bitmap {
- out := b.Clone()
- for _, p := range rc.iv {
- plast := p.last()
- for v := p.start; v <= plast; v++ {
- out.Add(uint32(v))
- }
- }
- return out
-}
-
-//func (rc *runContainer32) and(container) container {
-// panic("TODO. not yet implemented")
-//}
-
-// serializedSizeInBytes returns the number of bytes of memory
-// required by this runContainer16. This is for the
-// Roaring format, as specified https://github.com/RoaringBitmap/RoaringFormatSpec/
-func (rc *runContainer16) serializedSizeInBytes() int {
- // number of runs in one uint16, then each run
- // needs two more uint16
- return 2 + len(rc.iv)*4
-}
-
-// serializedSizeInBytes returns the number of bytes of memory
-// required by this runContainer32.
-func (rc *runContainer32) serializedSizeInBytes() int {
- return 4 + len(rc.iv)*8
-}