First Page
News
In a Nutshell
About OGDF
FAQs
Key Features
Publications
Documentation
Overview Pages
How-Tos
Developer Resources
Reference Documentation
Get OGDF
Download
Installation (Linux/Mac)
Installation (Windows)
Projects using OGDF
Team & Contact
Imprint
Datenschutz
The following table contains a list of preprocessor defines that are used by OGDF. It is currently work in progress and based on the current release v.2010.10 (Sassafras).
Define | Where defined ? | Description |
---|---|---|
OGDF_DEBUG | Compiler | Must be defined when compiling OGDF as debug version, or code that will be linked against an OGDF debug build. |
OGDF_DLL | Compiler | Must be defined when building or using OGDF as DLL. |
OGDF_INSTALL | Compiler | Must be defined when building OGDF as DLL; do not define when using OGDF as DLL! |
USE_COIN | Compiler | Must be defined if Osi Coin is used. |
COIN_OSI_CPX | Compiler | Must be defined if Coin is used with CPLEX as LP-solver. |
COIN_OSI_CLP | Compiler | Must be defined if Coin is used with Coin's CLP as LP-solver. |
COIN_OSI_SYM | Compiler | Must be defined if Coin is used with Coin's Symphony as LP-solver. |
USE_ABACUS | Compiler | Must be defined if Abacus is used. |
OGDF_MEMORY_POOL_TS | Compiler | Selects the thread-safe pool allocator as OGDF's memory manager (usually the default; see basic/memory.h ). |
OGDF_MEMORY_POOL_NTS | Compiler | Selects the non-thread-safe pool allocator as OGDF's memory manager. |
OGDF_MEMORY_MALLOC_TS | Compiler | Selects ordinary malloc/free as OGDF's memory manager. |
OGDF_USE_SSE2 | Compiler | If set SSE2 code will be generated for x86 platforms (without checking at runtime if supported by processor). |
OGDF_THROW_WITH_INFO | basic/exceptions.h | If set OGDF's THROW macros pass file name and line number of their occurrence in source code; automatically set in debug builds. |
Be careful when setting these parameters. Some parameters must be set to the same values when building OGDF and compiling code that links against OGDF to guarantee proper execution, i.e., OGDF_DEBUG, OGDF_MEMORY_POOL_xxx, and all defines regarding LP-solvers (USE_COIN, COIN_OSI_xxx, USE_ABACUS).
Define | Where set ? | Description |
---|---|---|
OGDF_SYSTEM_UNIX | basic/basic.h | Compiling for a UNIX/Linux/Mac OS X system. |
OGDF_SYSTEM_WINDOWS | basic/basic.h | Compiling for a Windows system. |
OGDF_SYSTEM_OSX | basic/basic.h | Compiling for a Mac OS X system; in this case OGDF_SYSTEM_UNIX is also defined. |
OGDF_ARCH_X86 | basic/System.h | Compiling for a 32-bit x86 (Intel/AMD) architecture. |
OGDF_ARCH_X64 | basic/System.h | Compiling for a 64-bit x64 (Intel/AMD) architecture. |
OGDF_ARCH_IA64 | basic/System.h | Compiling for a 64-bit ia64 (Itanium) architecture. |
OGDF_ARCH_PPC | basic/System.h | Compiling for a PowerPC architecture. |
OGDF_ARCH_SPARC | basic/System.h | Compiling for a SUN SPARC architecture. |
OGDF_ARCH_SPARC_V9 | basic/System.h | Compiling for a SUN SPARC V9 architecture. |
OGDF_EXPORT | basic/basic.h | Specifies that a function or class is exported by the OGDF DLL. Set according to the definition of OGDF_INSTALL (OGDF is build as DLL) and OGDF_DLL (OGDF is used as DLL); if none of these is defined (OGDF is build or used as static library), the define expands to an empty string. |
Note that not all detected architectures are currently supported and/or tested!
Macro | Where defined | Description |
---|---|---|
OGDF_ASSERT(expr) | basic/basic.h | Assert condition expr in debug builds. |
OGDF_ASSERT_IF(minLevel,expr) | basic/basic.h | Assert condition expr in debug builds if debug level is at least minLevel. |
OGDF_SET_DEBUG_LEVEL(level) | basic/basic.h | Set debug level to level. |
THROW_PARAM(class,param) | basic/exceptions.h | Throws an exception of type class and passes parameters param; also passes file name and line number of occurrence in source code if OGDF_THROW_WITH_INFO is set. |
THROW(class) | basic/exceptions.h | Throws an exception of type class; also passes file name and line number of occurrence in source code if OGDF_THROW_WITH_INFO is set. |
OGDF_NEW | basic/memory.h | Should be used to allocated new objects of classes managed by OGDF's memory manager. |
OGDF_NEW_DELETE | basic/memory.h | Adding this macro in a class declaration makes this class managed by OGDF's memory manager. |
OGDF_MALLOC_NEW_DELETE | basic/memory.h | Adding this macro in a class declaration makes this class managed by malloc (as usual), but throws an InsufficientMemoryException when memory allocation failed. |
OGDF_CHECK_SSE2 | basic/System.h | Evaluates to true if the current architecture supports SSE2 extensions. |
THROW_NO_ABACUS_EXCEPTION | external/abacus.h | Throws a LibraryNotSupportedException exception. |
THROW_NO_COIN_EXCEPTION | external/coin.h | Throws a LibraryNotSupportedException exception. |
THROW_NO_CALLBACK_EXCEPTION | external/coin.h | This should not be used by developers. The according exception is called when one tries to register a (e.g. cut-) callback at the COIN LP-solver. Currently such callbacks are only supported for CPLEX. For other solvers one hat to write a wrapper which calls OGDF-callbacks in the correct solver's context. We could clear reference to that macro from this list (mch) |
Macro | Where defined | Description |
---|---|---|
forall_arrayindices(i,A) | basic/Array.h | Iterates over all indices i of array A. |
forall_rev_arrayindices(i,A) | basic/Array.h | Iterates over all indices i of array A in reverse order. |
forall_faces(f,E) | basic/CombinatorialEmbedding.h | Iterates over all faces f of embedding C. |
forall_rev_faces(f,E) | basic/CombinatorialEmbedding.h | Iterates over all faces f of embedding C in reverse order. |
forall_face_adj(adj,f) | basic/CombinatorialEmbedding.h | Iterates over all adjacency entries adj of face f. |
forall_nodes(v,G) | basic/Graph.h | Iterates over all nodes v of graph G. |
forall_rev_nodes(v,G) | basic/Graph.h | Iterates over all nodes v of graph G in reverse order. |
forall_edges(e,G) | basic/Graph.h | Iterates over all edges e of graph G. |
forall_rev_edges(e,G) | basic/Graph.h | Iterates over all edges e of graph G in reverse order. |
forall_adj(adj,v) | basic/Graph.h | Iterates over all adjacency entries adj in the adjacency list of node v. |
forall_rev_adj(adj,v) | basic/Graph.h | Iterates over all adjacency entries adj in the adjacency list of node v in reverse order. |
forall_adj_edges(e,v) | basic/Graph.h | Iterates over all edges e incident to node v (incoming and outgoing). |
forall_listiterators(type,it,L) | basic/List.h | Iterates over all list iterators it of list L containing elements of type type (const iterators). |
forall_rev_listiterators(type,it,L) | basic/List.h | Iterates over all list iterators it of list L containing elements of type type in reverse order (const iterators). |
forall_nonconst_listiterators(type,it,L) | basic/List.h | Iterates over all list iterators it of list L containing elements of type type (non-const iterators). |
forall_rev_nonconst_listiterators(type,it,L) | basic/List.h | Iterates over all list iterators it of list L containing elements of type type in reverse order (non-const iterators). |
forall_cluster_adj(adj,c) | cluster/ClusterGraph.h | Iterates over all adjacency entries adj of edges leaving cluster c. |
forall_cluster_rev_adj(adj,c) | cluster/ClusterGraph.h | Iterates over all adjacency entries adj of edges leaving cluster c (in reverse order). |
forall_cluster_adj_edges(e,c) | cluster/ClusterGraph.h | Iterates over all edges e leaving cluster c. |
forall_clusters(c,C) | cluster/ClusterGraph.h | Iterates over all clusters c of cluster graph C. |
forall_postOrderClusters(c,C) | cluster/ClusterGraph.h | Iterates over all clusters c of cluster graph C in post-order. |