Skip to content

BitVecRuns

Description

Vec-flavoured handle for a sequence of BitVecRuns. Consumed by the Vec form of BitVecRunLengths.

Usage example (Cross-references)

Usage examples (Cross-references)
        BitVecPush(&bv, true);
    
        BitVecRuns runs   = VecInitT(runs, base);
        bool       result = BitVecRunLengths(&bv, &runs);
        result            = result && runs.length == 5;
    }
    
    bool bitvec_run_lengths_vec(BitVec *bv, BitVecRuns *out) {
        ValidateBitVec(bv);
        if (!out || !out->allocator) {
        ValidateBitVec(bv);
        if (!out || !out->allocator) {
            LOG_FATAL("output BitVecRuns is NULL or uninitialized");
        }
        ///
        u64  bitvec_run_lengths_raw(BitVec *bv, u64 *runs, bool *values, u64 max_runs);
        bool bitvec_run_lengths_vec(BitVec *bv, BitVecRuns *out);
    
    #define BitVecRunLengths(...)                     MISRA_OVERLOAD(BitVecRunLengths, __VA_ARGS__)
Last updated on