BitVecDisjoint
Description
Check if two bitvectors are disjoint (have no common 1-bits).
Parameters
| Name | Direction | Description |
|---|---|---|
bv1 |
in | First bitvector |
bv2 |
in | Second bitvector |
Usage example (from documentation)
bool disjoint = BitVecDisjoint(&set1, &set2);Success
true if bitvectors have no common 1-bits
Failure
false when any position holds a 1 in both bitvectors.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
BitVec.c:795:
}
bool BitVecDisjoint(const BitVec *bv1, const BitVec *bv2) {
ValidateBitVec(bv1);
ValidateBitVec(bv2);- In
BitVec.c:811:
bool BitVecOverlaps(const BitVec *bv1, const BitVec *bv2) {
return !BitVecDisjoint(bv1, bv2);
} DefaultAllocator alloc = DefaultAllocatorInit();
WriteFmt("Testing BitVecDisjoint and BitVecIntersects\n");
BitVec bv1 = BitVecInit(ALLOCATOR_OF(&alloc));
// Should be disjoint and not intersect
bool result = BitVecDisjoint(&bv1, &bv2);
result = result && !BitVecOverlaps(&bv1, &bv2);
// Should not be disjoint and should intersect
result = result && !BitVecDisjoint(&bv1, &bv2);
result = result && BitVecOverlaps(&bv1, &bv2); BitVecClear(&bv1);
BitVecClear(&bv2);
result = result && BitVecDisjoint(&bv1, &bv2);
result = result && !BitVecOverlaps(&bv1, &bv2); // Test with empty sets
result = result && !BitVecOverlaps(&bv1, &bv2);
result = result && BitVecDisjoint(&bv1, &bv2);
// Test single bit sets
// Test set operations on large vectors
bool overlaps = BitVecOverlaps(&large1, &large2);
bool disjoint = BitVecDisjoint(&large1, &large2);
result = result && (overlaps != disjoint); // Should be opposite
Last updated on