BitVecWeightCompare
- Function
- August 22, 2025
Table of Contents
BitVecWeightCompare
BitVecWeightCompare
Description
Compare two bitvectors by their Hamming weights (number of 1s).
Parameters
Name | Direction | Description |
---|---|---|
bv1 | in | First bitvector |
bv2 | in | Second bitvector |
Usage example (from documentation)
int result = BitVecWeightCompare(&flags1, &flags2);
Usage example (Cross-references)
- In
BitVec.c:612
:
}
int BitVecWeightCompare(BitVec *bv1, BitVec *bv2) {
ValidateBitVec(bv1);
ValidateBitVec(bv2);
// Test BitVecWeightCompare function
bool test_bitvec_weight_compare(void) {
printf("Testing BitVecWeightCompare\n");
BitVec bv1 = BitVecInit();
// Weight comparison should compare number of set bits
int cmp_result = BitVecWeightCompare(&bv1, &bv2);
bool result = (cmp_result > 0); // 3 ones > 2 ones
BitVecPush(&bv2, true); // Also 3 ones
result = result && (BitVecWeightCompare(&bv1, &bv2) == 0);
// Clean up
// Weight: bv1 has 4 ones, bv2 has 4 ones, so equal weight
result = result && (BitVecWeightCompare(&bv1, &bv2) == 0);
// Lexicographic comparison