(container []uint16, bitmap1, bitmap2 []uint64)
| 78 | } |
| 79 | |
| 80 | func fillArrayANDNOT(container []uint16, bitmap1, bitmap2 []uint64) { |
| 81 | if len(bitmap1) != len(bitmap2) { |
| 82 | panic("array lengths don't match") |
| 83 | } |
| 84 | // TODO: rewrite in assembly |
| 85 | pos := 0 |
| 86 | for k := range bitmap1 { |
| 87 | bitset := bitmap1[k] &^ bitmap2[k] |
| 88 | for bitset != 0 { |
| 89 | t := bitset & -bitset |
| 90 | container[pos] = uint16((k*64 + int(popcount(t-1)))) |
| 91 | pos = pos + 1 |
| 92 | bitset ^= t |
| 93 | } |
| 94 | } |
| 95 | } |
| 96 | |
| 97 | func fillArrayXOR(container []uint16, bitmap1, bitmap2 []uint64) { |
| 98 | if len(bitmap1) != len(bitmap2) { |
no test coverage detected
searching dependent graphs…