MCPcopy
hub / github.com/RoaringBitmap/roaring / ixorBitmap

Method ixorBitmap

bitmapcontainer.go:940–953  ·  view source on GitHub ↗
(value2 *bitmapContainer)

Source from the content-addressed store, hash-verified

938}
939
940func (bc *bitmapContainer) ixorBitmap(value2 *bitmapContainer) container {
941 newCardinality := int(popcntXorSlice(bc.bitmap, value2.bitmap))
942 if newCardinality > arrayDefaultMaxSize {
943 for k := 0; k < len(bc.bitmap); k++ {
944 bc.bitmap[k] = bc.bitmap[k] ^ value2.bitmap[k]
945 }
946 bc.cardinality = newCardinality
947 return bc
948 }
949 ac := newArrayContainerSize(newCardinality)
950 fillArrayXOR(ac.content, bc.bitmap, value2.bitmap)
951 ac.content = ac.content[:newCardinality]
952 return ac
953}
954
955func (bc *bitmapContainer) andNot(a container) container {
956 switch x := a.(type) {

Callers 3

ixorMethod · 0.95
ixorArrayMethod · 0.95
ixorRun16Method · 0.95

Calls 3

newArrayContainerSizeFunction · 0.85
fillArrayXORFunction · 0.85
popcntXorSliceFunction · 0.70

Tested by

no test coverage detected