OGDF » Release Notes » Madrona
Released 2012-05-10.
This release brings various new algorithms and modules, as well as bug fixes and adaptions for current compilers.
Highlights:
MultiEdgeApproxInserter).FPPLayout) and Schnyder (class SchnyderLayout).SugiyamaLayout:SiftingHeuristic) and greedy approaches (classes GreedyInsertHeuristic and GreedySwitchHeuristic).CoffmanGrahamRanking).FastSimpleHierarchyLayout).DisjointSets).MultiEdgeApproxInserter) implementing an approximation algorithm for multi-edge insertion.FPPLayout implements the algorithm by de Fraysseix, Pach, Pollack.SchnyderLayout implements the algorithm by Schnyder.CoffmanGrahamRanking) which allows to limit the number of nodes on a layer.GreedyInsertHeuristicGreedySwitchHeuristicSiftingHeuristicFastSimpleHierarchyLayout) in Sugiyama’s framework implementing the algorithm by Brandes and Köpf.DisjointSets).SpringEmbedderFRExact): Fruchterman/Reingold spring-embedder with exact force calculations; also features OpenMP and SSE3 parallelization.loadChallengeGraph(), saveChallengeGraph(): read and write graphs in GD Challenge file format.loadChacoGraph(): read graph in Chaco (graph partitioning software) file format.loadEdgeListSubgraph(), saveEdgeListSubgraph(): read and write graphs with specified subgraphs in a simple file format (used in experimental evaluation of edge insertion algorithms by Chimani and Gutwenger).SteinLibParser: reads instances from SteinLib.planarConnectedGraph(): creates a connected (simple) planar (embedded) graph.gridGraph(): creates a (toroidal) grid graph.petersenGraph(): creates a generalized Petersen graph.changeDir() now returns a boolean value (true = successful).SList, SListPure: added search() method.ModularMultilevelMixerLayout.h to ModularMultilevelMixer.h (since it defines class ModularMultilevelMixer).ClusterGraphAttributes: made method readClusterGraphGML() private, since it should not be called by a user.CrossingsMatrix: changed return type of operator() from double to int.ScalingLayout, PreprocessorLayout: proper usage of module options.Math and renamed euler to e; added definitions of constants pi_2, pi_4, and two_pi.GraphAttributes: writeGML() now uses edge arrow attributes if specified.GmlParser: Access to uninitialized pointer in destructor if file could not be opened in constructor.ModularMultilevelMixer: implemented correct usage of module options; fixes a potential memory leak.Cluster-Sugiyama: fixed bug in ExtendedNestingGraph::tryEdge() (integer overflow); reimplemented computation of “levels” for fast acyclicity testing such that levels are < 2n.DynamicPlanarSPQRTree.h: fixed include statement (missing subdirectory decomposition).GraphListBase::swap() (wrong swap function was called).