1. 03 Feb, 2014 1 commit
    • Tiago Peixoto's avatar
      Improve speed of random_rewire() when parallel edges are not allowed · 0e21f9a5
      Tiago Peixoto authored
      This also changes the semantics of random_rewire() when parallel edges
      / self loops are forbidden, but the initial graph contains them. Now,
      instead of throwing an exception, the rewiring is attempted, with no
      new parallel edges / self-loops being created. Under some
      circumstances, if the degree sequence is graphical, eventually the
      graph can become simple after sufficiently many sweeps.
      0e21f9a5
  2. 03 Jan, 2014 1 commit
  3. 02 Jan, 2014 1 commit
  4. 21 Dec, 2013 1 commit
  5. 10 Nov, 2013 1 commit
  6. 25 Apr, 2013 1 commit
  7. 11 Feb, 2013 1 commit
  8. 10 Jan, 2013 1 commit
  9. 06 Jan, 2013 1 commit
  10. 26 Dec, 2012 1 commit
  11. 02 Aug, 2012 1 commit
  12. 03 Jun, 2012 1 commit
  13. 02 May, 2012 1 commit
  14. 29 Apr, 2012 3 commits
  15. 14 Sep, 2011 1 commit
  16. 02 Sep, 2011 1 commit
  17. 26 Aug, 2011 1 commit
  18. 24 Aug, 2011 1 commit
    • Tiago Peixoto's avatar
      Several improvements to random_rewire() / random_graph() · 8240714e
      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.
      8240714e
  19. 10 Feb, 2011 1 commit
  20. 13 Nov, 2010 1 commit
  21. 25 Jul, 2010 1 commit
  22. 07 Mar, 2010 1 commit
  23. 20 Feb, 2010 2 commits
    • Tiago Peixoto's avatar
      Include probabilistic random_rewire() strategy · 64cb52b3
      Tiago Peixoto authored
      This includes also some internal refactoring, and bug fixes.
      64cb52b3
    • Tiago Peixoto's avatar
      Refactor random_rewire() · b678e65a
      Tiago Peixoto authored
      This extensively modifies the random_rewire() algorithm, so that only
      either the source or the edge of each edge is rewired (not both, as
      previously), and no parallel edges are created during the algorithm (if
      desired).
      
      The new version is much faster, and never gets stuck. However, more than
      one run may be necessary in order to obtain a uniform shuffling.
      b678e65a
  24. 14 Feb, 2010 1 commit
  25. 08 Feb, 2010 1 commit
    • Tiago Peixoto's avatar
      Fix rewiring bias bug for undirected graphs · d158af8f
      Tiago Peixoto authored
      This fixes a problem, where the underlying edge directionality would
      cause correlations to arise when rewiring undirected graphs. Now each
      edge is correctly considered in both possible orientations, which are
      chosen randomly.
      d158af8f
  26. 23 Dec, 2009 1 commit
    • Tiago Peixoto's avatar
      Relax boost version requirements · 154ef865
      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.
      154ef865
  27. 22 Dec, 2009 1 commit
  28. 05 Nov, 2009 1 commit
    • Tiago Peixoto's avatar
      Sync with boost 1.40 · 6d1810e1
      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.
      6d1810e1
  29. 06 Sep, 2009 1 commit
  30. 13 Aug, 2009 1 commit
    • Tiago Peixoto's avatar
      Reorganize exceptions thrown · f257d426
      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.
      f257d426
  31. 07 Aug, 2009 1 commit
    • Tiago Peixoto's avatar
      Fix bug in random_rewire() with undirected graphs · c72e48d5
      Tiago Peixoto authored
      When using undirected graphs, the implicit direction of each edge was
      not properly handled, and the correlated case would not work. Now, in
      this case, the direction is always checked, and the edge is inverted if
      necessary.
      c72e48d5
  32. 04 Aug, 2009 1 commit
  33. 02 Jun, 2009 2 commits
  34. 23 May, 2009 1 commit
  35. 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