- 26 Dec, 2012 1 commit
-
-
Tiago Peixoto authored
The object may be globally reset via the seed_rng() function.
-
- 22 Jun, 2012 1 commit
-
-
Tiago Peixoto authored
-
- 21 Jun, 2012 1 commit
-
-
Tiago Peixoto authored
-
- 03 Jun, 2012 1 commit
-
-
Tiago Peixoto authored
-
- 06 May, 2012 1 commit
-
-
Tiago Peixoto authored
This install the boost workaround headers together with graph_tool's header files.
-
- 29 Apr, 2012 1 commit
-
-
Tiago Peixoto authored
-
- 06 Apr, 2012 1 commit
-
-
Tiago Peixoto authored
-
- 12 Oct, 2011 1 commit
-
-
Tiago Peixoto authored
This includes a spirit parser for the gml syntax, and a graph writer. Additionaly, the general graph io code also been cleaned up.
-
- 13 Aug, 2011 1 commit
-
-
Tiago Peixoto authored
-
- 08 Jul, 2011 1 commit
-
-
Tiago Peixoto authored
-
- 01 Jun, 2011 1 commit
-
-
Tiago Peixoto authored
Now properties can be copied from vertices which are not identical (e.g. from unfiltered to filtered graphs, etc). This fixes a problem with graph copying and pruning, where the properties were not correclty copied.
-
- 28 Apr, 2011 1 commit
-
-
Tiago Peixoto authored
This removes reverse_graph.hpp, reverse_graph.hpp and copy.hpp, and introduces some modifications in graph_adaptor.hh. This modification fixes compilation problems across different boost versions.
-
- 18 Jan, 2011 1 commit
-
-
Tiago Peixoto authored
-
- 23 Dec, 2010 1 commit
-
-
Tiago Peixoto authored
-
- 05 Dec, 2010 1 commit
-
-
Tiago Peixoto authored
This module contains several search algorithms and a visitor interface.
-
- 03 May, 2010 1 commit
-
-
Tiago Peixoto authored
This also maintains compatibility with older boost versions.
-
- 23 Dec, 2009 1 commit
-
-
Tiago Peixoto authored
This allows compilation with older versions of boost (>=1.38), which in some sistems are the only option. This commit also removes the linking of the boost_graph shared library, since none of its symbols are actually required.
-
- 05 Nov, 2009 1 commit
-
-
Tiago Peixoto authored
Fix compilation warnings with boost 1.40, remove unnecessary files, fix autoconf macros and link with "boost_graph". This also raises the minimum boost version to 1.40.
-
- 05 Oct, 2009 2 commits
-
-
Tiago Peixoto authored
-
Tiago Peixoto authored
-
- 03 Sep, 2009 1 commit
-
-
Tiago Peixoto authored
This implements a layout module (called 'draw' from python) with an implementation of the arf spring-block layout.
-
- 21 Aug, 2009 1 commit
-
-
Tiago Peixoto authored
This includes the edmonds karp, push relabel and kolmogorov maximum flow algorithms from the BGL.
-
- 16 Aug, 2009 1 commit
-
-
Tiago Peixoto authored
-
- 14 Feb, 2009 1 commit
-
-
Tiago Peixoto authored
This adds the centrality module, which supports betweenness, eigentrust, pagerank and absolute trust.
-
- 06 Feb, 2009 3 commits
-
-
Tiago Peixoto authored
Now inline() automatically converts known variables (such as property maps) and defaults to boost::python objects, instead of scxx objects. The code now is only generated for the current filtered, reversed and/or directed status of the graph, reducing compile time and binary size. Edge modification (remove and add) is now protected by a GraphWrap class, which takes care of the edge index housekeeping, which does not need to be done by hand anymore. The function is also no longer bound to one graph, and can take an arbitrary number of variables of known or unknown types, including graphs.
-
Tiago Peixoto authored
-
Tiago Peixoto authored
This includes a new vector property map type (fast_vector_property_map) which has optional disabling of bounds checking, through its associate map type (unchecked_fast_vector_property_map). This should improve performance on algorithms which depend on tight loops which access property maps. Bounds checking is only disabled locally just before the algorithms run, and proper care is taken for bounds checking _beforehand_. The property maps exposed to python still have internal bounds checking.
-
- 01 Dec, 2008 1 commit
-
-
Tiago Peixoto authored
This includes the community sub-module.
-
- 23 Oct, 2008 1 commit
-
-
Tiago Peixoto authored
This also creates the misc sub-module. This may be re-organized in the future.
-
- 13 Oct, 2008 1 commit
-
-
Tiago Peixoto authored
This contains at the moment functions to perform basic vertex and edge searches.
-
- 07 Oct, 2008 1 commit
-
-
Tiago Peixoto authored
Add $(srcdir) to include paths in AM_CPPFLAGS so that we can compile the program writing all targets into a directory separate from the sources. This is done simply by creatig a subdirectory of the project root and running "../configure" and "make" inside it.
-
- 15 Jul, 2008 1 commit
-
-
Tiago Peixoto authored
A new 'clustering' sub-module was created.
-
- 14 Apr, 2008 1 commit
-
-
Tiago Peixoto authored
-
- 10 Apr, 2008 1 commit
-
-
Tiago Peixoto authored
The whole histogram code has been redone, and the code has been simplified. The three-point vertex-edge-vertex correlation has been scrapped, since it's not frequently used, and would make compilation even more expensive. This also adds some missing files to the generation routine.
-
- 27 Mar, 2008 1 commit
-
-
Tiago Peixoto authored
Now graphml files properly contain all the supported value types, which are all perfectly preserved when read (floating point data is now saved in hexadecimal format). Several other improvements were made, such as the ability to read and write to python file-like objects. It is also now possible to have arbitrary python object properties, and store them persistently (which is done internally with the pickling interface). vector<bool> was totally abolished, since its implementation is quite broken. See: http://www.gotw.ca/publications/N1211.pdf and http://www.gotw.ca/publications/N1185.pdf Now a uint8_t (aka. char) is used in graph properties instead of a bool. Graph types can now be fully pickled (this may not be feasible memory-wise if the graph is too large, since the whole XML representation is dumped to a string before it is saved on disc).
-
- 17 Feb, 2008 1 commit
-
-
Tiago Peixoto authored
This commit splits libraph_tool into different libraries: - libgraph_tool_core - libgraph_tool_clustering (*) - libgraph_tool_community (*) - libgraph_tool_correlations (*) - libgraph_tool_distance (*) - libgraph_tool_generation (*) - libgraph_tool_layout (*) - libgraph_tool_misc (*) - libgraph_tool_stats (*) It also adds the python sub-module 'test', which provides extensive unit testing of the core functionality. The core library is fully functional and all test pass successfully. (*) -> module needs to be ported to new refactoring, and does not yet build
-
- 10 Feb, 2008 1 commit
-
-
Tiago Peixoto authored
This is a huge commit which completely refactors the metaprogramming engine which generates and selects (at run time) the graph view type and the desired algorithm implementation (template instantiation) that runs on it. Things are laid out now as following. There exists a main underlying graph type (GraphInterface::multigraph_t) and several other template classes that mask it some way or another, in a hierarchic fashion: multigraph_t -> filtered_graph (edges only, vertices only, both) | | | | | | | | |-------(reversed_graph)--------|-----------|-----------| | | | | \------(UndirectedAdaptor)------------------------------/ The filtered_graph filters out edges and/or vertices from the graph based on some scalar boolean property. The reversed_graph reversed the direction of the edges and, finally, the UndirectedAdaptor treats the original directed graphs as undirected, transversing the in- and out-edges of each vertex indifferently. Thus, the total number of graph view types is 12. (The option --disable-graph-filtering can be passed to the configure script, which will disable graph filtering altogether and bring the total number down to 3, to reduce compile time and memory usage) In general, some specific algorithm, implemented as a template function object, needs to be instantiated for each of those types. Furthermore, the algorithm may also depend on other types, such as specific property_maps. Thus, the following scheme is used: struct my_algorithm // algorithm to be implemented { template <class Graph, class PropertyMap> void operator()(Graph *g, PropertyMap p, double& result) const { // ... } }; // in order for the above code to be instantiated at compile time // and selected at run time, the run_action template function object // is used from a member function of the GraphInterface class: double GraphInterface::MyAlgorithm(string prop_name) { double result; boost::any vprop = prop(property, _vertex_index, _properties); run_action<>()(*this, bind<void>(my_algorithm(), _1, _2, var(result)), vertex_scalar_properties())(vprop); return result; } The whole code was changed to reflect this scheme, but now things are more centralized and less ad-hoc code needed to be written. Unfortunately, due to GCC's high memory usage during template instantiations, some of the code (namely all the degree correlation things) had to be split in multiple compilation units... Maybe this will change in the future if GCC gets optimized. This commit also touches other parts of code. More specifically, the way filtering gets done is very different. Now we only filter on boolean properties, and with the above scheme, the desired implementation runs with the correct chosen type, and no implicit type conversions should ever happen, which would have a bad impact on performance.
-
- 24 Jan, 2008 1 commit
-
-
Tiago Peixoto authored
The '-E' flag is necessary with GNU ld so that all dynamic symbols are properly exported, and things like typeid() work across DSO boundaries. However there are other linkers out there which don't accept this option. This commit checks for this and drops the option in that case. Let us hope those linkers do the right thing, or wait until someone complains...
-
- 21 Dec, 2007 1 commit
-
-
Tiago Peixoto authored
Everything was moved into the graph_tool directory, which should have, after installation, the following structure: graph_tool/ Top-level package __init__.py Initialize the graph_tool package libgraph_tool.so libgraph_tool submodule libgraph_tool.la libtool file for libgraph_tool include/ C++ include files for dynamically compiled code
-
- 17 Dec, 2007 1 commit
-
-
Tiago Peixoto authored
Some visibility voodoo is necessary to ensure that RTTI work properly across DSO boundaries, which is necessary to properly handle dynamic property maps and such. Additionally, the action template must have a different name each time the action code changes, to avoid additional weirdness. This also adds some other utility functions/typedefs to make writing "inline" c++ code easier.
-