(value2 *arrayContainer)
| 1046 | } |
| 1047 | |
| 1048 | func (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 | |
| 1065 | func (bc *bitmapContainer) andNotBitmap(value2 *bitmapContainer) container { |
| 1066 | newCardinality := int(popcntMaskSlice(bc.bitmap, value2.bitmap)) |
no test coverage detected