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

Method andNotArray

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

Source from the content-addressed store, hash-verified

1046}
1047
1048func (bc *bitmapContainer) andNotArray(value2 *arrayContainer) container {
1049 answer := bc.clone().(*bitmapContainer)
1050 c := value2.getCardinality()
1051 for k := 0; k < c; k++ {
1052 vc := value2.content[k]
1053 i := uint(vc) >> 6
1054 oldv := answer.bitmap[i]
1055 newv := oldv &^ (uint64(1) << (vc % 64))
1056 answer.bitmap[i] = newv
1057 answer.cardinality -= int((oldv ^ newv) >> (vc % 64))
1058 }
1059 if answer.cardinality <= arrayDefaultMaxSize {
1060 return answer.toArrayContainer()
1061 }
1062 return answer
1063}
1064
1065func (bc *bitmapContainer) andNotBitmap(value2 *bitmapContainer) container {
1066 newCardinality := int(popcntMaskSlice(bc.bitmap, value2.bitmap))

Callers 1

andNotMethod · 0.95

Calls 3

cloneMethod · 0.95
getCardinalityMethod · 0.65
toArrayContainerMethod · 0.45

Tested by

no test coverage detected