149 if ((*
m_cap)[e] < 0) {
Compare floating point numbers with epsilons and integral numbers with normal compare operators.
Includes declaration of graph class.
Dynamic arrays indexed with edges.
Class for the representation of edges.
Data type for general directed graphs (adjacency list representation).
internal::GraphObjectContainer< EdgeElement > edges
The container containing all edge objects.
const node * m_t
Pointer to the sink node.
virtual ~MaxFlowModule()
Destructor that deletes m_flow if it is an internal flow array.
bool usingExternFlow
Is an extern flow array given in the constructor?
virtual void computeFlowAfterValue()=0
Compute the flow itself after the flow value is already computed. Only used in algorithms with 2 phas...
MaxFlowModule(const Graph &graph, EdgeArray< T > *flow=nullptr)
Constructor that calls init.
virtual void init(const Graph &graph, EdgeArray< T > *flow=nullptr)
Initialize the problem with a graph and optional flow array. If no flow array is given,...
EdgeArray< T > * m_flow
Pointer to (extern) flow array.
void useEpsilonTest(const double &eps)
Change the used EpsilonTest from StandardEpsilonTest to a user given EpsilonTest.
bool isFeasibleInstance() const
Return whether the instance is feasible, i.e. the capacities are non-negative.
const Graph * m_G
Pointer to the given graph.
virtual T computeValue(const EdgeArray< T > &cap, const node &s, const node &t)=0
Compute only the value of the flow.
bool doingAReInit
Is the next "init" call a re-init?
const node * m_s
Pointer to the source node.
const EdgeArray< T > * m_cap
Pointer to the given capacity array.
MaxFlowModule()
Empty Constructor.
T computeFlow(EdgeArray< T > &cap, node &s, node &t, EdgeArray< T > &flow)
Only a shortcut for computeValue and computeFlowAfterValue.
void computeFlowAfterValue(EdgeArray< T > &flow)
Compute the flow itself after the flow value is already computed. Only used in algorithms with 2 phas...
EpsilonTest * m_et
Pointer to the used EpsilonTest.
Class for the representation of nodes.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.