1. 26 Nov, 2007 3 commits
  2. 20 Nov, 2007 1 commit
    • Tiago Peixoto's avatar
      Complete re-factoring of python module and command line tool · 8b32d7fc
      Tiago Peixoto authored
      The program was split in two parts:
          1. A python module, graph_tool.py, which encapsulates the graph
             manipulation under a Graph class. Now the following can be done:
                    import graph_tool
                    g1 = graph_tool.Graph()
                    g2 = graph_tool.Graph()
                    print g1.number_of_vertices(), g2.number_of_vertices()
          2. A standalone command line tool, graph-tool, which imports
             graph_tool.py, and exposes the Graph methods as command line
      The whole command line engine was thus (once again) entirely
      rewritten. It is now Crack-Free™, and simply mirrors the methods of the
      Graph class as command line options, using, for this, the beauty of
      function decorators. It classifies now, I believe, as Pythonic™.
  3. 11 Nov, 2007 1 commit
  4. 10 Nov, 2007 2 commits
  5. 04 Nov, 2007 3 commits
  6. 24 Oct, 2007 4 commits
    • Tiago Peixoto's avatar
      Fix Set{Vertex|Edge}FilterRange() when boundaries are -inf · 8ed48c65
      Tiago Peixoto authored
      This fixes the same problem as commit 6663be71, but which arises
      when a filter range boundary is -inf (such as "<=100").
    • Ale Abdo's avatar
      updates from master · 5ffa57c4
      Ale Abdo authored
    • Tiago Peixoto's avatar
      Fix vertex and edge filtering, when only one is active · 300d6f4a
      Tiago Peixoto authored
      When only one of vertex or edge filtering was disabled, the allowed
      range of the disabled filter was set to
      ]numeric_limits<double>::min(), numeric_limits<double>::max()[, and
      the selected filtering property was the respective index. But
      according to the STL documentation from GCC,
      numeric_limits<>::min() returns:
         "The minimum finite value, or for floating types with
          denormalization, the minimum positive normalized value."
      which is always positive for double (!), thus introducing a weird
      regression, where the first vertex (index 0) is always filtered out if
      only the edge filter is active, and vice-versa.
    • Tiago Peixoto's avatar
      Fix --insert-edge-index · d28e2f34
      Tiago Peixoto authored
  7. 23 Oct, 2007 2 commits
  8. 15 Oct, 2007 1 commit
  9. 12 Oct, 2007 2 commits
    • Ale Abdo's avatar
      Implements extended_clustering for directed graphs, based on the fraction of... · 622cc24e
      Ale Abdo authored
      Implements extended_clustering for directed graphs, based on the fraction of possible directed cycles (out-in edges combination).
      The old behavior is still present since it was equivalent to treating the directed graph as undirected (use --undirected option).
    • Tiago Peixoto's avatar
      Added --purge-edges and --purge-vertices option · 23e319bf
      Tiago Peixoto authored
      Filtered vertices and edges can be permanently removed from the graph
      with --purge-vertices and --purge-edges, respectively. The edge or
      vertex filter is automatically removed, afterwards. This is useful if
      maximum speed is necessary, and saving and reloading the graph without
      filtering is not desired.
      (this commit also removes some trailing whitespaces)
  10. 11 Oct, 2007 1 commit
  11. 10 Oct, 2007 5 commits
  12. 08 Oct, 2007 2 commits
  13. 07 Oct, 2007 4 commits
    • Tiago Peixoto's avatar
    • Tiago Peixoto's avatar
      Remove graph rewiring · f618944c
      Tiago Peixoto authored
      Remove graph rewiring for now, since it's quite buggy. It will be
      re-commited when ready.
    • Tiago Peixoto's avatar
      Complete overhaul of command line parsing, and support for loading graph-tool... · cb61cc74
      Tiago Peixoto authored
      Complete overhaul of command line parsing, and support for loading graph-tool as whole as a python module
      The command line parsing was completely rewritten. It now supports
      better parsing of sub-options, with type checking and grouping
      support. Error reporting was also significantly improved, and it now
      warns of invalid options and option values, before the option is
      executed. Some syntax has changed, such as range filtering:
      --[vertex|edge]-range-filter was replaced by
      --exclude-[vertex|edge]-range and --keep-[vertex|edge]-range, which
      should have a clearer meaning. Ranges can also be specified now by
      comparison operators (>,<,>=,<=,=), such as ">=10", to indicate a
      range of (10, inf). In addition, ranges can now be easily open or
      closed at either end, by suffixing the specific end with '*', to
      indicate it is closed, ex: "10 700*" means (10,700].
      The graph-tool script can now be loaded as a python module (it must be
      renamed first to 'something.py'). All the command line options (except
      'for' and 'history' which become irrelevant) are available as
      functions, with full description and optional parameter support. In
      addition, pure function objects can be given as parameters where
      expressions are asked, instead of strings and files, which enables
      convenient extension of graph-tool.
    • Tiago Peixoto's avatar
      fix edge vs. vertex betweenness mixup, and GetCentralPointDominance · 55028b02
      Tiago Peixoto authored
      for undirected graphs
  14. 04 Oct, 2007 1 commit
    • Tiago Peixoto's avatar
      · 8e962092
      Tiago Peixoto authored
      Simplify range filtering, and definitely remove python filtering
      Simplify range filtering of vertices and edges, by always filtering
      both at once, even if all vertices or edges are being considered. This
      severely reduces compilation time and memory, at a small potential
      cost in run-time speed, which will probably be overshadowed by other
      things, such as dynamic_map look-ups ("premature optimization is the
      root of all evil"). Also, remove python-filtering, since, in the end,
      it is just code bloat, since it is quite slow for most uses and can be
      replaced, generally, by python property editing + range filtering.
  15. 28 Sep, 2007 1 commit
  16. 14 Sep, 2007 1 commit
  17. 12 Sep, 2007 2 commits
  18. 09 Aug, 2007 1 commit
    • Tiago Peixoto's avatar
      * src/graph-tool: change layout and community graph options. · c3a6567d
      Tiago Peixoto authored
      	* src/boost-workaround/boost/graph/kamada_kawai_spring_layout.hpp: annotated code with openmp constructs.
      	* src/graph/graph_adaptor.hh: graph_type should be a typedef to the original graph.
      	* src/graph/graph_properties.hh, src/graph/graph_properties.cc: added pos_t type.
      	* src/boost-workaround/boost/graph/fruchterman_reingold.hpp: annotated code with openmp constructs.
      	* src/graph/graph_layout.cc: new file with graph layout routines.
      	* src/graph/graph.cc: removed graph layout routines.
      	* src/graph/graph_community_network.cc (struct get_community_network): fixed inversion of directedness test.
      	* src/graph/graph.cc (GraphInterface::LabelComponents): use vector_property_map instead of HashedDescriptor. Don't use a static map!
      	* src/graph/graph_adaptor.hh: fixed edge descriptor equality comparison, which must rely on underlying edge, regardless of whether it's inverted or not.
      git-svn-id: https://svn.forked.de/graph-tool/trunk@121 d4600afd-f417-0410-95de-beed9576f240
  19. 01 Aug, 2007 2 commits
  20. 31 Jul, 2007 1 commit