1. 02 Jun, 2009 2 commits
  2. 23 May, 2009 1 commit
  3. 10 Mar, 2009 2 commits
    • Tiago Peixoto's avatar
      Fix graph_rewire "can't rewire" bug · 6defdb43
      Tiago Peixoto authored
      This finally fixes in the bug addressed by commit 309ddbbd, where
      parallel edges could be erroneously created. In fact, the bug was more
      serious: The source and target edge lists always pointed to the same
      list (in the uncorrelated case, but could occasionally happen for the
      correlated case also) which got shuffled during iteration. Since the
      shuffling of one list interfered with the shuffling of the other, some
      combinations of source and target edges could simply never be
      considered... This commit forces both lists to always be independent.
      6defdb43
    • Tiago Peixoto's avatar
      Implement optional wrapping of graphs to deal with edge index housekeeping · 684efca7
      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)
      684efca7
  4. 01 Mar, 2009 1 commit
  5. 14 Feb, 2009 1 commit
    • Tiago Peixoto's avatar
      Add centrality module · 96b9c5e7
      Tiago Peixoto authored
      This adds the centrality module, which supports betweenness, eigentrust,
      pagerank and absolute trust.
      96b9c5e7
  6. 10 Feb, 2009 1 commit
    • Tiago Peixoto's avatar
      Fix spurious parallel edge creation in random_rewire() · 50eec674
      Tiago Peixoto authored
      In some circumstances, the test for parallel edges would fail to detect
      one, if it involved another "new" edge and one of the current ones being
      rewired.
      
      This commit also removes the requirement that edge indexes be continuous
      in the range [0, num_edges(g)), which is not in general the case.
      50eec674
  7. 06 Feb, 2009 3 commits
    • Ale Abdo's avatar
      Improves small fix for 64bit architectures. · 2586bae6
      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.
      2586bae6
    • Tiago Peixoto's avatar
      Fix compilation in 64 bit architecture · 4a9bf9f6
      Tiago Peixoto authored
      4a9bf9f6
    • Tiago Peixoto's avatar
      Disable internal bounds checking in property maps · 0ababf9c
      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.
      0ababf9c
  8. 26 Oct, 2008 1 commit
  9. 23 Oct, 2008 2 commits
  10. 21 Oct, 2008 1 commit
    • Tiago Peixoto's avatar
      Rewiring: bugfix, improvements and restructuring resulting in cleaner and faster code · b1e1bc5e
      Tiago Peixoto authored
      Restructure the rewiring code, introducing further abstraction through
      class inheritance.
      
      Both uncorrelated and correlated cases draw edges directly.
      This has actually proven faster than drawing vertices for the correlated
      case, since realizing that indexes could be stored instead of edges.
      Doing so avoids changes in the pool of candidate edges, which in turn
      removes the need to rebuild it for each edge to rewire.
      Consequently, it also makes the uncorrelated case a lot quicker.
      
      In the uncorrelated undirected case, the new code also fixes a serious
      bug: when building the edge pool, only one end of each edge was looked
      at, because the "edges" vector is not equivalent to drawing all
      out_edges from all vertices, as is done now.
      b1e1bc5e
  11. 20 Jul, 2008 1 commit
    • Tiago Peixoto's avatar
      Correctly normalize betweenness centrality · 36982c7a
      Tiago Peixoto authored
      Betweenness centrality should be differently normalized for undirected
      and directed graphs, i.e., (n-2)*(n-1)/2 vs. (n-2)*(n-1),
      respectively. Also, edge centrality should be respectively normalized
      with n*(n-1)/2 and n*(n-1).
      36982c7a
  12. 17 Feb, 2008 1 commit
    • Tiago Peixoto's avatar
      Split libgraph_tool into sub-modules and add test cases · 3cfff0cb
      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
      3cfff0cb