Macro rs_graph::biedgevec

source ·
macro_rules! biedgevec {
    ($g:expr; $elem:expr) => { ... };
    ($g:expr, $vec:expr) => { ... };
}
Expand description

Create a biedge vector associated with a LinkedListGraph.

Example

Create a vector with all elements set to some value, use biedgevec![g; x]

let g = peterson::<LinkedListGraph>();
let weights = rs_graph::biedgevec![&g; 0];
assert!(g.edges().all(|e| weights[e] == 0 && weights[g.reverse(e)] == 0));

Convert an existing vector to a BiEdgeVec, use biedgevec![g, v]. Note that the size of v must be exactly g.num_edges() * 2.

let g = peterson::<LinkedListGraph>();
let weights: Vec<_> = (0..g.num_edges() * 2).collect();
let weights = rs_graph::biedgevec![&g, weights];
assert!(g.edges().all(|e| {
    let f = g.reverse(e);
    weights[e] == g.biedge_id(e) && weights[f] == g.biedge_id(f)
}));