(value2 *bitmapContainer)
| 742 | } |
| 743 | |
| 744 | func (bc *bitmapContainer) xorBitmap(value2 *bitmapContainer) container { |
| 745 | newCardinality := int(popcntXorSlice(bc.bitmap, value2.bitmap)) |
| 746 | |
| 747 | if newCardinality > arrayDefaultMaxSize { |
| 748 | answer := newBitmapContainer() |
| 749 | for k := 0; k < len(answer.bitmap); k++ { |
| 750 | answer.bitmap[k] = bc.bitmap[k] ^ value2.bitmap[k] |
| 751 | } |
| 752 | answer.cardinality = newCardinality |
| 753 | if answer.isFull() { |
| 754 | return newRunContainer16Range(0, MaxUint16) |
| 755 | } |
| 756 | return answer |
| 757 | } |
| 758 | ac := newArrayContainerSize(newCardinality) |
| 759 | fillArrayXOR(ac.content, bc.bitmap, value2.bitmap) |
| 760 | ac.content = ac.content[:newCardinality] |
| 761 | return ac |
| 762 | } |
| 763 | |
| 764 | func (bc *bitmapContainer) and(a container) container { |
| 765 | switch x := a.(type) { |
no test coverage detected