Struct rustc_data_structures::bitvec::BitMatrix [] [src]

pub struct BitMatrix {
    // some fields omitted
}
Unstable (rustc_private)

A "bit matrix" is basically a square matrix of booleans represented as one gigantic bitvector. In other words, it is as if you have N bitvectors, each of length N. Note that elements here is N/

Methods

impl BitMatrix
[src]

fn new(elements: usize) -> BitMatrix

fn add(&mut self, source: usize, target: usize) -> bool

fn contains(&self, source: usize, target: usize) -> bool

Unstable (rustc_private)

Do the bits from source contain target?

Put another way, if the matrix represents (transitive) reachability, can source reach target?

fn intersection(&self, a: usize, b: usize) -> Vec<usize>

Unstable (rustc_private)

Returns those indices that are reachable from both a and b. This is an O(n) operation where n is the number of elements (somewhat independent from the actual size of the intersection, in particular).

fn merge(&mut self, read: usize, write: usize) -> bool

Unstable (rustc_private)

Add the bits from read to the bits from write, return true if anything changed.

This is used when computing transitive reachability because if you have an edge write -> read, because in that case write can reach everything that read can (and potentially more).

Trait Implementations

Derived Implementations

impl Clone for BitMatrix
[src]

fn clone(&self) -> BitMatrix

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)
1.0.0

Performs copy-assignment from source. Read more