Skip to content

BitVecAny

BitVecAny

Description

Check if any bit in bitvector matches the given value.

Parameters

Name Direction Description
bv in Bitvector to check
value in Value to check for (true or false)

Usage example (from documentation)

  bool any_set = BitVecAny(&flags, true);

Returns

true if any bit matches the value

Usage example (Cross-references)

Usage examples (Cross-references)
    }
    
    bool BitVecAny(BitVec *bv, bool value) {
        ValidateBitVec(bv);
        return BitVecFind(bv, value) != SIZE_MAX;
    
    bool BitVecNone(BitVec *bv, bool value) {
        return !BitVecAny(bv, value);
    }
        result = result && BitVecAll(&bv, true);
        result = result && !BitVecAll(&bv, false);
        result = result && BitVecAny(&bv, true);
        result = result && !BitVecAny(&bv, false);
        result = result && !BitVecNone(&bv, true);
        result = result && !BitVecAll(&bv, false);
        result = result && BitVecAny(&bv, true);
        result = result && !BitVecAny(&bv, false);
        result = result && !BitVecNone(&bv, true);
        result = result && BitVecNone(&bv, false);
        result = result && !BitVecAll(&bv, true);
        result = result && BitVecAll(&bv, false);
        result = result && !BitVecAny(&bv, true);
        result = result && BitVecAny(&bv, false);
        result = result && BitVecNone(&bv, true);
        result = result && BitVecAll(&bv, false);
        result = result && !BitVecAny(&bv, true);
        result = result && BitVecAny(&bv, false);
        result = result && BitVecNone(&bv, true);
        result = result && !BitVecNone(&bv, false);
        result = result && !BitVecAll(&bv, true);
        result = result && !BitVecAll(&bv, false);
        result = result && BitVecAny(&bv, true);
        result = result && BitVecAny(&bv, false);
        result = result && !BitVecNone(&bv, true);
        result = result && !BitVecAll(&bv, false);
        result = result && BitVecAny(&bv, true);
        result = result && BitVecAny(&bv, false);
        result = result && !BitVecNone(&bv, true);
        result = result && !BitVecNone(&bv, false);
        result = result && BitVecAll(&bv, true);
        result = result && BitVecAll(&bv, false);
        result = result && !BitVecAny(&bv, true);
        result = result && !BitVecAny(&bv, false);
        result = result && BitVecNone(&bv, true);
        result = result && BitVecAll(&bv, false);
        result = result && !BitVecAny(&bv, true);
        result = result && !BitVecAny(&bv, false);
        result = result && BitVecNone(&bv, true);
        result = result && BitVecNone(&bv, false);
        result = result && BitVecAll(&bv, true);
        result = result && !BitVecAll(&bv, false);
        result = result && BitVecAny(&bv, true);
        result = result && !BitVecAny(&bv, false);
        result = result && !BitVecAll(&bv, false);
        result = result && BitVecAny(&bv, true);
        result = result && !BitVecAny(&bv, false);
    
        // Test large bitvector with specific patterns
        BitVecSet(&bv, 500, false);
        result = result && !BitVecAll(&bv, true);
        result = result && BitVecAny(&bv, true);
        result = result && BitVecAny(&bv, false);
        result = result && !BitVecAll(&bv, true);
        result = result && BitVecAny(&bv, true);
        result = result && BitVecAny(&bv, false);
    
        BitVecDeinit(&bv);
    // Test BitVecAll, BitVecAny, BitVecNone functions
    bool test_bitvec_predicate_functions(void) {
        WriteFmt("Testing BitVecAll, BitVecAny, BitVecNone functions\n");
    
        BitVec bv     = BitVecInit();
        result = result && BitVecAll(&bv, true);
        result = result && !BitVecAll(&bv, false);
        result = result && BitVecAny(&bv, true);
        result = result && !BitVecAny(&bv, false);
        result = result && !BitVecNone(&bv, true);
        result = result && !BitVecAll(&bv, false);
        result = result && BitVecAny(&bv, true);
        result = result && !BitVecAny(&bv, false);
        result = result && !BitVecNone(&bv, true);
        result = result && BitVecNone(&bv, false);
        result = result && !BitVecAll(&bv, true);
        result = result && BitVecAll(&bv, false);
        result = result && !BitVecAny(&bv, true);
        result = result && BitVecAny(&bv, false);
        result = result && BitVecNone(&bv, true);
        result = result && BitVecAll(&bv, false);
        result = result && !BitVecAny(&bv, true);
        result = result && BitVecAny(&bv, false);
        result = result && BitVecNone(&bv, true);
        result = result && !BitVecNone(&bv, false);
        result = result && !BitVecAll(&bv, true);
        result = result && !BitVecAll(&bv, false);
        result = result && BitVecAny(&bv, true);
        result = result && BitVecAny(&bv, false);
        result = result && !BitVecNone(&bv, true);
        result = result && !BitVecAll(&bv, false);
        result = result && BitVecAny(&bv, true);
        result = result && BitVecAny(&bv, false);
        result = result && !BitVecNone(&bv, true);
        result = result && !BitVecNone(&bv, false);
        result = result && BitVecAll(&bv, true);
        result = result && BitVecAll(&bv, false);
        result = result && !BitVecAny(&bv, true);
        result = result && !BitVecAny(&bv, false);
        result = result && BitVecNone(&bv, true);
        result = result && BitVecAll(&bv, false);
        result = result && !BitVecAny(&bv, true);
        result = result && !BitVecAny(&bv, false);
        result = result && BitVecNone(&bv, true);
        result = result && BitVecNone(&bv, false);
        result = result && BitVecAll(&bv, true);
        result = result && !BitVecAll(&bv, false);
        result = result && BitVecAny(&bv, true);
        result = result && !BitVecAny(&bv, false);
        result = result && !BitVecAll(&bv, false);
        result = result && BitVecAny(&bv, true);
        result = result && !BitVecAny(&bv, false);
    
        // Test large bitvector with specific patterns
        BitVecSet(&bv, 500, false);
        result = result && !BitVecAll(&bv, true);
        result = result && BitVecAny(&bv, true);
        result = result && BitVecAny(&bv, false);
        result = result && !BitVecAll(&bv, true);
        result = result && BitVecAny(&bv, true);
        result = result && BitVecAny(&bv, false);
    
        BitVecDeinit(&bv);
Last updated on