'Or' and 'Xor' only growth if needed, never shrinks, so, actually i reverted balance function change introduced recently. We should take into consideration both one bits of dst and b bitmaps
Speedup And
[0....1kk].And([0...1k]) = [0...1k]
ER=AR: dst bitmap shrinks to the smallest size
[0....1k].And([0...1kk]) = [0...1k]
ER: this PR fixes this case, it shrinks dst bitmap to the smallest possible size ([0...1k])
AR: dst bitmap grows to 1kk bitmap, while for 'And' operation the best possible result is [0...1k]
8 consecutive And bitmaps improvement
ER1: benefits for cases when position of one bits at the start
ER2: NO benefits for cases when position of one bits at the end
Hi, There are 2 type of changes for different bitmap sizes
Fix 'AndNot', 'Or' and 'Xor'
balance
function change introduced recently. We should take into consideration both one bits ofdst
andb
bitmapsSpeedup And
dst
bitmap to the smallest possible size ([0...1k]
) AR:dst
bitmap grows to1kk
bitmap, while for 'And' operation the best possible result is[0...1k]
8 consecutive
And
bitmaps improvementER1: benefits for cases when position of
one bits
at the start ER2: NO benefits for cases when position ofone bits
at the end