-
Notifications
You must be signed in to change notification settings - Fork 1
freetdi/gala
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Gala is a C++ graph implementation inspired by boost/BGL, but with low level access. you choose the containers and data types and get full access -- at your own risk. Some parts of the code and some decisions are under construction. The example graphs, used as boost graphs, are meant to be safe. The treedec graph interface is following treedec and might be subject to future changes. A gala graph has 4 template args, two of which are container types. The third is the (internal) vertex representation, the fourth is a configuration. CONTAINER TYPES .. are STL style containers, but with one argument only. If you want to use custom allocators, you will have to wrap the type such as in template<class T> using some_container_type=std::vector<T, my_own_allocator>; and then pass some_container_type to gala::graph. INTERNAL VERTEX REPRESENTATION Is an unsigned integer type, or gala::vertex_ptr_tag (default). The latter meaning that only pointers (to the edgesets) are used internally. saving one indirection. CONFIGURATION A gala::graph configuration is a struct that defines the graph behaviour. It holds variables of type static constexpr bool, such as force_simple the graph does not allow multiple edges (currently, this is on by default) force_multigraph the graph does allow multiple edges (not implemented for sets) force_ordering outedges are stored so iteration will be ascending (default off) is_directed edges are tuples, not sets. force_symmetric (directed graphs only), (a,b) and (b,a) have the same multiplicity (incomplete) is_loopless not yet... force_antisymm not yet... only for directed. if theres an edge (a,b), then there is no edge (b,a) These may affect the complexity of add_edge, copy and move (assignment) operations, depending on the chosen containers. TESTS $ make check will compile and run some tests. dependencys only work locally. Test status is the return code. Anything printed is for orientation only. PYTHON PACKAGE See python subdirectory for supplementary material
About
graph abstraction with low-level access (C++)
Resources
Stars
Watchers
Forks
Packages 0
No packages published