- 29 Apr, 2012 1 commit
-
-
Tiago Peixoto authored
This makes the code more efficient if the input parameter combinations are much larger than the graph itself.
-
- 18 Nov, 2011 1 commit
-
-
Tiago Peixoto authored
This changes stlightly the information passed to the auxiliary functions provided by the user, so that more arbitrary structures can be constructed more easily.
-
- 26 Aug, 2011 1 commit
-
-
Tiago Peixoto authored
This implements a general "blockmodel" generation / rewiring algorithm, using Gibbs acceptence / rejection sampling (a.k.a Metropolis-Hastings). This also implements some optimizations in the rewiring code, which makes it more efficient on filtered graphs.
-
- 24 Aug, 2011 1 commit
-
-
Tiago Peixoto authored
This introduces several simplifications and corrections to the graph rewire algorithm, to guarantee unbiased sampling. Now a move is outright rejected if it produces a self-loop/parallel-edge, instead of retried. This also adds a "non-sweep" mode, where edges are rewired randomly, possibly with repetition. The edge moves are now simplified to the target of the edges only, since swaping sources is redundant. The number of iterations can now be explicitly modified, so it is not necessary to call the function more than once, and it is emphasized in the documentation that only after sufficiently many iterations can the graph be guaranteed to be fully mixed.
-
- 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
-
- 20 Feb, 2010 1 commit
-
-
Tiago Peixoto authored
This includes also some internal refactoring, and bug fixes.
-
- 22 Dec, 2009 1 commit
-
-
Tiago Peixoto authored
This implements a simpler rewire strategy where the edges are randomly placed, without preserving the degrees of the vertices.
-
- 06 Dec, 2009 1 commit
-
-
Tiago Peixoto authored
-
- 21 Aug, 2009 1 commit
-
-
Tiago Peixoto authored
This is a large commit which replaces lambda::bind with boost::bind in most parts of the code. This improves compilation time, and slightly decreases compilation memory usage in some cases.
-
- 13 Aug, 2009 1 commit
-
-
Tiago Peixoto authored
No longer only thrown GraphError upon any error, but instead throw specific exceptions which are more meaninful and are mapped to standard python exceptions, such as IOError, ValueError and RuntimeError.
-
- 04 Aug, 2009 1 commit
-
-
Tiago Peixoto authored
-
- 23 May, 2009 1 commit
-
-
Tiago Peixoto authored
The generators from boost::random seem to have a bug which causes them to be biased. The generators from tr1::random seem to be in better shape. See: http://thread.gmane.org/gmane.comp.lib.boost.user/48006
-
- 06 Feb, 2009 2 commits
-
-
Ale Abdo authored
graph_rewiring.cc: use static_cast<rng_t::result_type> instead of uint32_t to convert the seed value for the rng_t constructor, so the code becomes compatible with any rng_t.
-
Tiago Peixoto authored
-
- 23 Oct, 2008 1 commit
-
-
Tiago Peixoto authored
This also creates the misc sub-module. This may be re-organized in the future.
-
- 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
-
- 03 Dec, 2007 3 commits
-
-
Tiago Peixoto authored
Move remaining parallelism check out of the outer/inner loops and into the parallel_check() function.
-
Ale Abdo authored
3) missing parallel edge check in uncorrelated strategy 2) "_in()" for target and source of "target swap edge" 1) order of arguments of swap_edge_triad::parallel_check melodrama time... "premature optimization is the root of all evil" "careless abstraction are the fruits of its tree"
-
Tiago Peixoto authored
The check for parallel edges was cleaned up and abstracted into a function, and other minor things were changed. Code comments were added to places where it might have been hard to understand.
-
- 28 Nov, 2007 1 commit
-
-
Ale Abdo authored
Major changes to both correlated and uncorrelated rewiring code. Both cases are now functional and use iterative shuffling. Uncorrelated picks edges to rewire directly, correlated picks vertices in order to choose edges.
-
- 05 Nov, 2007 1 commit
-
-
Ale Abdo authored
Several changes in the random rewiring code, making it fully functional for the correlated case. The reshuffling operations lag in efficiency, even though already the algorithm runs in little time.
-
- 23 Oct, 2007 1 commit
-
- 07 Oct, 2007 1 commit
-
-
Tiago Peixoto authored
Remove graph rewiring for now, since it's quite buggy. It will be re-commited when ready.
-
- 12 Sep, 2007 1 commit
-
-
Tiago Peixoto authored
-
- 30 Jul, 2007 1 commit
-
-
Tiago Peixoto authored
* src/Makefile.am: removed 'boost_workaround' dist files * src/graph/graph_rewiring.cc: deleted blank lines. git-svn-id: https://svn.forked.de/graph-tool/trunk@116 d4600afd-f417-0410-95de-beed9576f240
-
- 11 Jul, 2007 1 commit
-
-
Tiago Peixoto authored
* ChangeLog: updated ChangeLog file with svn history * src/graph/graph_filtering.hh: added add_edge() and remove_edge() functions for filtered graphs * src/graph/shared_map.hh: included SharedContainer * src/graph/graph_rewiring.cc: initial support for random graph rewiring git-svn-id: https://svn.forked.de/graph-tool/trunk@114 d4600afd-f417-0410-95de-beed9576f240
-