DoxigAlpha

setIntersection

Performs an intersection of two bit sets, and stores the result in the first one. Bits in the result are set if the corresponding bits were set in both inputs. The two sets must both be the same bit_length.

Function parameters

Parameters

#
self:*Self

A bit set with runtime-known size, backed by an allocated slice

Types

#
DynamicBitSetUnmanaged
A bit set with runtime-known size, backed by an allocated slice
DynamicBitSet
A bit set with runtime-known size, backed by an allocated slice
IteratorOptions
Options for configuring an iterator over a bit set
Range
A range of indices within a bitset.

Returns the optimal static bit set type for the specified number

Functions

#
StaticBitSet
Returns the optimal static bit set type for the specified number
IntegerBitSet
A bit set with static size, which is backed by a single integer.
ArrayBitSet
A bit set with static size, which is backed by an array of usize.

Source

Implementation

#
pub fn setIntersection(self: *Self, other: Self) void {
    assert(other.bit_length == self.bit_length);
    const num_masks = numMasks(self.bit_length);
    for (self.masks[0..num_masks], 0..) |*mask, i| {
        mask.* &= other.masks[i];
    }
}