MCPcopy Index your code
hub / github.com/RoaringBitmap/roaring / xorArray

Method xorArray

bitmapcontainer.go:706–721  ·  view source on GitHub ↗
(value2 *arrayContainer)

Source from the content-addressed store, hash-verified

704}
705
706func (bc *bitmapContainer) xorArray(value2 *arrayContainer) container {
707 answer := bc.clone().(*bitmapContainer)
708 c := value2.getCardinality()
709 for k := 0; k < c; k++ {
710 vc := value2.content[k]
711 index := uint(vc) >> 6
712 abi := answer.bitmap[index]
713 mask := uint64(1) << (vc % 64)
714 answer.cardinality += 1 - 2*int((abi&mask)>>(vc%64))
715 answer.bitmap[index] = abi ^ mask
716 }
717 if answer.cardinality <= arrayDefaultMaxSize {
718 return answer.toArrayContainer()
719 }
720 return answer
721}
722
723func (bc *bitmapContainer) rank(x uint16) int {
724 // TODO: rewrite in assembly

Callers 1

xorMethod · 0.95

Calls 3

cloneMethod · 0.95
getCardinalityMethod · 0.65
toArrayContainerMethod · 0.45

Tested by

no test coverage detected