Declaration of interface for acyclic subgraph algorithms.
Declaration and implementation of NodeArray class.
Declaration of interface for ranking algorithms.
Base class of algorithms for computing a maximal acyclic subgraph.
Dynamic arrays indexed with edges.
Data type for general directed graphs (adjacency list representation).
Dynamic arrays indexed with nodes.
The optimal ranking algorithm.
virtual void call(const Graph &G, const EdgeArray< int > &length, const EdgeArray< int > &cost, NodeArray< int > &rank) override
Computes a cost-minimal node ranking of G for given edge costs and minimal edge lengths in rank.
bool separateMultiEdges() const
Returns the current setting of option separateMultiEdges.
bool m_separateMultiEdges
virtual void call(const Graph &G, NodeArray< int > &rank) override
Computes a node ranking of G in rank.
std::unique_ptr< AcyclicSubgraphModule > m_subgraph
void separateMultiEdges(bool b)
Sets the option separateMultiEdges to b.
void setSubgraph(AcyclicSubgraphModule *pSubgraph)
Sets the module for the computation of the acyclic subgraph.
void call(const Graph &G, const EdgeArray< int > &length, NodeArray< int > &rank)
Computes a node ranking of G with given minimal edge length in rank.
OptimalRanking()
Creates an instance of optimal ranking.
void doCall(const Graph &G, NodeArray< int > &rank, EdgeArray< bool > &reversed, const EdgeArray< int > &length, const EdgeArray< int > &cost)
Implements the algorithm call.
Interface of algorithms for computing a node ranking.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.