Skip to content

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);

Success

Returns true when at least one bit equals value. The bitvector is not modified.

Failure

Returns false when no bit matches (including an empty bitvector). The bitvector is not modified.

Usage example (Cross-references)

Usage examples (Cross-references)
    }
    
    bool BitVecAny(const BitVec *bv, bool value) {
        ValidateBitVec(bv);
        return BitVecFind(bv, value) != SIZE_MAX;
    
    bool BitVecNone(const 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);
        DefaultAllocator alloc = DefaultAllocatorInit();
    
        WriteFmt("Testing BitVecAll, BitVecAny, BitVecNone functions\n");
    
        BitVec bv     = BitVecInit(ALLOCATOR_OF(&alloc));
        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