BitVecWeightCompare

Table of Contents

BitVecWeightCompare

Description

Compare two bitvectors by their Hamming weights (number of 1s).

Parameters

NameDirectionDescription
bv1inFirst bitvector
bv2inSecond bitvector

Usage example (from documentation)

  int result = BitVecWeightCompare(&flags1, &flags2);

Usage example (Cross-references)

    }
    
    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

Share :

Related Posts

BitVecReverse

BitVecReverse Description Reverse the order of all bits in bitvector. First bit becomes last, last becomes first, etc.

Read More

BitVecEquals

BitVecEquals Description Test equality between two bitvectors. Two bitvectors are equal if they have the same length and all bits match.

Read More

BitVecDisjoint

BitVecDisjoint Description Check if two bitvectors are disjoint (have no common 1-bits).

Read More