lemongraph 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.yardopts +8 -0
- data/LICENSE +674 -0
- data/README.md +6 -0
- data/ext/lemon-1.3.1/AUTHORS +26 -0
- data/ext/lemon-1.3.1/CMakeLists.txt +371 -0
- data/ext/lemon-1.3.1/INSTALL +167 -0
- data/ext/lemon-1.3.1/LICENSE +32 -0
- data/ext/lemon-1.3.1/NEWS +337 -0
- data/ext/lemon-1.3.1/README +50 -0
- data/ext/lemon-1.3.1/cmake/FindCOIN.cmake +110 -0
- data/ext/lemon-1.3.1/cmake/FindGLPK.cmake +55 -0
- data/ext/lemon-1.3.1/cmake/FindGhostscript.cmake +10 -0
- data/ext/lemon-1.3.1/cmake/FindILOG.cmake +102 -0
- data/ext/lemon-1.3.1/cmake/FindSOPLEX.cmake +23 -0
- data/ext/lemon-1.3.1/cmake/LEMONConfig.cmake.in +13 -0
- data/ext/lemon-1.3.1/cmake/nsis/lemon.ico +0 -0
- data/ext/lemon-1.3.1/cmake/nsis/uninstall.ico +0 -0
- data/ext/lemon-1.3.1/cmake/version.cmake +1 -0
- data/ext/lemon-1.3.1/cmake/version.cmake.in +1 -0
- data/ext/lemon-1.3.1/contrib/CMakeLists.txt +19 -0
- data/ext/lemon-1.3.1/lemon/CMakeLists.txt +91 -0
- data/ext/lemon-1.3.1/lemon/adaptors.h +3638 -0
- data/ext/lemon-1.3.1/lemon/arg_parser.cc +474 -0
- data/ext/lemon-1.3.1/lemon/arg_parser.h +440 -0
- data/ext/lemon-1.3.1/lemon/assert.h +214 -0
- data/ext/lemon-1.3.1/lemon/base.cc +37 -0
- data/ext/lemon-1.3.1/lemon/bellman_ford.h +1116 -0
- data/ext/lemon-1.3.1/lemon/bfs.h +1754 -0
- data/ext/lemon-1.3.1/lemon/bin_heap.h +347 -0
- data/ext/lemon-1.3.1/lemon/binomial_heap.h +445 -0
- data/ext/lemon-1.3.1/lemon/bits/alteration_notifier.h +472 -0
- data/ext/lemon-1.3.1/lemon/bits/array_map.h +351 -0
- data/ext/lemon-1.3.1/lemon/bits/bezier.h +174 -0
- data/ext/lemon-1.3.1/lemon/bits/default_map.h +182 -0
- data/ext/lemon-1.3.1/lemon/bits/edge_set_extender.h +627 -0
- data/ext/lemon-1.3.1/lemon/bits/enable_if.h +131 -0
- data/ext/lemon-1.3.1/lemon/bits/graph_adaptor_extender.h +401 -0
- data/ext/lemon-1.3.1/lemon/bits/graph_extender.h +1332 -0
- data/ext/lemon-1.3.1/lemon/bits/lock.h +65 -0
- data/ext/lemon-1.3.1/lemon/bits/map_extender.h +332 -0
- data/ext/lemon-1.3.1/lemon/bits/path_dump.h +177 -0
- data/ext/lemon-1.3.1/lemon/bits/solver_bits.h +194 -0
- data/ext/lemon-1.3.1/lemon/bits/traits.h +388 -0
- data/ext/lemon-1.3.1/lemon/bits/variant.h +494 -0
- data/ext/lemon-1.3.1/lemon/bits/vector_map.h +244 -0
- data/ext/lemon-1.3.1/lemon/bits/windows.cc +166 -0
- data/ext/lemon-1.3.1/lemon/bits/windows.h +44 -0
- data/ext/lemon-1.3.1/lemon/bucket_heap.h +594 -0
- data/ext/lemon-1.3.1/lemon/capacity_scaling.h +1014 -0
- data/ext/lemon-1.3.1/lemon/cbc.cc +460 -0
- data/ext/lemon-1.3.1/lemon/cbc.h +129 -0
- data/ext/lemon-1.3.1/lemon/christofides_tsp.h +254 -0
- data/ext/lemon-1.3.1/lemon/circulation.h +807 -0
- data/ext/lemon-1.3.1/lemon/clp.cc +464 -0
- data/ext/lemon-1.3.1/lemon/clp.h +164 -0
- data/ext/lemon-1.3.1/lemon/color.cc +44 -0
- data/ext/lemon-1.3.1/lemon/color.h +204 -0
- data/ext/lemon-1.3.1/lemon/concept_check.h +77 -0
- data/ext/lemon-1.3.1/lemon/concepts/bpgraph.h +1029 -0
- data/ext/lemon-1.3.1/lemon/concepts/digraph.h +491 -0
- data/ext/lemon-1.3.1/lemon/concepts/graph.h +788 -0
- data/ext/lemon-1.3.1/lemon/concepts/graph_components.h +2134 -0
- data/ext/lemon-1.3.1/lemon/concepts/heap.h +324 -0
- data/ext/lemon-1.3.1/lemon/concepts/maps.h +223 -0
- data/ext/lemon-1.3.1/lemon/concepts/path.h +312 -0
- data/ext/lemon-1.3.1/lemon/config.h.in +22 -0
- data/ext/lemon-1.3.1/lemon/connectivity.h +1688 -0
- data/ext/lemon-1.3.1/lemon/core.h +2506 -0
- data/ext/lemon-1.3.1/lemon/cost_scaling.h +1607 -0
- data/ext/lemon-1.3.1/lemon/counter.h +249 -0
- data/ext/lemon-1.3.1/lemon/cplex.cc +994 -0
- data/ext/lemon-1.3.1/lemon/cplex.h +292 -0
- data/ext/lemon-1.3.1/lemon/cycle_canceling.h +1230 -0
- data/ext/lemon-1.3.1/lemon/dfs.h +1637 -0
- data/ext/lemon-1.3.1/lemon/dheap.h +352 -0
- data/ext/lemon-1.3.1/lemon/dijkstra.h +1303 -0
- data/ext/lemon-1.3.1/lemon/dim2.h +726 -0
- data/ext/lemon-1.3.1/lemon/dimacs.h +448 -0
- data/ext/lemon-1.3.1/lemon/edge_set.h +1420 -0
- data/ext/lemon-1.3.1/lemon/edmonds_karp.h +556 -0
- data/ext/lemon-1.3.1/lemon/elevator.h +982 -0
- data/ext/lemon-1.3.1/lemon/error.h +276 -0
- data/ext/lemon-1.3.1/lemon/euler.h +287 -0
- data/ext/lemon-1.3.1/lemon/fib_heap.h +475 -0
- data/ext/lemon-1.3.1/lemon/fractional_matching.h +2139 -0
- data/ext/lemon-1.3.1/lemon/full_graph.h +1082 -0
- data/ext/lemon-1.3.1/lemon/glpk.cc +1012 -0
- data/ext/lemon-1.3.1/lemon/glpk.h +263 -0
- data/ext/lemon-1.3.1/lemon/gomory_hu.h +568 -0
- data/ext/lemon-1.3.1/lemon/graph_to_eps.h +1186 -0
- data/ext/lemon-1.3.1/lemon/greedy_tsp.h +251 -0
- data/ext/lemon-1.3.1/lemon/grid_graph.h +699 -0
- data/ext/lemon-1.3.1/lemon/grosso_locatelli_pullan_mc.h +840 -0
- data/ext/lemon-1.3.1/lemon/hao_orlin.h +1015 -0
- data/ext/lemon-1.3.1/lemon/hartmann_orlin_mmc.h +654 -0
- data/ext/lemon-1.3.1/lemon/howard_mmc.h +651 -0
- data/ext/lemon-1.3.1/lemon/hypercube_graph.h +459 -0
- data/ext/lemon-1.3.1/lemon/insertion_tsp.h +533 -0
- data/ext/lemon-1.3.1/lemon/karp_mmc.h +590 -0
- data/ext/lemon-1.3.1/lemon/kruskal.h +324 -0
- data/ext/lemon-1.3.1/lemon/lemon.pc.in +10 -0
- data/ext/lemon-1.3.1/lemon/lgf_reader.h +3854 -0
- data/ext/lemon-1.3.1/lemon/lgf_writer.h +2687 -0
- data/ext/lemon-1.3.1/lemon/list_graph.h +2510 -0
- data/ext/lemon-1.3.1/lemon/lp.h +95 -0
- data/ext/lemon-1.3.1/lemon/lp_base.cc +30 -0
- data/ext/lemon-1.3.1/lemon/lp_base.h +2147 -0
- data/ext/lemon-1.3.1/lemon/lp_skeleton.cc +143 -0
- data/ext/lemon-1.3.1/lemon/lp_skeleton.h +234 -0
- data/ext/lemon-1.3.1/lemon/maps.h +4057 -0
- data/ext/lemon-1.3.1/lemon/matching.h +3505 -0
- data/ext/lemon-1.3.1/lemon/math.h +77 -0
- data/ext/lemon-1.3.1/lemon/max_cardinality_search.h +794 -0
- data/ext/lemon-1.3.1/lemon/min_cost_arborescence.h +808 -0
- data/ext/lemon-1.3.1/lemon/nagamochi_ibaraki.h +702 -0
- data/ext/lemon-1.3.1/lemon/nauty_reader.h +113 -0
- data/ext/lemon-1.3.1/lemon/nearest_neighbor_tsp.h +238 -0
- data/ext/lemon-1.3.1/lemon/network_simplex.h +1659 -0
- data/ext/lemon-1.3.1/lemon/opt2_tsp.h +367 -0
- data/ext/lemon-1.3.1/lemon/pairing_heap.h +474 -0
- data/ext/lemon-1.3.1/lemon/path.h +1164 -0
- data/ext/lemon-1.3.1/lemon/planarity.h +2754 -0
- data/ext/lemon-1.3.1/lemon/preflow.h +985 -0
- data/ext/lemon-1.3.1/lemon/quad_heap.h +343 -0
- data/ext/lemon-1.3.1/lemon/radix_heap.h +438 -0
- data/ext/lemon-1.3.1/lemon/radix_sort.h +487 -0
- data/ext/lemon-1.3.1/lemon/random.cc +29 -0
- data/ext/lemon-1.3.1/lemon/random.h +1005 -0
- data/ext/lemon-1.3.1/lemon/smart_graph.h +1344 -0
- data/ext/lemon-1.3.1/lemon/soplex.cc +465 -0
- data/ext/lemon-1.3.1/lemon/soplex.h +158 -0
- data/ext/lemon-1.3.1/lemon/static_graph.h +476 -0
- data/ext/lemon-1.3.1/lemon/suurballe.h +776 -0
- data/ext/lemon-1.3.1/lemon/time_measure.h +610 -0
- data/ext/lemon-1.3.1/lemon/tolerance.h +242 -0
- data/ext/lemon-1.3.1/lemon/unionfind.h +1824 -0
- data/ext/lemon-1.3.1/scripts/unify-sources.sh +390 -0
- data/ext/lemon-1.3.1/scripts/valgrind-wrapper.sh +22 -0
- data/ext/lemongraph/arc_map.cc +1007 -0
- data/ext/lemongraph/digraph.cc +282 -0
- data/ext/lemongraph/digraph_arc.cc +153 -0
- data/ext/lemongraph/digraph_node.cc +277 -0
- data/ext/lemongraph/edge_map.cc +770 -0
- data/ext/lemongraph/extconf.rb +53 -0
- data/ext/lemongraph/graph.cc +351 -0
- data/ext/lemongraph/graph_arc.cc +95 -0
- data/ext/lemongraph/graph_edge.cc +153 -0
- data/ext/lemongraph/graph_item.cc +76 -0
- data/ext/lemongraph/graph_node.cc +321 -0
- data/ext/lemongraph/lemongraph.cc +260 -0
- data/ext/lemongraph/lemongraph.hh +295 -0
- data/ext/lemongraph/lemongraph.map +6 -0
- data/ext/lemongraph/lemongraph_export.hh +31 -0
- data/ext/lemongraph/node_map.cc +1011 -0
- data/lemongraph.gemspec +176 -0
- data/lib/lemongraph/graphviz.rb +240 -0
- data/lib/lemongraph/version.rb +4 -0
- data/lib/lemongraph.rb +21 -0
- data/samples/lemondeps.rb +38 -0
- metadata +202 -0
data/lemongraph.gemspec
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
require File.expand_path('../lib/lemongraph/version.rb', __FILE__)
|
|
2
|
+
|
|
3
|
+
Gem::Specification.new do |s|
|
|
4
|
+
s.name = 'lemongraph'
|
|
5
|
+
s.version = LemonGraph::VERSION
|
|
6
|
+
s.date = Time.now.strftime '%Y-%m-%d'
|
|
7
|
+
s.summary = 'A Ruby C extension to use parts of the LEMON graph library'
|
|
8
|
+
s.description = 'LemonGraph is a Ruby C extension wrapping parts of the LEMON graph library'
|
|
9
|
+
s.license = 'GPL-3.0+'
|
|
10
|
+
s.authors = ['Théotime Bollengier']
|
|
11
|
+
s.email = 'theotime.bollengier@ensta-bretagne.fr'
|
|
12
|
+
s.homepage = 'https://gitlab.ensta-bretagne.fr/bollenth/lemongraph'
|
|
13
|
+
s.extensions = ['ext/lemongraph/extconf.rb']
|
|
14
|
+
s.files = [
|
|
15
|
+
'LICENSE',
|
|
16
|
+
'README.md',
|
|
17
|
+
'lemongraph.gemspec',
|
|
18
|
+
'.yardopts',
|
|
19
|
+
'lib/lemongraph.rb',
|
|
20
|
+
'lib/lemongraph/version.rb',
|
|
21
|
+
'lib/lemongraph/graphviz.rb',
|
|
22
|
+
'samples/lemondeps.rb',
|
|
23
|
+
'ext/lemongraph/extconf.rb',
|
|
24
|
+
'ext/lemongraph/lemongraph.map',
|
|
25
|
+
'ext/lemongraph/arc_map.cc',
|
|
26
|
+
'ext/lemongraph/digraph_arc.cc',
|
|
27
|
+
'ext/lemongraph/digraph.cc',
|
|
28
|
+
'ext/lemongraph/digraph_node.cc',
|
|
29
|
+
'ext/lemongraph/edge_map.cc',
|
|
30
|
+
'ext/lemongraph/graph_arc.cc',
|
|
31
|
+
'ext/lemongraph/graph.cc',
|
|
32
|
+
'ext/lemongraph/graph_edge.cc',
|
|
33
|
+
'ext/lemongraph/graph_item.cc',
|
|
34
|
+
'ext/lemongraph/graph_node.cc',
|
|
35
|
+
'ext/lemongraph/lemongraph.cc',
|
|
36
|
+
'ext/lemongraph/lemongraph.hh',
|
|
37
|
+
'ext/lemongraph/node_map.cc',
|
|
38
|
+
'ext/lemongraph/lemongraph_export.hh',
|
|
39
|
+
'ext/lemon-1.3.1/LICENSE',
|
|
40
|
+
'ext/lemon-1.3.1/AUTHORS',
|
|
41
|
+
'ext/lemon-1.3.1/INSTALL',
|
|
42
|
+
'ext/lemon-1.3.1/CMakeLists.txt',
|
|
43
|
+
'ext/lemon-1.3.1/README',
|
|
44
|
+
'ext/lemon-1.3.1/NEWS',
|
|
45
|
+
'ext/lemon-1.3.1/scripts/unify-sources.sh',
|
|
46
|
+
'ext/lemon-1.3.1/scripts/valgrind-wrapper.sh',
|
|
47
|
+
'ext/lemon-1.3.1/contrib/CMakeLists.txt',
|
|
48
|
+
'ext/lemon-1.3.1/cmake/FindILOG.cmake',
|
|
49
|
+
'ext/lemon-1.3.1/cmake/FindCOIN.cmake',
|
|
50
|
+
'ext/lemon-1.3.1/cmake/FindSOPLEX.cmake',
|
|
51
|
+
'ext/lemon-1.3.1/cmake/version.cmake.in',
|
|
52
|
+
'ext/lemon-1.3.1/cmake/nsis/lemon.ico',
|
|
53
|
+
'ext/lemon-1.3.1/cmake/nsis/uninstall.ico',
|
|
54
|
+
'ext/lemon-1.3.1/cmake/FindGhostscript.cmake',
|
|
55
|
+
'ext/lemon-1.3.1/cmake/version.cmake',
|
|
56
|
+
'ext/lemon-1.3.1/cmake/LEMONConfig.cmake.in',
|
|
57
|
+
'ext/lemon-1.3.1/cmake/FindGLPK.cmake',
|
|
58
|
+
'ext/lemon-1.3.1/lemon/capacity_scaling.h',
|
|
59
|
+
'ext/lemon-1.3.1/lemon/math.h',
|
|
60
|
+
'ext/lemon-1.3.1/lemon/arg_parser.h',
|
|
61
|
+
'ext/lemon-1.3.1/lemon/config.h.in',
|
|
62
|
+
'ext/lemon-1.3.1/lemon/assert.h',
|
|
63
|
+
'ext/lemon-1.3.1/lemon/hypercube_graph.h',
|
|
64
|
+
'ext/lemon-1.3.1/lemon/adaptors.h',
|
|
65
|
+
'ext/lemon-1.3.1/lemon/bin_heap.h',
|
|
66
|
+
'ext/lemon-1.3.1/lemon/fractional_matching.h',
|
|
67
|
+
'ext/lemon-1.3.1/lemon/cycle_canceling.h',
|
|
68
|
+
'ext/lemon-1.3.1/lemon/binomial_heap.h',
|
|
69
|
+
'ext/lemon-1.3.1/lemon/clp.cc',
|
|
70
|
+
'ext/lemon-1.3.1/lemon/howard_mmc.h',
|
|
71
|
+
'ext/lemon-1.3.1/lemon/nauty_reader.h',
|
|
72
|
+
'ext/lemon-1.3.1/lemon/lp_base.h',
|
|
73
|
+
'ext/lemon-1.3.1/lemon/min_cost_arborescence.h',
|
|
74
|
+
'ext/lemon-1.3.1/lemon/bucket_heap.h',
|
|
75
|
+
'ext/lemon-1.3.1/lemon/planarity.h',
|
|
76
|
+
'ext/lemon-1.3.1/lemon/matching.h',
|
|
77
|
+
'ext/lemon-1.3.1/lemon/concept_check.h',
|
|
78
|
+
'ext/lemon-1.3.1/lemon/christofides_tsp.h',
|
|
79
|
+
'ext/lemon-1.3.1/lemon/time_measure.h',
|
|
80
|
+
'ext/lemon-1.3.1/lemon/max_cardinality_search.h',
|
|
81
|
+
'ext/lemon-1.3.1/lemon/kruskal.h',
|
|
82
|
+
'ext/lemon-1.3.1/lemon/dimacs.h',
|
|
83
|
+
'ext/lemon-1.3.1/lemon/unionfind.h',
|
|
84
|
+
'ext/lemon-1.3.1/lemon/random.h',
|
|
85
|
+
'ext/lemon-1.3.1/lemon/list_graph.h',
|
|
86
|
+
'ext/lemon-1.3.1/lemon/dheap.h',
|
|
87
|
+
'ext/lemon-1.3.1/lemon/core.h',
|
|
88
|
+
'ext/lemon-1.3.1/lemon/circulation.h',
|
|
89
|
+
'ext/lemon-1.3.1/lemon/euler.h',
|
|
90
|
+
'ext/lemon-1.3.1/lemon/bfs.h',
|
|
91
|
+
'ext/lemon-1.3.1/lemon/soplex.h',
|
|
92
|
+
'ext/lemon-1.3.1/lemon/opt2_tsp.h',
|
|
93
|
+
'ext/lemon-1.3.1/lemon/karp_mmc.h',
|
|
94
|
+
'ext/lemon-1.3.1/lemon/hartmann_orlin_mmc.h',
|
|
95
|
+
'ext/lemon-1.3.1/lemon/preflow.h',
|
|
96
|
+
'ext/lemon-1.3.1/lemon/radix_sort.h',
|
|
97
|
+
'ext/lemon-1.3.1/lemon/edge_set.h',
|
|
98
|
+
'ext/lemon-1.3.1/lemon/color.cc',
|
|
99
|
+
'ext/lemon-1.3.1/lemon/nagamochi_ibaraki.h',
|
|
100
|
+
'ext/lemon-1.3.1/lemon/cplex.h',
|
|
101
|
+
'ext/lemon-1.3.1/lemon/cbc.h',
|
|
102
|
+
'ext/lemon-1.3.1/lemon/lp_skeleton.cc',
|
|
103
|
+
'ext/lemon-1.3.1/lemon/bellman_ford.h',
|
|
104
|
+
'ext/lemon-1.3.1/lemon/lp_base.cc',
|
|
105
|
+
'ext/lemon-1.3.1/lemon/grosso_locatelli_pullan_mc.h',
|
|
106
|
+
'ext/lemon-1.3.1/lemon/edmonds_karp.h',
|
|
107
|
+
'ext/lemon-1.3.1/lemon/concepts/heap.h',
|
|
108
|
+
'ext/lemon-1.3.1/lemon/concepts/bpgraph.h',
|
|
109
|
+
'ext/lemon-1.3.1/lemon/concepts/graph.h',
|
|
110
|
+
'ext/lemon-1.3.1/lemon/concepts/digraph.h',
|
|
111
|
+
'ext/lemon-1.3.1/lemon/concepts/maps.h',
|
|
112
|
+
'ext/lemon-1.3.1/lemon/concepts/graph_components.h',
|
|
113
|
+
'ext/lemon-1.3.1/lemon/concepts/path.h',
|
|
114
|
+
'ext/lemon-1.3.1/lemon/CMakeLists.txt',
|
|
115
|
+
'ext/lemon-1.3.1/lemon/lgf_writer.h',
|
|
116
|
+
'ext/lemon-1.3.1/lemon/maps.h',
|
|
117
|
+
'ext/lemon-1.3.1/lemon/counter.h',
|
|
118
|
+
'ext/lemon-1.3.1/lemon/gomory_hu.h',
|
|
119
|
+
'ext/lemon-1.3.1/lemon/elevator.h',
|
|
120
|
+
'ext/lemon-1.3.1/lemon/full_graph.h',
|
|
121
|
+
'ext/lemon-1.3.1/lemon/lemon.pc.in',
|
|
122
|
+
'ext/lemon-1.3.1/lemon/cplex.cc',
|
|
123
|
+
'ext/lemon-1.3.1/lemon/dfs.h',
|
|
124
|
+
'ext/lemon-1.3.1/lemon/radix_heap.h',
|
|
125
|
+
'ext/lemon-1.3.1/lemon/insertion_tsp.h',
|
|
126
|
+
'ext/lemon-1.3.1/lemon/cost_scaling.h',
|
|
127
|
+
'ext/lemon-1.3.1/lemon/random.cc',
|
|
128
|
+
'ext/lemon-1.3.1/lemon/suurballe.h',
|
|
129
|
+
'ext/lemon-1.3.1/lemon/graph_to_eps.h',
|
|
130
|
+
'ext/lemon-1.3.1/lemon/smart_graph.h',
|
|
131
|
+
'ext/lemon-1.3.1/lemon/lgf_reader.h',
|
|
132
|
+
'ext/lemon-1.3.1/lemon/error.h',
|
|
133
|
+
'ext/lemon-1.3.1/lemon/nearest_neighbor_tsp.h',
|
|
134
|
+
'ext/lemon-1.3.1/lemon/pairing_heap.h',
|
|
135
|
+
'ext/lemon-1.3.1/lemon/static_graph.h',
|
|
136
|
+
'ext/lemon-1.3.1/lemon/connectivity.h',
|
|
137
|
+
'ext/lemon-1.3.1/lemon/fib_heap.h',
|
|
138
|
+
'ext/lemon-1.3.1/lemon/clp.h',
|
|
139
|
+
'ext/lemon-1.3.1/lemon/glpk.cc',
|
|
140
|
+
'ext/lemon-1.3.1/lemon/glpk.h',
|
|
141
|
+
'ext/lemon-1.3.1/lemon/greedy_tsp.h',
|
|
142
|
+
'ext/lemon-1.3.1/lemon/cbc.cc',
|
|
143
|
+
'ext/lemon-1.3.1/lemon/lp.h',
|
|
144
|
+
'ext/lemon-1.3.1/lemon/base.cc',
|
|
145
|
+
'ext/lemon-1.3.1/lemon/arg_parser.cc',
|
|
146
|
+
'ext/lemon-1.3.1/lemon/tolerance.h',
|
|
147
|
+
'ext/lemon-1.3.1/lemon/soplex.cc',
|
|
148
|
+
'ext/lemon-1.3.1/lemon/dim2.h',
|
|
149
|
+
'ext/lemon-1.3.1/lemon/path.h',
|
|
150
|
+
'ext/lemon-1.3.1/lemon/hao_orlin.h',
|
|
151
|
+
'ext/lemon-1.3.1/lemon/lp_skeleton.h',
|
|
152
|
+
'ext/lemon-1.3.1/lemon/grid_graph.h',
|
|
153
|
+
'ext/lemon-1.3.1/lemon/bits/windows.h',
|
|
154
|
+
'ext/lemon-1.3.1/lemon/bits/path_dump.h',
|
|
155
|
+
'ext/lemon-1.3.1/lemon/bits/solver_bits.h',
|
|
156
|
+
'ext/lemon-1.3.1/lemon/bits/windows.cc',
|
|
157
|
+
'ext/lemon-1.3.1/lemon/bits/alteration_notifier.h',
|
|
158
|
+
'ext/lemon-1.3.1/lemon/bits/variant.h',
|
|
159
|
+
'ext/lemon-1.3.1/lemon/bits/traits.h',
|
|
160
|
+
'ext/lemon-1.3.1/lemon/bits/map_extender.h',
|
|
161
|
+
'ext/lemon-1.3.1/lemon/bits/default_map.h',
|
|
162
|
+
'ext/lemon-1.3.1/lemon/bits/enable_if.h',
|
|
163
|
+
'ext/lemon-1.3.1/lemon/bits/array_map.h',
|
|
164
|
+
'ext/lemon-1.3.1/lemon/bits/vector_map.h',
|
|
165
|
+
'ext/lemon-1.3.1/lemon/bits/edge_set_extender.h',
|
|
166
|
+
'ext/lemon-1.3.1/lemon/bits/lock.h',
|
|
167
|
+
'ext/lemon-1.3.1/lemon/bits/bezier.h',
|
|
168
|
+
'ext/lemon-1.3.1/lemon/bits/graph_extender.h',
|
|
169
|
+
'ext/lemon-1.3.1/lemon/bits/graph_adaptor_extender.h',
|
|
170
|
+
'ext/lemon-1.3.1/lemon/network_simplex.h',
|
|
171
|
+
'ext/lemon-1.3.1/lemon/dijkstra.h',
|
|
172
|
+
'ext/lemon-1.3.1/lemon/quad_heap.h',
|
|
173
|
+
'ext/lemon-1.3.1/lemon/color.h'
|
|
174
|
+
]
|
|
175
|
+
end
|
|
176
|
+
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# Copyright (C) 2022 Théotime Bollengier <theotime.bollengier@ensta-bretagne.fr>
|
|
2
|
+
#
|
|
3
|
+
# This file is part of LemonGraph. <https://gitlab.ensta-bretagne.fr/bollenth/lemongraph>
|
|
4
|
+
#
|
|
5
|
+
# LemonGraph is free software: you can redistribute it and/or modify it
|
|
6
|
+
# under the terms of the GNU General Public License as published
|
|
7
|
+
# by the Free Software Foundation, either version 3 of the License,
|
|
8
|
+
# or (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# LemonGraph is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
13
|
+
# See the GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU General Public License
|
|
16
|
+
# along with LemonGraph. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
require 'open3'
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
module LemonGraph
|
|
22
|
+
|
|
23
|
+
class Graphviz
|
|
24
|
+
attr_reader :str #@return [String] A graphviz representation of the graph this instance was build with
|
|
25
|
+
|
|
26
|
+
# Returns a new {Graphviz} object build from graph _graph_.
|
|
27
|
+
#
|
|
28
|
+
# Keyword arguments can be provided.
|
|
29
|
+
# * keyword arguments starting with `node_` are expected to be {NodeMap}s and will be applied to nodes
|
|
30
|
+
# * keyword arguments starting with `edge_` are expected to be {EdgeMap}s and will be applied to edges
|
|
31
|
+
# * keyword arguments starting with `arc_` are expected to be {ArcMap}s and will be applied to arcs
|
|
32
|
+
#
|
|
33
|
+
# Other options can be provided as hashes or other objects.
|
|
34
|
+
#
|
|
35
|
+
# @example
|
|
36
|
+
# d = LemonGraph::Digraph.new
|
|
37
|
+
# n = 7.times.collect{d.add_node}
|
|
38
|
+
# n[0].arc_to n[1]
|
|
39
|
+
# n[1].arc_to n[2]
|
|
40
|
+
# n[1].arc_to n[3]
|
|
41
|
+
# n[4].arc_from n[0]
|
|
42
|
+
# n[5].arc_from n[4]
|
|
43
|
+
# n[4].arc_to n[6]
|
|
44
|
+
#
|
|
45
|
+
# nl = LemonGraph::NodeMap.new(d){|n| n.nb_outarcs > 0 ? n.id.to_s : "Leaf #{n.id}" }
|
|
46
|
+
# nl[n[0]] = "Root 0"
|
|
47
|
+
#
|
|
48
|
+
# nc = LemonGraph::NodeMap.new(d){|n| n.nb_outarcs > 0 ? :blue : :red }
|
|
49
|
+
#
|
|
50
|
+
# al = LemonGraph::ArcMap.new(d){|a| "#{a.source.id} - #{a.target.id}"}
|
|
51
|
+
#
|
|
52
|
+
# gv = LemonGraph::Graphviz.new(d
|
|
53
|
+
# node_label: nl,
|
|
54
|
+
# node_color: nc,
|
|
55
|
+
# arc_label: al,
|
|
56
|
+
# rankdir: 'LR',
|
|
57
|
+
# graph: {bgcolor: '#00FF00FF'},
|
|
58
|
+
# node: {fontname: 'DejaVu Sans', style: :filled, width: 0.4},
|
|
59
|
+
# edge: {penwidth: 0.75, arrowhead: :open}
|
|
60
|
+
# )
|
|
61
|
+
#
|
|
62
|
+
# puts gv.str
|
|
63
|
+
# #=>
|
|
64
|
+
# # digraph {
|
|
65
|
+
# # rankdir="LR";
|
|
66
|
+
# # graph [bgcolor="#00FF00FF"];
|
|
67
|
+
# # node [fontname="DejaVu Sans",style=filled,width=0.4];
|
|
68
|
+
# # edge [penwidth=0.75,arrowhead=open];
|
|
69
|
+
# # 6 [label="Leaf 6",color=red];
|
|
70
|
+
# # 5 [label="Leaf 5",color=red];
|
|
71
|
+
# # 4 [label="4",color=blue];
|
|
72
|
+
# # 3 [label="Leaf 3",color=red];
|
|
73
|
+
# # 2 [label="Leaf 2",color=red];
|
|
74
|
+
# # 1 [label="1",color=blue];
|
|
75
|
+
# # 0 [label="Root 0",color=blue];
|
|
76
|
+
# # 4 -> 6 [label="4 - 6"];
|
|
77
|
+
# # 4 -> 5 [label="4 - 5"];
|
|
78
|
+
# # 1 -> 3 [label="1 - 3"];
|
|
79
|
+
# # 1 -> 2 [label="1 - 2"];
|
|
80
|
+
# # 0 -> 4 [label="0 - 4"];
|
|
81
|
+
# # 0 -> 1 [label="0 - 1"];
|
|
82
|
+
# # }
|
|
83
|
+
#
|
|
84
|
+
# @param graph [Graph, Digraph]
|
|
85
|
+
# @return [Graphviz]
|
|
86
|
+
def initialize(graph, **maps)
|
|
87
|
+
raise TypeError.new("Expecting a #{Graph} or a #{Digraph}, not a #{graph.class}") unless graph.is_a?(Graph) or graph.is_a?(Digraph)
|
|
88
|
+
@str = ''
|
|
89
|
+
node_maps = {}
|
|
90
|
+
arc_maps = {}
|
|
91
|
+
edge_maps = {}
|
|
92
|
+
options = {}
|
|
93
|
+
maps.each do |map_name, map|
|
|
94
|
+
m = map_name.to_s.match(/^(node|arc|edge)_(.+?)s?$/)
|
|
95
|
+
if m then
|
|
96
|
+
case m[1]
|
|
97
|
+
when 'node'
|
|
98
|
+
raise "expecting a #{NodeMap} for :node_*, not a #{map.class}" unless NodeMap === map
|
|
99
|
+
node_maps[m[2].to_sym] = map
|
|
100
|
+
when 'edge'
|
|
101
|
+
raise "expecting a #{EdgeMap} for :edge_*, not a #{map.class}" unless EdgeMap === map
|
|
102
|
+
edge_maps[m[2].to_sym] = map
|
|
103
|
+
when 'arc'
|
|
104
|
+
raise "expecting a #{ArcMap} for :arc_*, not a #{map.class}" unless ArcMap === map
|
|
105
|
+
arc_maps[m[2].to_sym] = map
|
|
106
|
+
end
|
|
107
|
+
else
|
|
108
|
+
#raise 'expecting a Hash for options' unless Hash === map
|
|
109
|
+
options[map_name] = map
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
if graph.is_a?(Digraph) then
|
|
113
|
+
@str << "digraph {\n"
|
|
114
|
+
else
|
|
115
|
+
@str << "graph {\n"
|
|
116
|
+
end
|
|
117
|
+
options.each do |k, h|
|
|
118
|
+
if Hash === h then
|
|
119
|
+
@str << " #{k} [#{h.collect{|k, v| "#{k}=#{String === v ? "\"#{v}\"" : v}"}.join(',')}];\n"
|
|
120
|
+
else
|
|
121
|
+
@str << " #{k}=#{String === h ? "\"#{h}\"" : h};\n"
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
unless node_maps.empty? then
|
|
125
|
+
graph.each_node do |n|
|
|
126
|
+
params = node_maps.collect { |map_name, map|
|
|
127
|
+
v = map[n]
|
|
128
|
+
next nil if v.nil?
|
|
129
|
+
if v.is_a?(String) then
|
|
130
|
+
"#{map_name}=\"#{v}\""
|
|
131
|
+
else
|
|
132
|
+
"#{map_name}=#{v}"
|
|
133
|
+
end
|
|
134
|
+
}.compact.join(',')
|
|
135
|
+
@str << " #{n.id} [#{params}];\n" unless params.empty?
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
if graph.is_a?(Digraph) then
|
|
139
|
+
graph.each_arc do |a|
|
|
140
|
+
@str << " #{a.source.id} -> #{a.target.id}"
|
|
141
|
+
params = arc_maps.collect { |map_name, map|
|
|
142
|
+
v = map[a]
|
|
143
|
+
next nil if v.nil?
|
|
144
|
+
if v.is_a?(String) then
|
|
145
|
+
"#{map_name}=\"#{v}\""
|
|
146
|
+
else
|
|
147
|
+
"#{map_name}=#{v}"
|
|
148
|
+
end
|
|
149
|
+
}.compact.join(',')
|
|
150
|
+
@str << "#{params.empty? ? '' : " [#{params}]"};\n"
|
|
151
|
+
end
|
|
152
|
+
else
|
|
153
|
+
graph.each_edge do |e|
|
|
154
|
+
@str << " #{e.u.id} -- #{e.v.id}"
|
|
155
|
+
params = edge_maps.collect { |map_name, map|
|
|
156
|
+
v = map[e]
|
|
157
|
+
next nil if v.nil?
|
|
158
|
+
if v.is_a?(String) then
|
|
159
|
+
"#{map_name}=\"#{v}\""
|
|
160
|
+
else
|
|
161
|
+
"#{map_name}=#{v}"
|
|
162
|
+
end
|
|
163
|
+
}.compact.join(',')
|
|
164
|
+
@str << "#{params.empty? ? '' : " [#{params}]"};\n"
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
@str << "}\n"
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
# @return [String] an image as a SVG string
|
|
172
|
+
def to_svg
|
|
173
|
+
to_image(:svg)
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
# # @return [String] a PNG image as a binary string
|
|
178
|
+
# def to_png
|
|
179
|
+
# s = to_image(:png)
|
|
180
|
+
# if defined? IRuby then
|
|
181
|
+
# IRuby.display s, mime: 'image/png'
|
|
182
|
+
# ""
|
|
183
|
+
# else
|
|
184
|
+
# s
|
|
185
|
+
# end
|
|
186
|
+
# end
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
# @param type [Symbol] :svg, :png or pdf
|
|
190
|
+
# @return [String] the binary content of the image
|
|
191
|
+
def to_image(type)
|
|
192
|
+
input = @str #.force_encoding('ASCII-8BIT')
|
|
193
|
+
output = ''
|
|
194
|
+
# output.force_encoding('ASCII-8BIT') if type == :png
|
|
195
|
+
exit_status = nil
|
|
196
|
+
Open3.popen3("dot #{type == :png ? '-Gdpi=90' : ''} -T#{type}") do |stdin, stdout, stderr, wait_thr|
|
|
197
|
+
loop do
|
|
198
|
+
unless input.empty? then
|
|
199
|
+
n = stdin.write(input)
|
|
200
|
+
input = input[n..-1]
|
|
201
|
+
stdin.close if input.empty?
|
|
202
|
+
end
|
|
203
|
+
output += stdout.read
|
|
204
|
+
begin
|
|
205
|
+
while not(stderr.closed?) and (r = stderr.read_nonblock(8192)).length > 0 do
|
|
206
|
+
$stderr.write r
|
|
207
|
+
end
|
|
208
|
+
rescue EOFError; end
|
|
209
|
+
break if input.empty?
|
|
210
|
+
end
|
|
211
|
+
exit_status = wait_thr.value
|
|
212
|
+
end
|
|
213
|
+
raise "dot program exited with value #{exit_status.exitstatus}" unless exit_status.success?
|
|
214
|
+
output.force_encoding('ASCII-8BIT')
|
|
215
|
+
output
|
|
216
|
+
end
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
class Digraph
|
|
221
|
+
# Returns a {Graphviz} object.
|
|
222
|
+
# See {Graphviz#initialize} for optional keyword arguments.
|
|
223
|
+
# @return [Graphviz]
|
|
224
|
+
def to_dot(**h)
|
|
225
|
+
Graphviz.new(self, **h)
|
|
226
|
+
end
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
class Graph
|
|
231
|
+
# Returns a {Graphviz} object.
|
|
232
|
+
# See {Graphviz#initialize} for optional keyword arguments.
|
|
233
|
+
# @return [Graphviz]
|
|
234
|
+
def to_dot(**h)
|
|
235
|
+
Graphviz.new(self, **h)
|
|
236
|
+
end
|
|
237
|
+
end
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
|
data/lib/lemongraph.rb
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Copyright (C) 2022 Théotime Bollengier <theotime.bollengier@ensta-bretagne.fr>
|
|
2
|
+
#
|
|
3
|
+
# This file is part of LemonGraph. <https://gitlab.ensta-bretagne.fr/bollenth/lemongraph>
|
|
4
|
+
#
|
|
5
|
+
# LemonGraph is free software: you can redistribute it and/or modify it
|
|
6
|
+
# under the terms of the GNU General Public License as published
|
|
7
|
+
# by the Free Software Foundation, either version 3 of the License,
|
|
8
|
+
# or (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# LemonGraph is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
13
|
+
# See the GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU General Public License
|
|
16
|
+
# along with LemonGraph. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
require_relative './lemongraph/lemongraph'
|
|
19
|
+
require_relative './lemongraph/version.rb'
|
|
20
|
+
require_relative './lemongraph/graphviz.rb'
|
|
21
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require '../lib/lemongraph.rb'
|
|
4
|
+
|
|
5
|
+
base_path = '../ext/lemon-1.3.1/install/include/lemon/'
|
|
6
|
+
headers = Dir[base_path + '**/*.h'].collect{|p| p.sub(base_path, '')}
|
|
7
|
+
|
|
8
|
+
g = LemonGraph::Digraph.new
|
|
9
|
+
filename_to_node = {}
|
|
10
|
+
node_to_filename = LemonGraph::NodeMap.new(g)
|
|
11
|
+
|
|
12
|
+
headers.each do |fname|
|
|
13
|
+
source = filename_to_node[fname]
|
|
14
|
+
if source.nil? then
|
|
15
|
+
source = g.add_node
|
|
16
|
+
node_to_filename[source] = fname
|
|
17
|
+
filename_to_node[fname] = source
|
|
18
|
+
end
|
|
19
|
+
includes = File.read(base_path + fname).force_encoding('ASCII-8BIT').scan(/^\s*#include\s+<lemon\/(.+\.h)>$/).flatten
|
|
20
|
+
includes.each do |include_name|
|
|
21
|
+
target = filename_to_node[include_name]
|
|
22
|
+
if target.nil? then
|
|
23
|
+
target = g.add_node
|
|
24
|
+
node_to_filename[target] = include_name
|
|
25
|
+
filename_to_node[include_name] = target
|
|
26
|
+
end
|
|
27
|
+
source.arc_to target
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
gv = g.to_dot(node_labels: node_to_filename,
|
|
32
|
+
rankdir: 'BT',
|
|
33
|
+
graph: {nodesep: 0.2, ranksep: 3, bgcolor: '#ffffff00'},
|
|
34
|
+
node: {fontname: 'DejaVu Sans', fontsize: 12, style: :filled, margin: '0.05,0.02', width: 0.4, height: 0.4},
|
|
35
|
+
edge: {penwidth: 0.75, arrowsize: 0.6, arrowhead: :open})
|
|
36
|
+
File.write('deps.dot', gv.str)
|
|
37
|
+
#File.write('deps.png', gv.to_png)
|
|
38
|
+
|
metadata
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: lemongraph
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Théotime Bollengier
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2022-03-08 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: LemonGraph is a Ruby C extension wrapping parts of the LEMON graph library
|
|
14
|
+
email: theotime.bollengier@ensta-bretagne.fr
|
|
15
|
+
executables: []
|
|
16
|
+
extensions:
|
|
17
|
+
- ext/lemongraph/extconf.rb
|
|
18
|
+
extra_rdoc_files: []
|
|
19
|
+
files:
|
|
20
|
+
- ".yardopts"
|
|
21
|
+
- LICENSE
|
|
22
|
+
- README.md
|
|
23
|
+
- ext/lemon-1.3.1/AUTHORS
|
|
24
|
+
- ext/lemon-1.3.1/CMakeLists.txt
|
|
25
|
+
- ext/lemon-1.3.1/INSTALL
|
|
26
|
+
- ext/lemon-1.3.1/LICENSE
|
|
27
|
+
- ext/lemon-1.3.1/NEWS
|
|
28
|
+
- ext/lemon-1.3.1/README
|
|
29
|
+
- ext/lemon-1.3.1/cmake/FindCOIN.cmake
|
|
30
|
+
- ext/lemon-1.3.1/cmake/FindGLPK.cmake
|
|
31
|
+
- ext/lemon-1.3.1/cmake/FindGhostscript.cmake
|
|
32
|
+
- ext/lemon-1.3.1/cmake/FindILOG.cmake
|
|
33
|
+
- ext/lemon-1.3.1/cmake/FindSOPLEX.cmake
|
|
34
|
+
- ext/lemon-1.3.1/cmake/LEMONConfig.cmake.in
|
|
35
|
+
- ext/lemon-1.3.1/cmake/nsis/lemon.ico
|
|
36
|
+
- ext/lemon-1.3.1/cmake/nsis/uninstall.ico
|
|
37
|
+
- ext/lemon-1.3.1/cmake/version.cmake
|
|
38
|
+
- ext/lemon-1.3.1/cmake/version.cmake.in
|
|
39
|
+
- ext/lemon-1.3.1/contrib/CMakeLists.txt
|
|
40
|
+
- ext/lemon-1.3.1/lemon/CMakeLists.txt
|
|
41
|
+
- ext/lemon-1.3.1/lemon/adaptors.h
|
|
42
|
+
- ext/lemon-1.3.1/lemon/arg_parser.cc
|
|
43
|
+
- ext/lemon-1.3.1/lemon/arg_parser.h
|
|
44
|
+
- ext/lemon-1.3.1/lemon/assert.h
|
|
45
|
+
- ext/lemon-1.3.1/lemon/base.cc
|
|
46
|
+
- ext/lemon-1.3.1/lemon/bellman_ford.h
|
|
47
|
+
- ext/lemon-1.3.1/lemon/bfs.h
|
|
48
|
+
- ext/lemon-1.3.1/lemon/bin_heap.h
|
|
49
|
+
- ext/lemon-1.3.1/lemon/binomial_heap.h
|
|
50
|
+
- ext/lemon-1.3.1/lemon/bits/alteration_notifier.h
|
|
51
|
+
- ext/lemon-1.3.1/lemon/bits/array_map.h
|
|
52
|
+
- ext/lemon-1.3.1/lemon/bits/bezier.h
|
|
53
|
+
- ext/lemon-1.3.1/lemon/bits/default_map.h
|
|
54
|
+
- ext/lemon-1.3.1/lemon/bits/edge_set_extender.h
|
|
55
|
+
- ext/lemon-1.3.1/lemon/bits/enable_if.h
|
|
56
|
+
- ext/lemon-1.3.1/lemon/bits/graph_adaptor_extender.h
|
|
57
|
+
- ext/lemon-1.3.1/lemon/bits/graph_extender.h
|
|
58
|
+
- ext/lemon-1.3.1/lemon/bits/lock.h
|
|
59
|
+
- ext/lemon-1.3.1/lemon/bits/map_extender.h
|
|
60
|
+
- ext/lemon-1.3.1/lemon/bits/path_dump.h
|
|
61
|
+
- ext/lemon-1.3.1/lemon/bits/solver_bits.h
|
|
62
|
+
- ext/lemon-1.3.1/lemon/bits/traits.h
|
|
63
|
+
- ext/lemon-1.3.1/lemon/bits/variant.h
|
|
64
|
+
- ext/lemon-1.3.1/lemon/bits/vector_map.h
|
|
65
|
+
- ext/lemon-1.3.1/lemon/bits/windows.cc
|
|
66
|
+
- ext/lemon-1.3.1/lemon/bits/windows.h
|
|
67
|
+
- ext/lemon-1.3.1/lemon/bucket_heap.h
|
|
68
|
+
- ext/lemon-1.3.1/lemon/capacity_scaling.h
|
|
69
|
+
- ext/lemon-1.3.1/lemon/cbc.cc
|
|
70
|
+
- ext/lemon-1.3.1/lemon/cbc.h
|
|
71
|
+
- ext/lemon-1.3.1/lemon/christofides_tsp.h
|
|
72
|
+
- ext/lemon-1.3.1/lemon/circulation.h
|
|
73
|
+
- ext/lemon-1.3.1/lemon/clp.cc
|
|
74
|
+
- ext/lemon-1.3.1/lemon/clp.h
|
|
75
|
+
- ext/lemon-1.3.1/lemon/color.cc
|
|
76
|
+
- ext/lemon-1.3.1/lemon/color.h
|
|
77
|
+
- ext/lemon-1.3.1/lemon/concept_check.h
|
|
78
|
+
- ext/lemon-1.3.1/lemon/concepts/bpgraph.h
|
|
79
|
+
- ext/lemon-1.3.1/lemon/concepts/digraph.h
|
|
80
|
+
- ext/lemon-1.3.1/lemon/concepts/graph.h
|
|
81
|
+
- ext/lemon-1.3.1/lemon/concepts/graph_components.h
|
|
82
|
+
- ext/lemon-1.3.1/lemon/concepts/heap.h
|
|
83
|
+
- ext/lemon-1.3.1/lemon/concepts/maps.h
|
|
84
|
+
- ext/lemon-1.3.1/lemon/concepts/path.h
|
|
85
|
+
- ext/lemon-1.3.1/lemon/config.h.in
|
|
86
|
+
- ext/lemon-1.3.1/lemon/connectivity.h
|
|
87
|
+
- ext/lemon-1.3.1/lemon/core.h
|
|
88
|
+
- ext/lemon-1.3.1/lemon/cost_scaling.h
|
|
89
|
+
- ext/lemon-1.3.1/lemon/counter.h
|
|
90
|
+
- ext/lemon-1.3.1/lemon/cplex.cc
|
|
91
|
+
- ext/lemon-1.3.1/lemon/cplex.h
|
|
92
|
+
- ext/lemon-1.3.1/lemon/cycle_canceling.h
|
|
93
|
+
- ext/lemon-1.3.1/lemon/dfs.h
|
|
94
|
+
- ext/lemon-1.3.1/lemon/dheap.h
|
|
95
|
+
- ext/lemon-1.3.1/lemon/dijkstra.h
|
|
96
|
+
- ext/lemon-1.3.1/lemon/dim2.h
|
|
97
|
+
- ext/lemon-1.3.1/lemon/dimacs.h
|
|
98
|
+
- ext/lemon-1.3.1/lemon/edge_set.h
|
|
99
|
+
- ext/lemon-1.3.1/lemon/edmonds_karp.h
|
|
100
|
+
- ext/lemon-1.3.1/lemon/elevator.h
|
|
101
|
+
- ext/lemon-1.3.1/lemon/error.h
|
|
102
|
+
- ext/lemon-1.3.1/lemon/euler.h
|
|
103
|
+
- ext/lemon-1.3.1/lemon/fib_heap.h
|
|
104
|
+
- ext/lemon-1.3.1/lemon/fractional_matching.h
|
|
105
|
+
- ext/lemon-1.3.1/lemon/full_graph.h
|
|
106
|
+
- ext/lemon-1.3.1/lemon/glpk.cc
|
|
107
|
+
- ext/lemon-1.3.1/lemon/glpk.h
|
|
108
|
+
- ext/lemon-1.3.1/lemon/gomory_hu.h
|
|
109
|
+
- ext/lemon-1.3.1/lemon/graph_to_eps.h
|
|
110
|
+
- ext/lemon-1.3.1/lemon/greedy_tsp.h
|
|
111
|
+
- ext/lemon-1.3.1/lemon/grid_graph.h
|
|
112
|
+
- ext/lemon-1.3.1/lemon/grosso_locatelli_pullan_mc.h
|
|
113
|
+
- ext/lemon-1.3.1/lemon/hao_orlin.h
|
|
114
|
+
- ext/lemon-1.3.1/lemon/hartmann_orlin_mmc.h
|
|
115
|
+
- ext/lemon-1.3.1/lemon/howard_mmc.h
|
|
116
|
+
- ext/lemon-1.3.1/lemon/hypercube_graph.h
|
|
117
|
+
- ext/lemon-1.3.1/lemon/insertion_tsp.h
|
|
118
|
+
- ext/lemon-1.3.1/lemon/karp_mmc.h
|
|
119
|
+
- ext/lemon-1.3.1/lemon/kruskal.h
|
|
120
|
+
- ext/lemon-1.3.1/lemon/lemon.pc.in
|
|
121
|
+
- ext/lemon-1.3.1/lemon/lgf_reader.h
|
|
122
|
+
- ext/lemon-1.3.1/lemon/lgf_writer.h
|
|
123
|
+
- ext/lemon-1.3.1/lemon/list_graph.h
|
|
124
|
+
- ext/lemon-1.3.1/lemon/lp.h
|
|
125
|
+
- ext/lemon-1.3.1/lemon/lp_base.cc
|
|
126
|
+
- ext/lemon-1.3.1/lemon/lp_base.h
|
|
127
|
+
- ext/lemon-1.3.1/lemon/lp_skeleton.cc
|
|
128
|
+
- ext/lemon-1.3.1/lemon/lp_skeleton.h
|
|
129
|
+
- ext/lemon-1.3.1/lemon/maps.h
|
|
130
|
+
- ext/lemon-1.3.1/lemon/matching.h
|
|
131
|
+
- ext/lemon-1.3.1/lemon/math.h
|
|
132
|
+
- ext/lemon-1.3.1/lemon/max_cardinality_search.h
|
|
133
|
+
- ext/lemon-1.3.1/lemon/min_cost_arborescence.h
|
|
134
|
+
- ext/lemon-1.3.1/lemon/nagamochi_ibaraki.h
|
|
135
|
+
- ext/lemon-1.3.1/lemon/nauty_reader.h
|
|
136
|
+
- ext/lemon-1.3.1/lemon/nearest_neighbor_tsp.h
|
|
137
|
+
- ext/lemon-1.3.1/lemon/network_simplex.h
|
|
138
|
+
- ext/lemon-1.3.1/lemon/opt2_tsp.h
|
|
139
|
+
- ext/lemon-1.3.1/lemon/pairing_heap.h
|
|
140
|
+
- ext/lemon-1.3.1/lemon/path.h
|
|
141
|
+
- ext/lemon-1.3.1/lemon/planarity.h
|
|
142
|
+
- ext/lemon-1.3.1/lemon/preflow.h
|
|
143
|
+
- ext/lemon-1.3.1/lemon/quad_heap.h
|
|
144
|
+
- ext/lemon-1.3.1/lemon/radix_heap.h
|
|
145
|
+
- ext/lemon-1.3.1/lemon/radix_sort.h
|
|
146
|
+
- ext/lemon-1.3.1/lemon/random.cc
|
|
147
|
+
- ext/lemon-1.3.1/lemon/random.h
|
|
148
|
+
- ext/lemon-1.3.1/lemon/smart_graph.h
|
|
149
|
+
- ext/lemon-1.3.1/lemon/soplex.cc
|
|
150
|
+
- ext/lemon-1.3.1/lemon/soplex.h
|
|
151
|
+
- ext/lemon-1.3.1/lemon/static_graph.h
|
|
152
|
+
- ext/lemon-1.3.1/lemon/suurballe.h
|
|
153
|
+
- ext/lemon-1.3.1/lemon/time_measure.h
|
|
154
|
+
- ext/lemon-1.3.1/lemon/tolerance.h
|
|
155
|
+
- ext/lemon-1.3.1/lemon/unionfind.h
|
|
156
|
+
- ext/lemon-1.3.1/scripts/unify-sources.sh
|
|
157
|
+
- ext/lemon-1.3.1/scripts/valgrind-wrapper.sh
|
|
158
|
+
- ext/lemongraph/arc_map.cc
|
|
159
|
+
- ext/lemongraph/digraph.cc
|
|
160
|
+
- ext/lemongraph/digraph_arc.cc
|
|
161
|
+
- ext/lemongraph/digraph_node.cc
|
|
162
|
+
- ext/lemongraph/edge_map.cc
|
|
163
|
+
- ext/lemongraph/extconf.rb
|
|
164
|
+
- ext/lemongraph/graph.cc
|
|
165
|
+
- ext/lemongraph/graph_arc.cc
|
|
166
|
+
- ext/lemongraph/graph_edge.cc
|
|
167
|
+
- ext/lemongraph/graph_item.cc
|
|
168
|
+
- ext/lemongraph/graph_node.cc
|
|
169
|
+
- ext/lemongraph/lemongraph.cc
|
|
170
|
+
- ext/lemongraph/lemongraph.hh
|
|
171
|
+
- ext/lemongraph/lemongraph.map
|
|
172
|
+
- ext/lemongraph/lemongraph_export.hh
|
|
173
|
+
- ext/lemongraph/node_map.cc
|
|
174
|
+
- lemongraph.gemspec
|
|
175
|
+
- lib/lemongraph.rb
|
|
176
|
+
- lib/lemongraph/graphviz.rb
|
|
177
|
+
- lib/lemongraph/version.rb
|
|
178
|
+
- samples/lemondeps.rb
|
|
179
|
+
homepage: https://gitlab.ensta-bretagne.fr/bollenth/lemongraph
|
|
180
|
+
licenses:
|
|
181
|
+
- GPL-3.0+
|
|
182
|
+
metadata: {}
|
|
183
|
+
post_install_message:
|
|
184
|
+
rdoc_options: []
|
|
185
|
+
require_paths:
|
|
186
|
+
- lib
|
|
187
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
188
|
+
requirements:
|
|
189
|
+
- - ">="
|
|
190
|
+
- !ruby/object:Gem::Version
|
|
191
|
+
version: '0'
|
|
192
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
|
+
requirements:
|
|
194
|
+
- - ">="
|
|
195
|
+
- !ruby/object:Gem::Version
|
|
196
|
+
version: '0'
|
|
197
|
+
requirements: []
|
|
198
|
+
rubygems_version: 3.2.3
|
|
199
|
+
signing_key:
|
|
200
|
+
specification_version: 4
|
|
201
|
+
summary: A Ruby C extension to use parts of the LEMON graph library
|
|
202
|
+
test_files: []
|