37namespace steiner_tree {
70#ifdef OGDF_FULL_COMPONENT_GENERATION_ALWAYS_SAFE
73 if (
dist1[x] < std::numeric_limits<T>::max() &&
dist2[x] < std::numeric_limits<T>::max()
74 &&
dist3[x] < std::numeric_limits<T>::max()) {
101 if (center && !isTerminal[center] && pred[u][center] && pred[v][center] && pred[w][center]) {
Declaration of class EdgeWeightedGraph.
Doubly linked lists (maintaining the length of the list).
Encapsulates a pointer to a list element.
ListIteratorBase< E, isConst, isReverse > succ() const
Returns successor iterator.
iterator begin()
Returns an iterator to the first element of the list.
Dynamic arrays indexed with nodes.
Class for the representation of nodes.
Interface for full 3-component generation including auxiliary functions.
Full3ComponentGeneratorModule()=default
void updateBestCenter(node x, node ¢er, T &minCost, const NodeArray< T > &dist1, const NodeArray< T > &dist2, const NodeArray< T > &dist3) const
Update center node if it is the best so far.
void checkAndGenerateFunction(node u, node v, node w, node center, T minCost, const NodeArray< NodeArray< edge > > &pred, const NodeArray< bool > &isTerminal, std::function< void(node, node, node, node, T)> generateFunction) const
virtual void call(const EdgeWeightedGraph< T > &G, const List< node > &terminals, const NodeArray< bool > &isTerminal, const NodeArray< NodeArray< T > > &distance, const NodeArray< NodeArray< edge > > &pred, std::function< void(node, node, node, node, T)> generateFunction) const =0
Generate full components and call generateFunction for each full component.
void forAllTerminalTriples(const List< node > &terminals, const NodeArray< NodeArray< T > > &distance, std::function< void(node, node, node, const NodeArray< T > &, const NodeArray< T > &, const NodeArray< T > &)> func) const
virtual ~Full3ComponentGeneratorModule()=default
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.