61 int64_t tCreateSparse = 0;
72 enum class Solver { HananiTutte, HananiTutteVerify, ILP };
76 cConnectedAfterPreproc,
77 nonPlanarAfterPreproc,
91 enum class Type : uint16_t { tVertex, tEdge };
104 Verification res = isCPlanar(CG,
true,
false, Solver::HananiTutteVerify);
105 if (res == Verification::cPlanar || res == Verification::cPlanarVerified) {
107 }
else if (res == Verification::nonCPlanarVerified) {
110 throw std::runtime_error(
"Could not solve instance!");
115 return isClusterPlanar(CG);
119 Solver solver = Solver::HananiTutte);
149 int m_numNodesPreproc = 0;
150 int m_numEdgesPreproc = 0;
151 int m_numClustersPreproc = 0;
Declaration of ClusterPlanarityModule which implements a cluster-planarity test and,...
Basic declarations, included by all source files.
Representation of clustered graphs.
Data type for general directed graphs (adjacency list representation).
C-planarity testing via Hanani-Tutte approach.
int64_t timeCreateSparse() const
bool isClusterPlanarDestructive(ClusterGraph &CG, Graph &G) override
Returns true, if CG is cluster-planar, false otherwise. In it is non-cluster-planar,...
Verification isCPlanar(const ClusterGraph &C, bool doPreproc=true, bool forceSolver=false, Solver solver=Solver::HananiTutte)
int numMatrixCols() const
int numNodesPreproc() const
int numClustersPreproc() const
int64_t timePrepare() const
bool isClusterPlanar(const ClusterGraph &CG) override
Returns true, if CG is cluster-planar, false otherwise.
int numMatrixRows() const
static void preprocessing(ClusterGraph &C, Graph &G)
static HananiTutteSolver * getSolver(const ClusterGraph &C)
const Stats & stats() const
int64_t timesolve() const
int numEdgesPreproc() const
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / DLL),...
The namespace for all OGDF objects.
virtual bool verify(Stats &stats)=0
virtual ~HananiTutteSolver()=default
virtual bool test(Stats &stats)=0