snap-2017-02-16

Changes since last snapshot

  • new graph generator customGraph() for quick generation of
    specific custom graphs
  • the graph size is no longer bounded by the stack size for the
    following algorithms:
    • biconnectedComponents()
    • strongComponents()
    • isForest()
  • new simple graph algorithm nodeDistribution() and
    degreeDistribution() as a special case
  • file format changes:
    • an STP reader for Graph (without edge weights and terminals)
      is now available, and it is included in the generic reader
    • the DMF reader and writer uses Graph and EdgeArray instead
      of EdgeWeightedGraph now
    • the DOT reader is now implemented non-recursively
      (which allows reading of large files while having low stack size)
    • Graph6, GDF, and TLP readers now clear the graph before reading
  • new minimum s-t-cut functionality:
    • MinSTCut module
    • MinSTCutMaxflow (replaces old MinSTCut)
    • MinSTCutBFS
    • MinSTCutDijkstra
  • new class DIntersectableRect replaces IntersectionRectangle
  • new PlanarSubgraphTree class as Maximum Planar Subgraph heuristic
  • bugfixes, code cleanup, improvement of code quality, C++11ifications,
    e.g., in:
    • OGDF initialization
    • the POOL_TS memory manager
    • GraphAttributes
    • GraphCopySimple
    • List, ListPure, SLIst, SListPure
    • DisjointSets
    • EdgeRouter
    • FMMMLayout
    • LCA
    • (fast_multipole_embedder::)ArrayGraph
    • (fast_multipole_embedder::)WSPD
    • the spring embedder force models
  • general (sometimes internal) changes:
    • removal of the doDestruction() function template
    • removal of a lot of shadowing of variables
    • fixes of one-definition-rule violations that led
      to weird problems
    • enum classes (scoped enums) are now used throughout OGDF
      instead of unscoped enums
    • typedefs are replaced by using for improved readability
      and better flexibility
    • declaration of several constructors as explicit to
      avoid implicit conversion where it is wrong
    • some auxiliary classes are moved into sub-namespaces and
      their files are often moved into sub-directories
    • slightly improved consistency in documentation
    • slightly improved code style consistency

There are also CMake changes. The default target only compiles the OGDF (and its dependencies). There are new targets “tests” and “examples” doing the obvious, and a new target “build-all” that also compiles tests and examples. Separate test targets are renamed from foo_bar_test to test-foo-bar.