- 01 Jan, 2017 1 commit
-
-
Tiago Peixoto authored
-
- 01 Nov, 2016 1 commit
-
-
Tiago Peixoto authored
-
- 19 Oct, 2016 1 commit
-
-
Tiago Peixoto authored
-
- 22 Apr, 2016 1 commit
-
-
Tiago Peixoto authored
Now algorithms rely more on parallel_{vertex/edge}_loop() and global the paralellization threshold is honored.
-
- 02 Apr, 2016 1 commit
-
-
Tiago Peixoto authored
-
- 18 Jan, 2016 1 commit
-
-
Tiago Peixoto authored
-
- 01 Jan, 2016 1 commit
-
-
Tiago Peixoto authored
-
- 22 Nov, 2015 1 commit
-
-
Tiago Peixoto authored
-
- 15 Jul, 2015 1 commit
-
-
Tiago Peixoto authored
This implements a general wrapper for dense_hash_map and dense_hash_set, that falls back to unordered_map and unordered_set, if sparsehash is not enabled.
-
- 29 Jan, 2015 1 commit
-
-
Tiago Peixoto authored
-
- 08 Jan, 2015 1 commit
-
-
Tiago Peixoto authored
-
- 09 Jun, 2014 1 commit
-
-
Tiago Peixoto authored
This also implements direct manipulation of OpenMP settings (schedule and number of threads) via python.
-
- 03 Jan, 2014 1 commit
-
-
Tiago Peixoto authored
-
- 02 Jan, 2014 1 commit
-
-
Tiago Peixoto authored
-
- 21 Dec, 2013 1 commit
-
-
Xin Sun authored
In case google sparsehash uses a non-standard prefix, e.g., in Homebrew.
-
- 10 Nov, 2013 1 commit
-
-
Tiago Peixoto authored
-
- 02 Nov, 2013 1 commit
-
-
Tiago Peixoto authored
-
- 22 Jul, 2013 1 commit
-
-
Tiago Peixoto authored
-
- 15 Jul, 2013 1 commit
-
-
Tiago Peixoto authored
Use schedule(static, 100), to reduce overhead with small graphs in the majority of cases.
-
- 10 Jan, 2013 1 commit
-
-
Tiago Peixoto authored
This enables the inclusion of the non-boost tr1 headers if a recent enough version of libstdc++ is detected. This als fixes a bug with clang when sparsehash pulls unwanted tr1 headers.
-
- 06 Jan, 2013 1 commit
-
-
Tiago Peixoto authored
-
- 03 Jun, 2012 1 commit
-
-
Tiago Peixoto authored
-
- 02 May, 2012 1 commit
-
-
Tiago Peixoto authored
-
- 15 Apr, 2011 1 commit
-
-
- 11 Apr, 2011 1 commit
-
-
Tiago Peixoto authored
-
- 10 Feb, 2011 1 commit
-
-
Tiago Peixoto authored
-
- 13 Nov, 2010 1 commit
-
-
Tiago Peixoto authored
-
- 25 Jul, 2010 1 commit
-
-
Tiago Peixoto authored
This enables support for older versions of GCC (>=4.2), by falling back to the boost tr1 implementation when the GCC version is less than 4.4.
-
- 07 Mar, 2010 1 commit
-
-
Tiago Peixoto authored
-
- 10 Mar, 2009 1 commit
-
-
Tiago Peixoto authored
Thins changes the graph filtering code slightly to wrap graph types with GraphWrap, which automatically updates the edge index list when edges are removed and added to the graph. This also changes how graphs are passed to algorithms, which is now by reference instead of pointer. (hence this touches lots of code, but changes are trivial)
-
- 22 Jul, 2008 1 commit
-
-
Tiago Peixoto authored
-
- 15 Jul, 2008 1 commit
-
-
Tiago Peixoto authored
A new 'clustering' sub-module was created.
-
- 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.
-
- 13 Dec, 2007 1 commit
-
-
Tiago Peixoto authored
-
- 04 Nov, 2007 1 commit
-
-
Tiago Peixoto authored
Line breaks at column 80 were added, and all trailing whitespace was deleted. Code comments were modified and some more were added.
-
- 11 Jul, 2007 1 commit
-
-
Tiago Peixoto authored
* src/graph/graph_extended_clustering.cc (GraphInterface::SetExtendedClusteringToProperty): init vector_property_map size, so that access becomes thread safe. * src/graph/graph_clustering.cc (GraphInterface::SetLocalClusteringToProperty): init vector_property_map size, so that access becomes thread safe. git-svn-id: https://svn.forked.de/graph-tool/trunk@115 d4600afd-f417-0410-95de-beed9576f240
-
- 30 Jun, 2007 2 commits
-
-
Tiago Peixoto authored
* change from HashedDescriptorMap to vector_property_map in several algorithms to save memory and increase speed in the most common case, where the graph is unfiltered. git-svn-id: https://svn.forked.de/graph-tool/trunk@102 d4600afd-f417-0410-95de-beed9576f240
-
Tiago Peixoto authored
git-svn-id: https://svn.forked.de/graph-tool/trunk@101 d4600afd-f417-0410-95de-beed9576f240
-
- 18 May, 2007 1 commit
-
-
Tiago Peixoto authored
* src/graph/graph_clustering.cc * src/graph/graph_distance.cc * src/graph/graph_extended_clustering.cc * src/graph/graph_distance_sampled.cc * fixed "jacknife" variance bug in src/graph/graph_clustering.cc git-svn-id: https://svn.forked.de/graph-tool/trunk@97 d4600afd-f417-0410-95de-beed9576f240
-