Matt Jaffee
8ec8fc556c
intersectRunRun to use runAppendInterval
...
this avoid situations where two runs which are adjacent don't get collapsed to a
single run
2017-06-19 10:13:02 -05:00
Matt Jaffee
97346baa94
unionArrayRun implementation
2017-06-19 10:13:02 -05:00
Matt Jaffee
c5a0f23257
clean up unionRunRun
2017-06-19 10:13:02 -05:00
Matt Jaffee
4848a99aca
unionRunRun working - messy
2017-06-19 10:13:02 -05:00
Matt Jaffee
24c03f07f6
add note to improve intersectRunRun func
2017-06-19 10:13:02 -05:00
Matt Jaffee
cf445f8012
stub out the rest of the rle methods
2017-06-19 10:13:02 -05:00
Matt Jaffee
9781a4c78b
fix tests, prep for union rle implementations
2017-06-19 10:13:02 -05:00
Matt Jaffee
250e8f6f5b
implement intersectBitmapRun
...
wowza
2017-06-19 10:13:02 -05:00
Matt Jaffee
8954a6ae8c
fix bitmapCountRange and test
...
had been thinking that index 0 was the most significant bit, but based on the
bitmapAdd function, it must be the least significant bit
2017-06-19 10:13:02 -05:00
Matt Jaffee
3e8030aee4
implement intersectRunRun
2017-06-19 10:10:57 -05:00
Matt Jaffee
0c3f61a426
implement intersectArrayRun
2017-06-19 10:10:57 -05:00
Matt Jaffee
20cec1363b
implement intersectionCounts for run containers
2017-06-19 10:10:57 -05:00
Matt Jaffee
014005b5d5
when choosing between container types, keep bitmap as default
2017-06-19 10:06:11 -05:00
Matt Jaffee
95b55ee7db
use uint32 instead of uint16 for rle containers
...
stays consistent with the array type containers. array and rle are using uint32
in case we want to change the size of roaring containers as an optimization.
This has been done in the past
a8feb985e1
The downside is that more storage is used, so we may want to convert to uint16
until we decide to play with that optimization again, but for now I'll keep the
rle implementation in sync with the array implementation.
2017-06-19 10:06:11 -05:00
Matt Jaffee
98c8fd1ded
rename conversion funcs to prepare for rle
...
also support rle in clone()
2017-06-19 10:06:11 -05:00
Matt Jaffee
e80812cb0a
implement runMax
2017-06-19 10:06:11 -05:00
Matt Jaffee
72b6eb45e5
add runRemove
2017-06-19 10:06:11 -05:00
Matt Jaffee
c2203d19c1
wip on adding RLE to roaring, add, countRange, contains
2017-06-19 10:03:55 -05:00
Ben Johnson
ca29f7692b
Fix failing tests when IPv6 is disabled.
...
Turning off IPv6 causes the tests to fail because the Go
`net.Listen()` function obtains a `[::]` address when using
a `localhost:0` bind address. Looking through the Go source
code, I don't see a good way to fix that.
This change adds a test flag to allow users to specify the
network name when running the test:
```sh
go test github.com/pilosa/pilosa/server -network tcp4
```
2017-06-01 14:43:59 -06:00
Matthew Jaffee
fa4234b04c
Merge pull request #590 from jaffee/set-n-at-end
...
set n based on array length instead of incrementing repeatedly
2017-06-01 11:03:35 -05:00
Todd Gruben
542d748baf
corrected tests to no longer use String method
2017-06-01 10:17:49 -05:00
Todd Gruben
ba2b8cd5b1
removed String method upon discovery of %v
2017-06-01 10:03:23 -05:00
Travis
879e02de81
fix misspelling and run gofmt
2017-05-31 16:22:43 -05:00
Todd Gruben
f584400330
attempt to conquer weird
2017-05-31 16:10:48 -05:00
Todd Gruben
e12fdb69a1
better String()
2017-05-31 15:04:33 -05:00
Todd Gruben
7382428f38
clensed String method;added documentation for tests
2017-05-31 15:01:48 -05:00
Todd Gruben
649e58253a
corrected flip prefix;changed flip to inclusive
2017-05-31 13:58:54 -05:00
Todd Gruben
a6975192d6
Merge branch 'flip' of github.com:tgruben/pilosa into flip
2017-05-31 10:55:31 -05:00
Todd Gruben
aa13bbb6ce
cleaned up comments
2017-05-31 10:40:52 -05:00
tgruben
a58206bb4d
Merge branch 'master' into flip
2017-05-31 08:43:50 -05:00
tgruben
8c5c48bba9
Merge pull request #571 from tgruben/xor
...
added xor support to roaring
2017-05-31 08:34:58 -05:00
Matt Jaffee
56ba127210
set n based on array length instead of incrementing repeatedly
2017-05-30 16:09:02 -05:00
Todd Gruben
1c468fb38e
bitmap container xor empty test
2017-05-30 15:07:10 -05:00
Todd Gruben
b5bd8433cc
added empty and equivlence testing
2017-05-30 13:27:11 -05:00
Todd Gruben
7090ee4d7a
@jaffee cleanup
2017-05-30 12:39:23 -05:00
Todd Gruben
498045f25a
added copy optimization ; type check; and code cleanup
2017-05-30 11:18:05 -05:00
Todd Gruben
aa713e3832
add support for bit flip (negate) in roaring
2017-05-25 10:07:29 -05:00
Matt Jaffee
da961be614
rewrite intersectCountArrayBitmap for perf test
2017-05-24 12:38:50 -05:00
Todd Gruben
2182534cc7
added xor support to roaring
2017-05-22 16:51:53 -05:00
Matt Jaffee
e90e1455db
remove branch and always count last container
2017-05-22 10:38:40 -05:00
Matt Jaffee
6b3b459659
add license to roaring_internal_test
2017-05-22 09:46:52 -05:00
Matt Jaffee
a5918d01d9
fix offset check to make sense
2017-05-19 17:09:22 -05:00
Matt Jaffee
c0ddbe0e3f
fix bitmapCountRange and test
...
had been thinking that index 0 was the most significant bit, but based on the
bitmapAdd function, it must be the least significant bit
2017-05-19 15:18:07 -05:00
Matt Jaffee
fb4651cdb8
fix 3 separate bugs in bitmapCountRange
...
in order of the diff:
1. When the start and end of the range fall in the same word, special handling
is needed to "mask" off the beginning and end of the word simultaneously to
avoid counting bits at the beginning or end of the word that aren't in the
range.
2. `i++` is needed at the end of the first partial word to avoid counting this
word in the next block.
3. the shift amount for right shifts is 64 - (end % 64) rather than just end
% 64. If end is (e.g.) 68, then 68 - 64 is 4 and we are only interested in the
first 4 bits of the word, so we must right shift by 60 bits, not 4 bits.
2017-05-18 12:04:37 -05:00
Todd Gruben
fbae0f4d15
asm build options for non amd64
2017-05-15 11:31:41 -05:00
Damian Gryski
62d6edd1ca
roaring: fix vet issues with the assembly code
...
assembly_amd64.s:3: [amd64] hasAsm: wrong argument size 0; expected $...-1
assembly_amd64.s:11: [amd64] POPCNTQ: wrong argument size 8; expected $...-16
assembly_amd64.s:12: [amd64] POPCNTQ: unknown variable x; offset 0 is memory+0(FP)
assembly_amd64.s:17: [amd64] BSFQ: wrong argument size 8; expected $...-16
assembly_amd64.s:18: [amd64] BSFQ: unknown variable x; offset 0 is memory+0(FP)
assembly_amd64.s:28: [amd64] popcntSliceAsm: invalid offset s+8(FP); expected s+0(FP), s_base+0(FP), s_len+8(FP), or s_cap+16(FP)
assembly_amd64.s:43: [amd64] popcntMaskSliceAsm: invalid offset s+8(FP); expected s+0(FP), s_base+0(FP), s_len+8(FP), or s_cap+16(FP)
assembly_amd64.s:63: [amd64] popcntAndSliceAsm: invalid offset s+8(FP); expected s+0(FP), s_base+0(FP), s_len+8(FP), or s_cap+16(FP)
assembly_amd64.s:82: [amd64] popcntOrSliceAsm: invalid offset s+8(FP); expected s+0(FP), s_base+0(FP), s_len+8(FP), or s_cap+16(FP)
assembly_amd64.s:101: [amd64] popcntXorSliceAsm: invalid offset s+8(FP); expected s+0(FP), s_base+0(FP), s_len+8(FP), or s_cap+16(FP)
2017-05-04 11:01:10 +02:00
Travis
ea4bf0a1d3
Fix roaring test: TestBitmap_Quick_Array1
...
When the random number generator was coming up 0,
then `a = []uint64{}`. This caused the bitmap `bm` to be empty.
In this case, `bm.Slice()` is a nil slice, while the expected
slice is an empty slice (i.e. they are not considered equal):
got: ([]uint64) <nil>
exp: ([]uint64) {}
2017-04-29 18:04:59 -05:00
Cody Soyland
3996b56b88
Apply Apache License 2.0
2017-04-28 14:22:03 -05:00
Travis
c3ed12c20e
Refactor fragment.bitmap() so that it leverages bitmapCache and so that
...
it's no longer reponsible for updating the count cache.
This commit also helps SetBit/ClearBit performance by allowing them
to work against data from `bitmapCache` instead of loading bitmaps
from fragment.storage every time.
2017-03-06 11:06:22 -06:00
Todd Gruben
43ede4d9c8
WIP increase caching and topn adjustments
2017-02-21 09:28:01 -06:00