Trait pathfinding::directed::edmonds_karp::EdmondsKarp [−][src]
pub trait EdmondsKarp<C: Copy + Zero + Signed + Ord + Bounded> {}Show methods
fn new(size: usize, source: usize, sink: usize) -> Self
where
Self: Sized; fn from_matrix(source: usize, sink: usize, capacities: Matrix<C>) -> Self
where
Self: Sized; fn common(&self) -> &Common<C>; fn common_mut(&mut self) -> &mut Common<C>; fn residual_successors(&self, from: usize) -> Vec<(usize, C)>; fn residual_capacity(&self, from: usize, to: usize) -> C; fn flow(&self, from: usize, to: usize) -> C; fn flows_from(&self, from: usize) -> Vec<usize>; fn flows(&self) -> Vec<((usize, usize), C)>; fn add_flow(&mut self, from: usize, to: usize, capacity: C); fn add_residual_capacity(&mut self, from: usize, to: usize, capacity: C); #[must_use] fn from_vec(source: usize, sink: usize, capacities: Vec<C>) -> Self
where
Self: Sized, { ... } fn size(&self) -> usize { ... } fn source(&self) -> usize { ... } fn sink(&self) -> usize { ... } fn set_capacity(&mut self, from: usize, to: usize, capacity: C) { ... } fn total_capacity(&self) -> C { ... } fn set_total_capacity(&mut self, capacity: C) { ... } fn omit_detailed_flows(&mut self) { ... } fn detailed_flows(&self) -> bool { ... } fn augment(&mut self) -> EKFlows<usize, C> { ... } fn cancel_flow(&mut self, from: usize, to: usize, capacity: C) { ... }
Representation of capacity and flow data.
Required methods
fn new(size: usize, source: usize, sink: usize) -> Self where
Self: Sized,
[src]
Self: Sized,
Create a new empty structure.
Panics
This function panics when source
or sink
is greater or equal than size
.
fn from_matrix(source: usize, sink: usize, capacities: Matrix<C>) -> Self where
Self: Sized,
[src]
Self: Sized,
Create a new populated structure.
Panics
This function panics when source
or sink
is greater or equal than the
number of rows in the capacities
matrix, or it the matrix is not
a square one.
fn common(&self) -> &Common<C>
[src]
Common data.
fn common_mut(&mut self) -> &mut Common<C>
[src]
Mutable common data.
fn residual_successors(&self, from: usize) -> Vec<(usize, C)>
[src]
List of successors with positive residual capacity and this capacity.
fn residual_capacity(&self, from: usize, to: usize) -> C
[src]
Residual capacity between two nodes.
fn flow(&self, from: usize, to: usize) -> C
[src]
Flow between two nodes.
fn flows_from(&self, from: usize) -> Vec<usize>
[src]
All positive flows starting from a node.
fn flows(&self) -> Vec<((usize, usize), C)>
[src]
All flows between nodes.
fn add_flow(&mut self, from: usize, to: usize, capacity: C)
[src]
Add a given flow between two nodes. This should not be used directly.
fn add_residual_capacity(&mut self, from: usize, to: usize, capacity: C)
[src]
Add some residual capacity.
Provided methods
#[must_use]fn from_vec(source: usize, sink: usize, capacities: Vec<C>) -> Self where
Self: Sized,
[src]
Self: Sized,
Create a new populated structure.
Panics
This function panics when source
or sink
is greater or equal than the
number of rows in the square matrix created from the capacities
vector.
fn size(&self) -> usize
[src]
Number of nodes.
fn source(&self) -> usize
[src]
Source.
fn sink(&self) -> usize
[src]
Sink.
fn set_capacity(&mut self, from: usize, to: usize, capacity: C)
[src]
Set capacity between two nodes.
fn total_capacity(&self) -> C
[src]
Get total capacity.
fn set_total_capacity(&mut self, capacity: C)
[src]
Set total capacity.
fn omit_detailed_flows(&mut self)
[src]
Do not request the detailed flows as a result. The returned flows will be an empty vector.
fn detailed_flows(&self) -> bool
[src]
Are detailed flows requested?
fn augment(&mut self) -> EKFlows<usize, C>
[src]
Compute the maximum flow.
fn cancel_flow(&mut self, from: usize, to: usize, capacity: C)
[src]
Internal: cancel a flow capacity between two nodes.
Implementors
impl<C: Copy + Zero + Signed + Eq + Ord + Bounded> EdmondsKarp<C> for SparseCapacity<C>
[src]
impl<C: Copy + Zero + Signed + Eq + Ord + Bounded> EdmondsKarp<C> for SparseCapacity<C>
[src]fn new(size: usize, source: usize, sink: usize) -> Self
[src]
#[must_use]fn from_matrix(source: usize, sink: usize, capacities: Matrix<C>) -> Self
[src]
fn common(&self) -> &Common<C>
[src]
fn common_mut(&mut self) -> &mut Common<C>
[src]
fn residual_successors(&self, from: usize) -> Vec<(usize, C)>
[src]
fn residual_capacity(&self, from: usize, to: usize) -> C
[src]
fn flow(&self, from: usize, to: usize) -> C
[src]
fn flows(&self) -> Vec<((usize, usize), C)>
[src]
fn add_flow(&mut self, from: usize, to: usize, capacity: C)
[src]
fn add_residual_capacity(&mut self, from: usize, to: usize, capacity: C)
[src]
fn flows_from(&self, n: usize) -> Vec<usize>
[src]
impl<C: Copy + Zero + Signed + Ord + Bounded> EdmondsKarp<C> for DenseCapacity<C>
[src]
impl<C: Copy + Zero + Signed + Ord + Bounded> EdmondsKarp<C> for DenseCapacity<C>
[src]