BitVecDisjoint
- Function
- August 22, 2025
Table of Contents
BitVecDisjoint
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);
Usage example (Cross-references)
- In
BitVec.c:680
:
}
bool BitVecDisjoint(BitVec *bv1, BitVec *bv2) {
ValidateBitVec(bv1);
ValidateBitVec(bv2);
- In
BitVec.c:697
:
bool BitVecOverlaps(BitVec *bv1, BitVec *bv2) {
return !BitVecDisjoint(bv1, bv2);
}
// Test BitVecDisjoint and BitVecIntersects functions
bool test_bitvec_disjoint_intersects(void) {
printf("Testing BitVecDisjoint and BitVecIntersects\n");
BitVec bv1 = BitVecInit();
// 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