|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r63554 - in branches/release: . boost boost/algorithm/string boost/archive boost/bimap boost/config boost/detail boost/filesystem boost/functional/hash boost/fusion boost/gil boost/graph boost/graph/detail boost/graph/distributed boost/graph/distributed/adjlist boost/graph/planar_detail boost/integer boost/interprocess boost/intrusive boost/iostreams boost/math boost/msm boost/numeric/ublas boost/program_options boost/property_tree boost/python boost/range boost/regex boost/serialization boost/signals boost/signals2 boost/spirit boost/spirit/home boost/spirit/home/karma boost/spirit/home/support boost/statechart boost/system boost/thread boost/tr1 boost/type_traits boost/unordered boost/utility boost/uuid boost/variant boost/wave doc libs libs/array/doc libs/array/test libs/bimap libs/config libs/filesystem libs/functional/hash libs/fusion libs/graph/build libs/graph/doc libs/graph/doc/figs libs/graph/example libs/graph/src libs/graph/test libs/graph_parallel libs/graph_parallel/test libs/integer libs/interprocess libs/intrusive libs/iostreams libs/math libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/msm libs/numeric/ublas libs/numeric/ublas/doc libs/program_options libs/property_tree libs/python libs/python/doc/v2 libs/range libs/range/doc libs/regex libs/serialization libs/signals libs/signals2 libs/spirit libs/spirit/classic/example libs/spirit/doc libs/spirit/example libs/spirit/phoenix libs/spirit/test libs/spirit/test/qi libs/statechart libs/static_assert libs/system libs/thread libs/timer libs/tr1 libs/type_traits libs/unordered libs/utility libs/utility/swap/test libs/uuid libs/wave more more/getting_started status tools tools/bcp tools/boostbook tools/build/v2 tools/build/v2/tools tools/inspect tools/jam tools/quickbook tools/regression tools/release tools/wave
From: jewillco_at_[hidden]
Date: 2010-07-03 14:37:56
Author: jewillco
Date: 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
New Revision: 63554
URL: http://svn.boost.org/trac/boost/changeset/63554
Log:
Merged r62693, r62932, r62933, r62998, r62999, r63000, r63002, r63048, r63049, r63084, r63189, r63190, r63227, r63234, r63241, r63244, r63268, r63269, r63329, r63332, r63333, r63334, r63335, r63405, r63466, r63472, r63511, r63530, r63535, r63536, r61796, and r61841 from trunk
Added:
branches/release/boost/graph/boykov_kolmogorov_max_flow.hpp
- copied, changed from r63189, /trunk/boost/graph/boykov_kolmogorov_max_flow.hpp
branches/release/boost/graph/loop_erased_random_walk.hpp
- copied unchanged from r63334, /trunk/boost/graph/loop_erased_random_walk.hpp
branches/release/boost/graph/random_spanning_tree.hpp
- copied unchanged from r63334, /trunk/boost/graph/random_spanning_tree.hpp
branches/release/libs/graph/doc/boykov_kolmogorov_max_flow.html
- copied, changed from r63189, /trunk/libs/graph/doc/boykov_kolmogorov_max_flow.html
branches/release/libs/graph/doc/figs/bk_max_flow.gif
- copied unchanged from r63189, /trunk/libs/graph/doc/figs/bk_max_flow.gif
branches/release/libs/graph/doc/figs/warning.png
- copied unchanged from r63189, /trunk/libs/graph/doc/figs/warning.png
branches/release/libs/graph/example/boykov_kolmogorov-eg.cpp
- copied, changed from r63189, /trunk/libs/graph/example/boykov_kolmogorov-eg.cpp
branches/release/libs/graph/test/boykov_kolmogorov_max_flow_test.cpp
- copied, changed from r63189, /trunk/libs/graph/test/boykov_kolmogorov_max_flow_test.cpp
branches/release/libs/graph/test/random_spanning_tree_test.cpp
- copied unchanged from r63334, /trunk/libs/graph/test/random_spanning_tree_test.cpp
Removed:
branches/release/libs/graph/example/kolmogorov-eg.cpp
branches/release/libs/graph/test/kolmogorov_max_flow_test.cpp
Properties modified:
branches/release/ (props changed)
branches/release/INSTALL (props changed)
branches/release/Jamroot (props changed)
branches/release/LICENSE_1_0.txt (props changed)
branches/release/boost/ (props changed)
branches/release/boost-build.jam (props changed)
branches/release/boost.css (props changed)
branches/release/boost.png (props changed)
branches/release/boost/algorithm/string/ (props changed)
branches/release/boost/archive/ (props changed)
branches/release/boost/array.hpp (props changed)
branches/release/boost/bimap/ (props changed)
branches/release/boost/config/ (props changed)
branches/release/boost/config.hpp (props changed)
branches/release/boost/detail/ (props changed)
branches/release/boost/detail/endian.hpp (props changed)
branches/release/boost/filesystem/ (props changed)
branches/release/boost/functional/hash/ (props changed)
branches/release/boost/fusion/ (props changed)
branches/release/boost/gil/ (props changed)
branches/release/boost/graph/ (props changed)
branches/release/boost/integer/ (props changed)
branches/release/boost/interprocess/ (props changed)
branches/release/boost/intrusive/ (props changed)
branches/release/boost/iostreams/ (props changed)
branches/release/boost/math/ (props changed)
branches/release/boost/math_fwd.hpp (props changed)
branches/release/boost/msm/ (props changed)
branches/release/boost/numeric/ublas/ (props changed)
branches/release/boost/numeric/ublas/functional.hpp (props changed)
branches/release/boost/program_options/ (props changed)
branches/release/boost/property_tree/ (props changed)
branches/release/boost/python/ (props changed)
branches/release/boost/range/ (props changed)
branches/release/boost/regex/ (props changed)
branches/release/boost/serialization/ (props changed)
branches/release/boost/serialization/factory.hpp (props changed)
branches/release/boost/signals/ (props changed)
branches/release/boost/signals2/ (props changed)
branches/release/boost/spirit/ (props changed)
branches/release/boost/spirit/home/ (props changed)
branches/release/boost/spirit/home/karma/ (props changed)
branches/release/boost/spirit/home/support/attributes.hpp (props changed)
branches/release/boost/statechart/ (props changed)
branches/release/boost/system/ (props changed)
branches/release/boost/thread/ (props changed)
branches/release/boost/thread.hpp (props changed)
branches/release/boost/tr1/ (props changed)
branches/release/boost/type_traits/ (props changed)
branches/release/boost/unordered/ (props changed)
branches/release/boost/utility/ (props changed)
branches/release/boost/utility/value_init.hpp (props changed)
branches/release/boost/uuid/ (props changed)
branches/release/boost/variant/ (props changed)
branches/release/boost/version.hpp (props changed)
branches/release/boost/wave/ (props changed)
branches/release/bootstrap.bat (props changed)
branches/release/bootstrap.sh (props changed)
branches/release/doc/ (props changed)
branches/release/index.htm (props changed)
branches/release/index.html (props changed)
branches/release/libs/ (props changed)
branches/release/libs/array/doc/array.xml (props changed)
branches/release/libs/array/test/array0.cpp (props changed)
branches/release/libs/array/test/array2.cpp (props changed)
branches/release/libs/bimap/ (props changed)
branches/release/libs/config/ (props changed)
branches/release/libs/filesystem/ (props changed)
branches/release/libs/functional/hash/ (props changed)
branches/release/libs/fusion/ (props changed)
branches/release/libs/graph/example/r_c_shortest_paths_example.cpp (props changed)
branches/release/libs/graph_parallel/ (props changed)
branches/release/libs/integer/ (props changed)
branches/release/libs/interprocess/ (props changed)
branches/release/libs/intrusive/ (props changed)
branches/release/libs/iostreams/ (props changed)
branches/release/libs/libraries.htm (props changed)
branches/release/libs/maintainers.txt (props changed)
branches/release/libs/math/ (props changed)
branches/release/libs/mpl/doc/refmanual/broken-compiler-workarounds.html (props changed)
branches/release/libs/mpl/doc/refmanual/categorized-index-concepts.html (props changed)
branches/release/libs/mpl/doc/refmanual/cfg-no-preprocessed-headers.html (props changed)
branches/release/libs/mpl/doc/refmanual/composition-and-argument-binding.html (props changed)
branches/release/libs/mpl/doc/refmanual/data-types-concepts.html (props changed)
branches/release/libs/mpl/doc/refmanual/data-types-miscellaneous.html (props changed)
branches/release/libs/mpl/doc/refmanual/extensible-associative-sequence.html (props changed)
branches/release/libs/mpl/doc/refmanual/inserter-class.html (props changed)
branches/release/libs/mpl/doc/refmanual/tag-dispatched-metafunction.html (props changed)
branches/release/libs/mpl/doc/refmanual/trivial-metafunctions-summary.html (props changed)
branches/release/libs/mpl/doc/src/refmanual/Iterators-Iterator.rst (props changed)
branches/release/libs/msm/ (props changed)
branches/release/libs/numeric/ublas/ (props changed)
branches/release/libs/numeric/ublas/doc/ (props changed)
branches/release/libs/program_options/ (props changed)
branches/release/libs/property_tree/ (props changed)
branches/release/libs/python/ (props changed)
branches/release/libs/python/doc/v2/args.html (props changed)
branches/release/libs/python/doc/v2/return_internal_reference.html (props changed)
branches/release/libs/range/ (props changed)
branches/release/libs/range/doc/ (props changed)
branches/release/libs/regex/ (props changed)
branches/release/libs/serialization/ (props changed)
branches/release/libs/signals/ (props changed)
branches/release/libs/signals2/ (props changed)
branches/release/libs/spirit/ (props changed)
branches/release/libs/spirit/classic/example/ (props changed)
branches/release/libs/spirit/doc/ (props changed)
branches/release/libs/spirit/example/ (props changed)
branches/release/libs/spirit/phoenix/ (props changed)
branches/release/libs/spirit/test/ (props changed)
branches/release/libs/spirit/test/qi/optional.cpp (props changed)
branches/release/libs/statechart/ (props changed)
branches/release/libs/static_assert/ (props changed)
branches/release/libs/system/ (props changed)
branches/release/libs/thread/ (props changed)
branches/release/libs/timer/ (props changed)
branches/release/libs/tr1/ (props changed)
branches/release/libs/type_traits/ (props changed)
branches/release/libs/unordered/ (props changed)
branches/release/libs/utility/ (props changed)
branches/release/libs/utility/swap.html (props changed)
branches/release/libs/utility/swap/test/std_bitset.cpp (props changed)
branches/release/libs/utility/value_init.htm (props changed)
branches/release/libs/utility/value_init_test.cpp (props changed)
branches/release/libs/uuid/ (props changed)
branches/release/libs/wave/ (props changed)
branches/release/more/ (props changed)
branches/release/more/getting_started/ (props changed)
branches/release/rst.css (props changed)
branches/release/status/ (props changed)
branches/release/status/Jamfile.v2 (props changed)
branches/release/tools/ (props changed)
branches/release/tools/bcp/ (props changed)
branches/release/tools/boostbook/ (props changed)
branches/release/tools/build/v2/ (props changed)
branches/release/tools/build/v2/tools/ (props changed)
branches/release/tools/inspect/ (props changed)
branches/release/tools/jam/ (props changed)
branches/release/tools/quickbook/ (props changed)
branches/release/tools/regression/ (props changed)
branches/release/tools/release/ (props changed)
branches/release/tools/wave/ (props changed)
Text files modified:
branches/release/boost/graph/adj_list_serialize.hpp | 2
branches/release/boost/graph/adjacency_matrix.hpp | 10 ++--
branches/release/boost/graph/astar_search.hpp | 41 ++++++++---------
branches/release/boost/graph/bandwidth.hpp | 6 +-
branches/release/boost/graph/bellman_ford_shortest_paths.hpp | 6 +-
branches/release/boost/graph/betweenness_centrality.hpp | 10 ++--
branches/release/boost/graph/bipartite.hpp | 2
branches/release/boost/graph/boykov_kolmogorov_max_flow.hpp | 30 ++++++------
branches/release/boost/graph/breadth_first_search.hpp | 4
branches/release/boost/graph/bron_kerbosch_all_cliques.hpp | 2
branches/release/boost/graph/clustering_coefficient.hpp | 8 +-
branches/release/boost/graph/compressed_sparse_row_graph.hpp | 48 ++++++++++----------
branches/release/boost/graph/copy.hpp | 40 ++++++++--------
branches/release/boost/graph/core_numbers.hpp | 18 +++---
branches/release/boost/graph/create_condensation_graph.hpp | 6 +-
branches/release/boost/graph/cuthill_mckee_ordering.hpp | 2
branches/release/boost/graph/dag_shortest_paths.hpp | 4
branches/release/boost/graph/depth_first_search.hpp | 12 ++--
branches/release/boost/graph/detail/adjacency_list.hpp | 32 ++++++------
branches/release/boost/graph/detail/compressed_sparse_row_struct.hpp | 2
branches/release/boost/graph/detail/incremental_components.hpp | 2
branches/release/boost/graph/detail/sparse_ordering.hpp | 2
branches/release/boost/graph/dijkstra_shortest_paths.hpp | 2
branches/release/boost/graph/directed_graph.hpp | 6 +-
branches/release/boost/graph/distributed/adjacency_list.hpp | 12 ++--
branches/release/boost/graph/distributed/adjlist/redistribute.hpp | 6 +-
branches/release/boost/graph/distributed/betweenness_centrality.hpp | 4
branches/release/boost/graph/distributed/connected_components.hpp | 2
branches/release/boost/graph/distributed/connected_components_parallel_search.hpp | 2
branches/release/boost/graph/distributed/crauser_et_al_shortest_paths.hpp | 2
branches/release/boost/graph/distributed/dehne_gotz_min_spanning_tree.hpp | 6 +-
branches/release/boost/graph/distributed/depth_first_search.hpp | 4
branches/release/boost/graph/distributed/eager_dijkstra_shortest_paths.hpp | 2
branches/release/boost/graph/distributed/graphviz.hpp | 4
branches/release/boost/graph/distributed/page_rank.hpp | 2
branches/release/boost/graph/distributed/rmat_graph_generator.hpp | 2
branches/release/boost/graph/distributed/strong_components.hpp | 28 ++++++------
branches/release/boost/graph/dominator_tree.hpp | 16 +++---
branches/release/boost/graph/eccentricity.hpp | 6 +-
branches/release/boost/graph/edge_connectivity.hpp | 20 ++++----
branches/release/boost/graph/edmonds_karp_max_flow.hpp | 6 +-
branches/release/boost/graph/filtered_graph.hpp | 20 ++++----
branches/release/boost/graph/floyd_warshall_shortest.hpp | 18 +++---
branches/release/boost/graph/fruchterman_reingold.hpp | 8 +-
branches/release/boost/graph/graph_stats.hpp | 2
branches/release/boost/graph/graph_utility.hpp | 40 ++++++++--------
branches/release/boost/graph/graphml.hpp | 4
branches/release/boost/graph/graphviz.hpp | 81 +++++++++++++++++++++-------------
branches/release/boost/graph/grid_graph.hpp | 8 +++
branches/release/boost/graph/howard_cycle_ratio.hpp | 14 +++---
branches/release/boost/graph/incremental_components.hpp | 7 +-
branches/release/boost/graph/johnson_all_pairs_shortest.hpp | 24 +++++-----
branches/release/boost/graph/king_ordering.hpp | 4
branches/release/boost/graph/kolmogorov_max_flow.hpp | 76 +++++++++++++++++---------------
branches/release/boost/graph/labeled_graph.hpp | 6 +-
branches/release/boost/graph/leda_graph.hpp | 8 +-
branches/release/boost/graph/make_connected.hpp | 2
branches/release/boost/graph/max_cardinality_matching.hpp | 30 ++++++------
branches/release/boost/graph/mcgregor_common_subgraphs.hpp | 4
branches/release/boost/graph/metric_tsp_approx.hpp | 2
branches/release/boost/graph/minimum_degree_ordering.hpp | 16 +++---
branches/release/boost/graph/neighbor_bfs.hpp | 6 +-
branches/release/boost/graph/page_rank.hpp | 2
branches/release/boost/graph/planar_detail/boyer_myrvold_impl.hpp | 52 +++++++++++-----------
branches/release/boost/graph/profile.hpp | 2
branches/release/boost/graph/push_relabel_max_flow.hpp | 42 +++++++++---------
branches/release/boost/graph/r_c_shortest_paths.hpp | 2
branches/release/boost/graph/random.hpp | 47 +++++++++++++++++++-
branches/release/boost/graph/read_dimacs.hpp | 4
branches/release/boost/graph/reverse_graph.hpp | 2
branches/release/boost/graph/rmat_graph_generator.hpp | 10 ++--
branches/release/boost/graph/sequential_vertex_coloring.hpp | 4
branches/release/boost/graph/sloan_ordering.hpp | 12 ++--
branches/release/boost/graph/strong_components.hpp | 10 ++--
branches/release/boost/graph/subgraph.hpp | 20 ++++----
branches/release/boost/graph/transitive_closure.hpp | 30 ++++++------
branches/release/boost/graph/transitive_reduction.hpp | 2
branches/release/boost/graph/tree_traits.hpp | 2
branches/release/boost/graph/undirected_dfs.hpp | 12 ++--
branches/release/boost/graph/undirected_graph.hpp | 6 +-
branches/release/boost/graph/wavefront.hpp | 10 ++--
branches/release/libs/graph/build/Jamfile.v2 | 1
branches/release/libs/graph/doc/astar_search.html | 30 +++++++++---
branches/release/libs/graph/doc/bibliography.html | 2
branches/release/libs/graph/doc/boykov_kolmogorov_max_flow.html | 5 +
branches/release/libs/graph/doc/edmonds_karp_max_flow.html | 6 +-
branches/release/libs/graph/doc/graph_concepts.html | 4
branches/release/libs/graph/doc/graph_theory_review.html | 4
branches/release/libs/graph/doc/grid_graph.html | 2
branches/release/libs/graph/doc/history.html | 2
branches/release/libs/graph/doc/kolmogorov_max_flow.html | 75 ++++++++++++++++++++------------
branches/release/libs/graph/doc/push_relabel_max_flow.html | 2
branches/release/libs/graph/doc/quick_tour.html | 2
branches/release/libs/graph/doc/table_of_contents.html | 7 ++
branches/release/libs/graph/doc/write-graphviz.html | 18 +++----
branches/release/libs/graph/example/Jamfile.v2 | 5 ++
branches/release/libs/graph/example/accum-compile-times.cpp | 4
branches/release/libs/graph/example/astar-cities.cpp | 4
branches/release/libs/graph/example/bellman-example.cpp | 4
branches/release/libs/graph/example/bfs-example2.cpp | 2
branches/release/libs/graph/example/bfs-name-printer.cpp | 14 +++---
branches/release/libs/graph/example/biconnected_components.cpp | 2
branches/release/libs/graph/example/bipartite_example.cpp | 2
branches/release/libs/graph/example/boost_web_graph.cpp | 14 +++---
branches/release/libs/graph/example/boykov_kolmogorov-eg.cpp | 4
branches/release/libs/graph/example/cc-internet.cpp | 2
branches/release/libs/graph/example/components_on_edgelist.cpp | 10 ++--
branches/release/libs/graph/example/copy-example.cpp | 2
branches/release/libs/graph/example/cycle-file-dep.cpp | 8 +-
branches/release/libs/graph/example/cycle-file-dep2.cpp | 8 +-
branches/release/libs/graph/example/cycle_ratio_example.cpp | 2
branches/release/libs/graph/example/dag_shortest_paths.cpp | 2
branches/release/libs/graph/example/dfs-parenthesis.cpp | 2
branches/release/libs/graph/example/dijkstra-example-listS.cpp | 12 ++--
branches/release/libs/graph/example/dijkstra-example.cpp | 6 +-
branches/release/libs/graph/example/dijkstra-no-color-map-example.cpp | 6 +-
branches/release/libs/graph/example/eccentricity.cpp | 4
branches/release/libs/graph/example/edge-connectivity.cpp | 16 +++---
branches/release/libs/graph/example/edge-function.cpp | 8 +-
branches/release/libs/graph/example/edge_property.cpp | 4
branches/release/libs/graph/example/edmonds-karp-eg.cpp | 4
branches/release/libs/graph/example/family-tree-eg.cpp | 4
branches/release/libs/graph/example/file_dependencies.cpp | 6 +-
branches/release/libs/graph/example/filtered-copy-example.cpp | 2
branches/release/libs/graph/example/filtered_graph_edge_range.cpp | 4
branches/release/libs/graph/example/fr_layout.cpp | 2
branches/release/libs/graph/example/gerdemann.cpp | 4
branches/release/libs/graph/example/graph-property-iter-eg.cpp | 4
branches/release/libs/graph/example/graphviz.cpp | 2
branches/release/libs/graph/example/in_edges.cpp | 4
branches/release/libs/graph/example/isomorphism.cpp | 4
branches/release/libs/graph/example/johnson-eg.cpp | 2
branches/release/libs/graph/example/kevin-bacon.cpp | 8 +-
branches/release/libs/graph/example/kevin-bacon2.cpp | 4
branches/release/libs/graph/example/knights-tour.cpp | 20 ++++----
branches/release/libs/graph/example/kruskal-example.cpp | 4
branches/release/libs/graph/example/kruskal-telephone.cpp | 2
branches/release/libs/graph/example/leda-graph-eg.cpp | 2
branches/release/libs/graph/example/loops_dfs.cpp | 8 +-
branches/release/libs/graph/example/max_flow.cpp | 4
branches/release/libs/graph/example/min_max_paths.cpp | 6 +-
branches/release/libs/graph/example/modify_graph.cpp | 26 +++++-----
branches/release/libs/graph/example/ordered_out_edges.cpp | 4
branches/release/libs/graph/example/ospf-example.cpp | 92 ++++++++++++++++-----------------------
branches/release/libs/graph/example/parallel-compile-time.cpp | 22 ++++----
branches/release/libs/graph/example/prim-example.cpp | 2
branches/release/libs/graph/example/prim-telephone.cpp | 2
branches/release/libs/graph/example/print-adjacent-vertices.cpp | 4
branches/release/libs/graph/example/print-edges.cpp | 2
branches/release/libs/graph/example/print-in-edges.cpp | 4
branches/release/libs/graph/example/print-out-edges.cpp | 4
branches/release/libs/graph/example/push-relabel-eg.cpp | 4
branches/release/libs/graph/example/quick-tour.cpp | 16 +++---
branches/release/libs/graph/example/quick_tour.cpp | 10 ++--
branches/release/libs/graph/example/reachable-loop-head.cpp | 6 +-
branches/release/libs/graph/example/reachable-loop-tail.cpp | 4
branches/release/libs/graph/example/read_write_dimacs-eg.cpp | 4
branches/release/libs/graph/example/remove_edge_if_bidir.cpp | 2
branches/release/libs/graph/example/remove_edge_if_undir.cpp | 2
branches/release/libs/graph/example/roget_components.cpp | 6 +-
branches/release/libs/graph/example/scc.cpp | 2
branches/release/libs/graph/example/subgraph.cpp | 2
branches/release/libs/graph/example/tiernan_girth_circumference.cpp | 2
branches/release/libs/graph/example/topo-sort-file-dep.cpp | 8 +-
branches/release/libs/graph/example/topo-sort-file-dep2.cpp | 8 +-
branches/release/libs/graph/example/transpose-example.cpp | 4
branches/release/libs/graph/example/undirected.cpp | 12 ++--
branches/release/libs/graph/src/graphml.cpp | 2
branches/release/libs/graph/test/Jamfile.v2 | 5 +
branches/release/libs/graph/test/astar_search_test.cpp | 4
branches/release/libs/graph/test/betweenness_centrality_test.cpp | 18 +++---
branches/release/libs/graph/test/biconnected_components_test.cpp | 4
branches/release/libs/graph/test/bidir_remove_edge.cpp | 4
branches/release/libs/graph/test/bidir_vec_remove_edge.cpp | 2
branches/release/libs/graph/test/boykov_kolmogorov_max_flow_test.cpp | 30 ++++++------
branches/release/libs/graph/test/cycle_ratio_tests.cpp | 2
branches/release/libs/graph/test/dijkstra_heap_performance.cpp | 2
branches/release/libs/graph/test/dijkstra_no_color_map_compare.cpp | 2
branches/release/libs/graph/test/dominator_tree_test.cpp | 6 +-
branches/release/libs/graph/test/graphml_test.cpp | 4
branches/release/libs/graph/test/index_graph.cpp | 2
branches/release/libs/graph/test/layout_test.cpp | 18 +++---
branches/release/libs/graph/test/matching_test.cpp | 16 +++---
branches/release/libs/graph/test/max_flow_test.cpp | 10 ++--
branches/release/libs/graph/test/metric_tsp_approx.cpp | 4
branches/release/libs/graph/test/property_iter.cpp | 4
branches/release/libs/graph/test/random_matching_test.cpp | 8 +-
branches/release/libs/graph/test/subgraph.cpp | 2
branches/release/libs/graph/test/subgraph_bundled.cpp | 2
branches/release/libs/graph/test/transitive_closure_test.cpp | 10 ++--
branches/release/libs/graph_parallel/test/adjlist_build_test.cpp | 8 +-
branches/release/libs/graph_parallel/test/adjlist_redist_test.cpp | 2
branches/release/libs/graph_parallel/test/distributed_adjacency_list_test.cpp | 8 +-
branches/release/libs/graph_parallel/test/distributed_betweenness_centrality_test.cpp | 4
branches/release/status/explicit-failures-markup.xml | 2
195 files changed, 1003 insertions(+), 915 deletions(-)
Modified: branches/release/boost/graph/adj_list_serialize.hpp
==============================================================================
--- branches/release/boost/graph/adj_list_serialize.hpp (original)
+++ branches/release/boost/graph/adj_list_serialize.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -92,7 +92,7 @@
ar >> BOOST_SERIALIZATION_NVP(u);
ar >> BOOST_SERIALIZATION_NVP(v);
Edge e; bool inserted;
- tie(e,inserted) = add_edge(verts[u], verts[v], graph);
+ boost::tie(e,inserted) = add_edge(verts[u], verts[v], graph);
ar >> serialization::make_nvp("edge_property", get(edge_all_t(), graph, e) );
}
}
Modified: branches/release/boost/graph/adjacency_matrix.hpp
==============================================================================
--- branches/release/boost/graph/adjacency_matrix.hpp (original)
+++ branches/release/boost/graph/adjacency_matrix.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -766,7 +766,7 @@
{
typename adjacency_matrix<D,VP,EP,GP,A>::degree_size_type n = 0;
typename adjacency_matrix<D,VP,EP,GP,A>::out_edge_iterator f, l;
- for (tie(f, l) = out_edges(u, g); f != l; ++f)
+ for (boost::tie(f, l) = out_edges(u, g); f != l; ++f)
++n;
return n;
}
@@ -848,7 +848,7 @@
{
typename adjacency_matrix<D,VP,EP,GP,A>::degree_size_type n = 0;
typename adjacency_matrix<D,VP,EP,GP,A>::in_edge_iterator f, l;
- for (tie(f, l) = in_edges(u, g); f != l; ++f)
+ for (boost::tie(f, l) = in_edges(u, g); f != l; ++f)
++n;
return n;
}
@@ -1017,9 +1017,9 @@
{
typename adjacency_matrix<directedS,VP,EP,GP,A>::vertex_iterator
vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
remove_edge(u, *vi, g);
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
remove_edge(*vi, u, g);
}
@@ -1032,7 +1032,7 @@
{
typename adjacency_matrix<undirectedS,VP,EP,GP,A>::vertex_iterator
vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
remove_edge(u, *vi, g);
}
Modified: branches/release/boost/graph/astar_search.hpp
==============================================================================
--- branches/release/boost/graph/astar_search.hpp (original)
+++ branches/release/boost/graph/astar_search.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -83,18 +83,18 @@
: bfs_visitor<Visitors>(vis) {}
template <class Edge, class Graph>
- void edge_relaxed(Edge e, Graph& g) {
+ void edge_relaxed(Edge e, const Graph& g) {
invoke_visitors(this->m_vis, e, g, on_edge_relaxed());
}
template <class Edge, class Graph>
- void edge_not_relaxed(Edge e, Graph& g) {
+ void edge_not_relaxed(Edge e, const Graph& g) {
invoke_visitors(this->m_vis, e, g, on_edge_not_relaxed());
}
private:
template <class Edge, class Graph>
- void tree_edge(Edge e, Graph& g) {}
+ void tree_edge(Edge e, const Graph& g) {}
template <class Edge, class Graph>
- void non_tree_edge(Edge e, Graph& g) {}
+ void non_tree_edge(Edge e, const Graph& g) {}
};
template <class Visitors>
astar_visitor<Visitors>
@@ -130,34 +130,34 @@
template <class Vertex, class Graph>
- void initialize_vertex(Vertex u, Graph& g) {
+ void initialize_vertex(Vertex u, const Graph& g) {
m_vis.initialize_vertex(u, g);
}
template <class Vertex, class Graph>
- void discover_vertex(Vertex u, Graph& g) {
+ void discover_vertex(Vertex u, const Graph& g) {
m_vis.discover_vertex(u, g);
}
template <class Vertex, class Graph>
- void examine_vertex(Vertex u, Graph& g) {
+ void examine_vertex(Vertex u, const Graph& g) {
m_vis.examine_vertex(u, g);
}
template <class Vertex, class Graph>
- void finish_vertex(Vertex u, Graph& g) {
+ void finish_vertex(Vertex u, const Graph& g) {
m_vis.finish_vertex(u, g);
}
template <class Edge, class Graph>
- void examine_edge(Edge e, Graph& g) {
+ void examine_edge(Edge e, const Graph& g) {
if (m_compare(get(m_weight, e), m_zero))
BOOST_THROW_EXCEPTION(negative_edge());
m_vis.examine_edge(e, g);
}
template <class Edge, class Graph>
- void non_tree_edge(Edge, Graph&) {}
+ void non_tree_edge(Edge, const Graph&) {}
template <class Edge, class Graph>
- void tree_edge(Edge e, Graph& g) {
+ void tree_edge(Edge e, const Graph& g) {
m_decreased = relax(e, g, m_weight, m_predecessor, m_distance,
m_combine, m_compare);
@@ -172,7 +172,7 @@
template <class Edge, class Graph>
- void gray_target(Edge e, Graph& g) {
+ void gray_target(Edge e, const Graph& g) {
m_decreased = relax(e, g, m_weight, m_predecessor, m_distance,
m_combine, m_compare);
@@ -188,7 +188,7 @@
template <class Edge, class Graph>
- void black_target(Edge e, Graph& g) {
+ void black_target(Edge e, const Graph& g) {
m_decreased = relax(e, g, m_weight, m_predecessor, m_distance,
m_combine, m_compare);
@@ -234,7 +234,7 @@
typename CostInf, typename CostZero>
inline void
astar_search_no_init
- (VertexListGraph &g,
+ (const VertexListGraph &g,
typename graph_traits<VertexListGraph>::vertex_descriptor s,
AStarHeuristic h, AStarVisitor vis,
PredecessorMap predecessor, CostMap cost,
@@ -271,7 +271,7 @@
typename CostInf, typename CostZero>
inline void
astar_search
- (VertexListGraph &g,
+ (const VertexListGraph &g,
typename graph_traits<VertexListGraph>::vertex_descriptor s,
AStarHeuristic h, AStarVisitor vis,
PredecessorMap predecessor, CostMap cost,
@@ -284,7 +284,7 @@
typedef typename property_traits<ColorMap>::value_type ColorValue;
typedef color_traits<ColorValue> Color;
typename graph_traits<VertexListGraph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
+ for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
put(color, *ui, Color::white());
put(distance, *ui, inf);
put(cost, *ui, inf);
@@ -308,7 +308,7 @@
class IndexMap, class ColorMap, class Params>
inline void
astar_dispatch2
- (VertexListGraph& g,
+ (const VertexListGraph& g,
typename graph_traits<VertexListGraph>::vertex_descriptor s,
AStarHeuristic h, CostMap cost, DistanceMap distance,
WeightMap weight, IndexMap index_map, ColorMap color,
@@ -337,16 +337,13 @@
class IndexMap, class ColorMap, class Params>
inline void
astar_dispatch1
- (VertexListGraph& g,
+ (const VertexListGraph& g,
typename graph_traits<VertexListGraph>::vertex_descriptor s,
AStarHeuristic h, CostMap cost, DistanceMap distance,
WeightMap weight, IndexMap index_map, ColorMap color,
const Params& params)
{
typedef typename property_traits<WeightMap>::value_type D;
- std::vector<D> distance_map;
- std::vector<D> cost_map;
- std::vector<default_color_type> color_map;
detail::astar_dispatch2
(g, s, h,
@@ -365,7 +362,7 @@
typename P, typename T, typename R>
void
astar_search
- (VertexListGraph &g,
+ (const VertexListGraph &g,
typename graph_traits<VertexListGraph>::vertex_descriptor s,
AStarHeuristic h, const bgl_named_params<P, T, R>& params)
{
Modified: branches/release/boost/graph/bandwidth.hpp
==============================================================================
--- branches/release/boost/graph/bandwidth.hpp (original)
+++ branches/release/boost/graph/bandwidth.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -24,7 +24,7 @@
typedef typename graph_traits<Graph>::vertices_size_type size_type;
size_type b = 0;
typename graph_traits<Graph>::out_edge_iterator e, end;
- for (tie(e, end) = out_edges(i, g); e != end; ++e) {
+ for (boost::tie(e, end) = out_edges(i, g); e != end; ++e) {
int f_i = get(index, i);
int f_j = get(index, target(*e, g));
using namespace std; // to call abs() unqualified
@@ -49,7 +49,7 @@
BOOST_USING_STD_MAX();
typename graph_traits<Graph>::vertices_size_type b = 0;
typename graph_traits<Graph>::vertex_iterator i, end;
- for (tie(i, end) = vertices(g); i != end; ++i)
+ for (boost::tie(i, end) = vertices(g); i != end; ++i)
b = max BOOST_PREVENT_MACRO_SUBSTITUTION (b, ith_bandwidth(*i, g, index));
return b;
}
@@ -69,7 +69,7 @@
typedef typename detail::numeric_traits<size_type>::difference_type diff_t;
size_type sum = 0;
typename graph_traits<Graph>::edge_iterator i, end;
- for (tie(i, end) = edges(g); i != end; ++i) {
+ for (boost::tie(i, end) = edges(g); i != end; ++i) {
diff_t f_u = get(index_map, source(*i, g));
diff_t f_v = get(index_map, target(*i, g));
using namespace std; // to call abs() unqualified
Modified: branches/release/boost/graph/bellman_ford_shortest_paths.hpp
==============================================================================
--- branches/release/boost/graph/bellman_ford_shortest_paths.hpp (original)
+++ branches/release/boost/graph/bellman_ford_shortest_paths.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -108,7 +108,7 @@
for (Size k = 0; k < N; ++k) {
bool at_least_one_edge_relaxed = false;
- for (tie(i, end) = edges(g); i != end; ++i) {
+ for (boost::tie(i, end) = edges(g); i != end; ++i) {
v.examine_edge(*i, g);
if (relax(*i, g, weight, pred, distance, combine, compare)) {
at_least_one_edge_relaxed = true;
@@ -120,7 +120,7 @@
break;
}
- for (tie(i, end) = edges(g); i != end; ++i)
+ for (boost::tie(i, end) = edges(g); i != end; ++i)
if (compare(combine(get(distance, source(*i, g)), get(weight, *i)),
get(distance, target(*i,g))))
{
@@ -148,7 +148,7 @@
bellman_visitor<> null_vis;
typedef typename property_traits<WeightMap>::value_type weight_type;
typename graph_traits<VertexAndEdgeListGraph>::vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = vertices(g); v != v_end; ++v) {
put(distance, *v, (std::numeric_limits<weight_type>::max)());
put(pred, *v, *v);
}
Modified: branches/release/boost/graph/betweenness_centrality.hpp
==============================================================================
--- branches/release/boost/graph/betweenness_centrality.hpp (original)
+++ branches/release/boost/graph/betweenness_centrality.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -305,10 +305,10 @@
std::stack<vertex_descriptor> ordered_vertices;
vertex_iterator s, s_end;
- for (tie(s, s_end) = vertices(g); s != s_end; ++s) {
+ for (boost::tie(s, s_end) = vertices(g); s != s_end; ++s) {
// Initialize for this iteration
vertex_iterator w, w_end;
- for (tie(w, w_end) = vertices(g); w != w_end; ++w) {
+ for (boost::tie(w, w_end) = vertices(g); w != w_end; ++w) {
incoming[*w].clear();
put(path_count, *w, 0);
put(dependency, *w, 0);
@@ -581,7 +581,7 @@
typename graph_traits<Graph>::vertices_size_type n = num_vertices(g);
centrality_type factor = centrality_type(2)/centrality_type(n*n - 3*n + 2);
vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = vertices(g); v != v_end; ++v) {
put(centrality, *v, factor * get(centrality, *v));
}
}
@@ -602,13 +602,13 @@
// Find max centrality
centrality_type max_centrality(0);
vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = vertices(g); v != v_end; ++v) {
max_centrality = (max)(max_centrality, get(centrality, *v));
}
// Compute central point dominance
centrality_type sum(0);
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = vertices(g); v != v_end; ++v) {
sum += (max_centrality - get(centrality, *v));
}
return sum/(n-1);
Modified: branches/release/boost/graph/bipartite.hpp
==============================================================================
--- branches/release/boost/graph/bipartite.hpp (original)
+++ branches/release/boost/graph/bipartite.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -291,7 +291,7 @@
predecessor_recorder_t predecessor_recorder (predecessor_map);
/// Initialize predecessor map
- for (tie (vertex_iter, vertex_end) = vertices (graph); vertex_iter != vertex_end; ++vertex_iter)
+ for (boost::tie (vertex_iter, vertex_end) = vertices (graph); vertex_iter != vertex_end; ++vertex_iter)
{
put (predecessor_map, *vertex_iter, *vertex_iter);
}
Copied: branches/release/boost/graph/boykov_kolmogorov_max_flow.hpp (from r63189, /trunk/boost/graph/boykov_kolmogorov_max_flow.hpp)
==============================================================================
--- /trunk/boost/graph/boykov_kolmogorov_max_flow.hpp (original)
+++ branches/release/boost/graph/boykov_kolmogorov_max_flow.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -29,8 +29,8 @@
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_KOLMOGOROV_MAX_FLOW_HPP
-#define BOOST_KOLMOGOROV_MAX_FLOW_HPP
+#ifndef BOOST_BOYKOV_KOLMOGOROV_MAX_FLOW_HPP
+#define BOOST_BOYKOV_KOLMOGOROV_MAX_FLOW_HPP
#include <boost/config.hpp>
#include <cassert>
@@ -118,13 +118,13 @@
m_last_grow_vertex(graph_traits<Graph>::null_vertex()){
// initialize the color-map with gray-values
vertex_iterator vi, v_end;
- for(tie(vi, v_end) = vertices(m_g); vi != v_end; ++vi){
+ for(boost::tie(vi, v_end) = vertices(m_g); vi != v_end; ++vi){
set_tree(*vi, tColorTraits::gray());
}
// Initialize flow to zero which means initializing
// the residual capacity equal to the capacity
edge_iterator ei, e_end;
- for(tie(ei, e_end) = edges(m_g); ei != e_end; ++ei) {
+ for(boost::tie(ei, e_end) = edges(m_g); ei != e_end; ++ei) {
m_res_cap_map[*ei] = m_cap_map[*ei];
assert(m_rev_edge_map[m_rev_edge_map[*ei]] == *ei); //check if the reverse edge map is build up properly
}
@@ -142,7 +142,7 @@
while(true){
bool path_found;
edge_descriptor connecting_edge;
- tie(connecting_edge, path_found) = grow(); //find a path from source to sink
+ boost::tie(connecting_edge, path_found) = grow(); //find a path from source to sink
if(!path_found){
//we're finished, no more paths were found
break;
@@ -155,7 +155,7 @@
}
// the complete class is protected, as we want access to members in
- // derived test-class (see test/kolmogorov_max_flow_test.cpp)
+ // derived test-class (see test/boykov_kolmogorov_max_flow_test.cpp)
protected:
void augment_direct_paths(){
// in a first step, we augment all direct paths from source->NODE->sink
@@ -164,7 +164,7 @@
// connects but shouldn't have an impact on other maxflow problems
// (this is done in grow() anyway)
out_edge_iterator ei, e_end;
- for(tie(ei, e_end) = out_edges(m_source, m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(m_source, m_g); ei != e_end; ++ei){
edge_descriptor from_source = *ei;
vertex_descriptor current_node = target(from_source, m_g);
if(current_node == m_sink){
@@ -175,7 +175,7 @@
}
edge_descriptor to_sink;
bool is_there;
- tie(to_sink, is_there) = lookup_edge(current_node, m_sink, m_g);
+ boost::tie(to_sink, is_there) = lookup_edge(current_node, m_sink, m_g);
if(is_there){
tEdgeVal cap_from_source = m_res_cap_map[from_source];
tEdgeVal cap_to_sink = m_res_cap_map[to_sink];
@@ -215,7 +215,7 @@
add_active_node(current_node);
}
}
- for(tie(ei, e_end) = out_edges(m_sink, m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(m_sink, m_g); ei != e_end; ++ei){
edge_descriptor to_sink = m_rev_edge_map[*ei];
vertex_descriptor current_node = source(to_sink, m_g);
if(m_res_cap_map[to_sink]){
@@ -248,7 +248,7 @@
out_edge_iterator ei, e_end;
if(current_node != m_last_grow_vertex){
m_last_grow_vertex = current_node;
- tie(m_last_grow_edge_it, m_last_grow_edge_end) = out_edges(current_node, m_g);
+ boost::tie(m_last_grow_edge_it, m_last_grow_edge_end) = out_edges(current_node, m_g);
}
for(; m_last_grow_edge_it != m_last_grow_edge_end; ++m_last_grow_edge_it) {
edge_descriptor out_edge = *m_last_grow_edge_it;
@@ -282,7 +282,7 @@
out_edge_iterator ei, e_end;
if(current_node != m_last_grow_vertex){
m_last_grow_vertex = current_node;
- tie(m_last_grow_edge_it, m_last_grow_edge_end) = out_edges(current_node, m_g);
+ boost::tie(m_last_grow_edge_it, m_last_grow_edge_end) = out_edges(current_node, m_g);
}
for(; m_last_grow_edge_it != m_last_grow_edge_end; ++m_last_grow_edge_it){
edge_descriptor in_edge = m_rev_edge_map[*m_last_grow_edge_it];
@@ -419,7 +419,7 @@
tDistanceVal min_distance = (std::numeric_limits<tDistanceVal>::max)();
edge_descriptor new_parent_edge;
out_edge_iterator ei, e_end;
- for(tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
const edge_descriptor in_edge = m_rev_edge_map[*ei];
assert(target(in_edge, m_g) == current_node); //we should be the target of this edge
if(m_res_cap_map[in_edge] > 0){
@@ -438,7 +438,7 @@
m_time_map[current_node] = m_time;
} else{
m_time_map[current_node] = 0;
- for(tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
edge_descriptor in_edge = m_rev_edge_map[*ei];
vertex_descriptor other_node = source(in_edge, m_g);
if(get_tree(other_node) == tColorTraits::black() && has_parent(other_node)){
@@ -462,7 +462,7 @@
out_edge_iterator ei, e_end;
edge_descriptor new_parent_edge;
tDistanceVal min_distance = (std::numeric_limits<tDistanceVal>::max)();
- for(tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
const edge_descriptor out_edge = *ei;
if(m_res_cap_map[out_edge] > 0){
const vertex_descriptor other_node = target(out_edge, m_g);
@@ -479,7 +479,7 @@
m_time_map[current_node] = m_time;
} else{
m_time_map[current_node] = 0;
- for(tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
const edge_descriptor out_edge = *ei;
const vertex_descriptor other_node = target(out_edge, m_g);
if(get_tree(other_node) == tColorTraits::white() && has_parent(other_node)){
Modified: branches/release/boost/graph/breadth_first_search.hpp
==============================================================================
--- branches/release/boost/graph/breadth_first_search.hpp (original)
+++ branches/release/boost/graph/breadth_first_search.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -73,7 +73,7 @@
Q.push(s);
while (! Q.empty()) {
Vertex u = Q.top(); Q.pop(); vis.examine_vertex(u, g);
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
Vertex v = target(*ei, g); vis.examine_edge(*ei, g);
ColorValue v_color = get(color, v);
if (v_color == Color::white()) { vis.tree_edge(*ei, g);
@@ -100,7 +100,7 @@
typedef typename property_traits<ColorMap>::value_type ColorValue;
typedef color_traits<ColorValue> Color;
typename boost::graph_traits<VertexListGraph>::vertex_iterator i, i_end;
- for (tie(i, i_end) = vertices(g); i != i_end; ++i) {
+ for (boost::tie(i, i_end) = vertices(g); i != i_end; ++i) {
vis.initialize_vertex(*i, g);
put(color, *i, Color::white());
}
Modified: branches/release/boost/graph/bron_kerbosch_all_cliques.hpp
==============================================================================
--- branches/release/boost/graph/bron_kerbosch_all_cliques.hpp (original)
+++ branches/release/boost/graph/bron_kerbosch_all_cliques.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -280,7 +280,7 @@
// constant inserts and removals at the end and also a constant size.
VertexIterator i, end;
- tie(i, end) = vertices(g);
+ boost::tie(i, end) = vertices(g);
VertexSet cands(i, end); // start with all vertices as candidates
VertexSet nots; // start with no vertices visited
Modified: branches/release/boost/graph/clustering_coefficient.hpp
==============================================================================
--- branches/release/boost/graph/clustering_coefficient.hpp (original)
+++ branches/release/boost/graph/clustering_coefficient.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -72,7 +72,7 @@
// for things like this (num_neighbors() would be great).
AdjacencyIterator i, end;
- tie(i, end) = adjacent_vertices(v, g);
+ boost::tie(i, end) = adjacent_vertices(v, g);
std::size_t k = std::distance(i, end);
return detail::possible_edges(g, k, Directed());
}
@@ -92,7 +92,7 @@
Degree count(0);
AdjacencyIterator i, j, end;
- for(tie(i, end) = adjacent_vertices(v, g); i != end; ++i) {
+ for(boost::tie(i, end) = adjacent_vertices(v, g); i != end; ++i) {
for(j = boost::next(i); j != end; ++j) {
count += detail::count_edges(g, *i, *j, Directed());
}
@@ -127,7 +127,7 @@
Coefficient sum(0);
VertexIterator i, end;
- for(tie(i, end) = vertices(g); i != end; ++i) {
+ for(boost::tie(i, end) = vertices(g); i != end; ++i) {
Coefficient cc = clustering_coefficient<Coefficient>(g, *i);
put(cm, *i, cc);
sum += cc;
@@ -147,7 +147,7 @@
Coefficient cc(0);
VertexIterator i, end;
- for(tie(i, end) = vertices(g); i != end; ++i) {
+ for(boost::tie(i, end) = vertices(g); i != end; ++i) {
cc += get(cm, *i);
}
return cc / Coefficient(num_vertices(g));
Modified: branches/release/boost/graph/compressed_sparse_row_graph.hpp
==============================================================================
--- branches/release/boost/graph/compressed_sparse_row_graph.hpp (original)
+++ branches/release/boost/graph/compressed_sparse_row_graph.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -185,11 +185,11 @@
typename EdgeIndex>
class compressed_sparse_row_graph<directedS, VertexProperty, EdgeProperty, GraphProperty, Vertex, EdgeIndex>
: public detail::indexed_vertex_properties<BOOST_DIR_CSR_GRAPH_TYPE,
- VertexProperty, Vertex, identity_property_map>
+ VertexProperty, Vertex, typed_identity_property_map<Vertex> >
{
public:
typedef detail::indexed_vertex_properties<compressed_sparse_row_graph,
- VertexProperty, Vertex, identity_property_map>
+ VertexProperty, Vertex, typed_identity_property_map<Vertex> >
inherited_vertex_properties;
public:
@@ -264,7 +264,7 @@
const GraphProperty& prop = GraphProperty())
: inherited_vertex_properties(numverts), m_property(prop)
{
- m_forward.assign_unsorted_multi_pass_edges(edge_begin, edge_end, numverts, identity_property_map(), keep_all());
+ m_forward.assign_unsorted_multi_pass_edges(edge_begin, edge_end, numverts, typed_identity_property_map<vertices_size_type>(), keep_all());
}
// From number of vertices and unsorted list of edges, plus edge properties
@@ -277,7 +277,7 @@
const GraphProperty& prop = GraphProperty())
: inherited_vertex_properties(numverts), m_forward(), m_property(prop)
{
- m_forward.assign_unsorted_multi_pass_edges(edge_begin, edge_end, ep_iter, numverts, identity_property_map(), keep_all());
+ m_forward.assign_unsorted_multi_pass_edges(edge_begin, edge_end, ep_iter, numverts, typed_identity_property_map<vertices_size_type>(), keep_all());
}
// From number of vertices and unsorted list of edges, with filter and
@@ -320,7 +320,7 @@
const GraphProperty& prop = GraphProperty())
: m_property(prop)
{
- m_forward.assign_from_sorted_edges(edge_begin, edge_end, identity_property_map(), keep_all(), numverts, numedges);
+ m_forward.assign_from_sorted_edges(edge_begin, edge_end, typed_identity_property_map<vertices_size_type>(), keep_all(), numverts, numedges);
inherited_vertex_properties::resize(numverts);
}
@@ -334,7 +334,7 @@
const GraphProperty& prop = GraphProperty())
: m_property(prop)
{
- m_forward.assign_from_sorted_edges(edge_begin, edge_end, ep_iter, identity_property_map(), keep_all(), numverts, numedges);
+ m_forward.assign_from_sorted_edges(edge_begin, edge_end, ep_iter, typed_identity_property_map<vertices_size_type>(), keep_all(), numverts, numedges);
inherited_vertex_properties::resize(numverts);
}
@@ -377,7 +377,7 @@
const GraphProperty& prop = GraphProperty())
: inherited_vertex_properties(numverts), m_property(prop)
{
- m_forward.assign_sources_and_targets_global(sources, targets, numverts, boost::identity_property_map());
+ m_forward.assign_sources_and_targets_global(sources, targets, numverts, boost::typed_identity_property_map<vertices_size_type>());
}
// From number of vertices and mutable vectors of sources and targets,
@@ -408,7 +408,7 @@
const GraphProperty& prop = GraphProperty())
: inherited_vertex_properties(numverts), m_property(prop)
{
- m_forward.assign_sources_and_targets_global(sources, targets, edge_props, numverts, boost::identity_property_map());
+ m_forward.assign_sources_and_targets_global(sources, targets, edge_props, numverts, boost::typed_identity_property_map<vertices_size_type>());
}
// From number of vertices and mutable vectors of sources and targets and
@@ -441,7 +441,7 @@
std::vector<vertex_descriptor> sources, targets;
boost::graph::detail::split_into_separate_coords
(edge_begin, edge_end, sources, targets);
- m_forward.assign_sources_and_targets_global(sources, targets, numverts, boost::identity_property_map());
+ m_forward.assign_sources_and_targets_global(sources, targets, numverts, boost::typed_identity_property_map<vertices_size_type>());
}
// From number of vertices and single-pass range of unsorted edges and
@@ -463,7 +463,7 @@
for (size_t i = 0; i < numedges; ++i) {
edge_props[i] = *ep_iter++;
}
- m_forward.assign_sources_and_targets_global(sources, targets, edge_props, numverts, boost::identity_property_map());
+ m_forward.assign_sources_and_targets_global(sources, targets, edge_props, numverts, boost::typed_identity_property_map<vertices_size_type>());
}
// From number of vertices and single-pass range of unsorted edges. Data is
@@ -602,7 +602,7 @@
BidirectionalIteratorOrig first_sorted,
BidirectionalIteratorOrig last_sorted,
EPIterOrig ep_iter_sorted) {
- m_forward.add_edges_sorted_internal(first_sorted, last_sorted, ep_iter_sorted, identity_property_map());
+ m_forward.add_edges_sorted_internal(first_sorted, last_sorted, ep_iter_sorted, typed_identity_property_map<vertices_size_type>());
}
// Add edges from a sorted (smallest sources first) range of pairs
@@ -653,7 +653,7 @@
template <typename InputIterator>
inline void
add_edges_internal(InputIterator first, InputIterator last) {
- this->add_edges_internal(first, last, identity_property_map());
+ this->add_edges_internal(first, last, typed_identity_property_map<vertices_size_type>());
}
// Add edges from a range of (source, target) pairs and edge properties that
@@ -699,7 +699,7 @@
inline void
add_edges_internal(InputIterator first, InputIterator last,
EPIterator ep_iter, EPIterator ep_iter_end) {
- this->add_edges_internal(first, last, ep_iter, ep_iter_end, identity_property_map());
+ this->add_edges_internal(first, last, ep_iter, ep_iter_end, typed_identity_property_map<vertices_size_type>());
}
using inherited_vertex_properties::operator[];
@@ -728,11 +728,11 @@
typename EdgeIndex>
class compressed_sparse_row_graph<bidirectionalS, VertexProperty, EdgeProperty, GraphProperty, Vertex, EdgeIndex>
: public detail::indexed_vertex_properties<BOOST_BIDIR_CSR_GRAPH_TYPE,
- VertexProperty, Vertex, identity_property_map>
+ VertexProperty, Vertex, typed_identity_property_map<Vertex> >
{
public:
typedef detail::indexed_vertex_properties<compressed_sparse_row_graph,
- VertexProperty, Vertex, identity_property_map>
+ VertexProperty, Vertex, typed_identity_property_map<Vertex> >
inherited_vertex_properties;
public:
@@ -808,7 +808,7 @@
(*this, get(vertex_index, *this), e.second)),
boost::counting_iterator<EdgeIndex>(0),
m_forward.m_rowstart.size() - 1,
- identity_property_map(),
+ typed_identity_property_map<Vertex>(),
keep_all());
}
@@ -823,7 +823,7 @@
const GraphProperty& prop = GraphProperty())
: inherited_vertex_properties(numverts), m_property(prop)
{
- m_forward.assign_unsorted_multi_pass_edges(edge_begin, edge_end, numverts, identity_property_map(), keep_all());
+ m_forward.assign_unsorted_multi_pass_edges(edge_begin, edge_end, numverts, typed_identity_property_map<Vertex>(), keep_all());
set_up_backward_property_links();
}
@@ -837,7 +837,7 @@
const GraphProperty& prop = GraphProperty())
: inherited_vertex_properties(numverts), m_forward(), m_property(prop)
{
- m_forward.assign_unsorted_multi_pass_edges(edge_begin, edge_end, ep_iter, numverts, identity_property_map(), keep_all());
+ m_forward.assign_unsorted_multi_pass_edges(edge_begin, edge_end, ep_iter, numverts, typed_identity_property_map<Vertex>(), keep_all());
set_up_backward_property_links();
}
@@ -969,7 +969,7 @@
BidirectionalIteratorOrig first_sorted,
BidirectionalIteratorOrig last_sorted,
EPIterOrig ep_iter_sorted) {
- m_forward.add_edges_sorted_internal(first_sorted, last_sorted, ep_iter_sorted, identity_property_map());
+ m_forward.add_edges_sorted_internal(first_sorted, last_sorted, ep_iter_sorted, typed_identity_property_map<Vertex>());
}
// Add edges from a sorted (smallest sources first) range of pairs
@@ -1020,7 +1020,7 @@
template <typename InputIterator>
inline void
add_edges_internal(InputIterator first, InputIterator last) {
- this->add_edges_internal(first, last, identity_property_map());
+ this->add_edges_internal(first, last, typed_identity_property_map<Vertex>());
}
// Add edges from a range of (source, target) pairs and edge properties that
@@ -1066,7 +1066,7 @@
inline void
add_edges_internal(InputIterator first, InputIterator last,
EPIterator ep_iter, EPIterator ep_iter_end) {
- this->add_edges_internal(first, last, ep_iter, ep_iter_end, identity_property_map());
+ this->add_edges_internal(first, last, ep_iter, ep_iter_end, typed_identity_property_map<Vertex>());
}
using inherited_vertex_properties::operator[];
@@ -1397,7 +1397,7 @@
template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
struct property_map<BOOST_CSR_GRAPH_TYPE, vertex_index_t>
{
- typedef identity_property_map type;
+ typedef typed_identity_property_map<Vertex> type;
typedef type const_type;
};
@@ -1423,10 +1423,10 @@
};
template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
-inline identity_property_map
+inline typed_identity_property_map<Vertex>
get(vertex_index_t, const BOOST_CSR_GRAPH_TYPE&)
{
- return identity_property_map();
+ return typed_identity_property_map<Vertex>();
}
template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
Modified: branches/release/boost/graph/copy.hpp
==============================================================================
--- branches/release/boost/graph/copy.hpp (original)
+++ branches/release/boost/graph/copy.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -113,19 +113,19 @@
Orig2CopyVertexIndexMap orig2copy, IndexMap)
{
typename graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
typename graph_traits<MutableGraph>::vertex_descriptor
new_v = add_vertex(g_out);
put(orig2copy, *vi, new_v);
copy_vertex(*vi, new_v);
}
typename graph_traits<Graph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g_in); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g_in); ei != ei_end; ++ei) {
typename graph_traits<MutableGraph>::edge_descriptor new_e;
bool inserted;
- tie(new_e, inserted) = add_edge(get(orig2copy, source(*ei, g_in)),
- get(orig2copy, target(*ei, g_in)),
- g_out);
+ boost::tie(new_e, inserted) = add_edge(get(orig2copy, source(*ei, g_in)),
+ get(orig2copy, target(*ei, g_in)),
+ g_out);
copy_edge(*ei, new_e);
}
}
@@ -142,20 +142,20 @@
Orig2CopyVertexIndexMap orig2copy, IndexMap)
{
typename graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
typename graph_traits<MutableGraph>::vertex_descriptor
new_v = add_vertex(g_out);
put(orig2copy, *vi, new_v);
copy_vertex(*vi, new_v);
}
- for (tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
typename graph_traits<Graph>::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(*vi, g_in); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(*vi, g_in); ei != ei_end; ++ei) {
typename graph_traits<MutableGraph>::edge_descriptor new_e;
bool inserted;
- tie(new_e, inserted) = add_edge(get(orig2copy, source(*ei, g_in)),
- get(orig2copy, target(*ei, g_in)),
- g_out);
+ boost::tie(new_e, inserted) = add_edge(get(orig2copy, source(*ei, g_in)),
+ get(orig2copy, target(*ei, g_in)),
+ g_out);
copy_edge(*ei, new_e);
}
}
@@ -177,21 +177,21 @@
std::vector<default_color_type>
color(num_vertices(g_in), Color::white());
typename graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
typename graph_traits<MutableGraph>::vertex_descriptor
new_v = add_vertex(g_out);
put(orig2copy, *vi, new_v);
copy_vertex(*vi, new_v);
}
- for (tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
typename graph_traits<Graph>::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(*vi, g_in); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(*vi, g_in); ei != ei_end; ++ei) {
typename graph_traits<MutableGraph>::edge_descriptor new_e;
bool inserted;
if (color[get(index_map, target(*ei, g_in))] == Color::white()) {
- tie(new_e, inserted) = add_edge(get(orig2copy, source(*ei,g_in)),
- get(orig2copy, target(*ei,g_in)),
- g_out);
+ boost::tie(new_e, inserted) = add_edge(get(orig2copy, source(*ei,g_in)),
+ get(orig2copy, target(*ei,g_in)),
+ g_out);
copy_edge(*ei, new_e);
}
}
@@ -361,9 +361,9 @@
void examine_edge(Edge e, const Graph& g_in) const {
typename graph_traits<NewGraph>::edge_descriptor new_e;
bool inserted;
- tie(new_e, inserted) = add_edge(get(orig2copy, source(e, g_in)),
- get(orig2copy, target(e, g_in)),
- g_out);
+ boost::tie(new_e, inserted) = add_edge(get(orig2copy, source(e, g_in)),
+ get(orig2copy, target(e, g_in)),
+ g_out);
copy_edge(e, new_e);
}
private:
Modified: branches/release/boost/graph/core_numbers.hpp
==============================================================================
--- branches/release/boost/graph/core_numbers.hpp (original)
+++ branches/release/boost/graph/core_numbers.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -122,11 +122,11 @@
{
typename graph_traits<Graph>::vertex_iterator vi,vi_end;
typename graph_traits<Graph>::out_edge_iterator ei,ei_end;
- for (tie(vi,vi_end) = vertices(g); vi!=vi_end; ++vi) {
+ for (boost::tie(vi,vi_end) = vertices(g); vi!=vi_end; ++vi) {
put(d,*vi,0);
}
- for (tie(vi,vi_end) = vertices(g); vi!=vi_end; ++vi) {
- for (tie(ei,ei_end) = out_edges(*vi,g); ei!=ei_end; ++ei) {
+ for (boost::tie(vi,vi_end) = vertices(g); vi!=vi_end; ++vi) {
+ for (boost::tie(ei,ei_end) = out_edges(*vi,g); ei!=ei_end; ++ei) {
put(d,target(*ei,g),get(d,target(*ei,g))+get(wm,*ei));
}
}
@@ -151,7 +151,7 @@
Q.pop();
v_cn = get(c,v);
typename graph_traits<Graph>::out_edge_iterator oi,oi_end;
- for (tie(oi,oi_end) = out_edges(v,g); oi!=oi_end; ++oi) {
+ for (boost::tie(oi,oi_end) = out_edges(v,g); oi!=oi_end; ++oi) {
vis.examine_edge(*oi,g);
vertex u = target(*oi,g);
// if c[u] > c[v], then u is still in the graph,
@@ -182,7 +182,7 @@
IndexMap> MutableQueue;
MutableQueue Q(num_vertices(g), icmp, im);
typename graph_traits<Graph>::vertex_iterator vi,vi_end;
- for (tie(vi,vi_end) = vertices(g); vi!=vi_end; ++vi) {
+ for (boost::tie(vi,vi_end) = vertices(g); vi!=vi_end; ++vi) {
Q.push(*vi);
}
return core_numbers_impl(g, c, wm, Q, vis);
@@ -206,14 +206,14 @@
// compute the maximum degree (degrees are in the coremap)
typename graph_traits<Graph>::degree_size_type max_deg = 0;
- for (tie(vi,vi_end) = vertices(g); vi!=vi_end; ++vi) {
+ for (boost::tie(vi,vi_end) = vertices(g); vi!=vi_end; ++vi) {
max_deg = (std::max<typename graph_traits<Graph>::degree_size_type>)(max_deg, get(c,*vi));
}
// store the vertices in bins by their degree
// allocate two extra locations to ease boundary cases
std::vector<size_type> bin(max_deg+2);
- for (tie(vi,vi_end) = vertices(g); vi!=vi_end; ++vi) {
+ for (boost::tie(vi,vi_end) = vertices(g); vi!=vi_end; ++vi) {
++bin[get(c,*vi)];
}
@@ -229,7 +229,7 @@
// perform the bucket sort with pos and vert so that
// pos[0] is the vertex of smallest degree
std::vector<vertex> vert(num_vertices(g));
- for (tie(vi,vi_end) = vertices(g); vi!=vi_end; ++vi) {
+ for (boost::tie(vi,vi_end) = vertices(g); vi!=vi_end; ++vi) {
vertex v=*vi;
size_type p=bin[get(c,v)];
put(pos,v,p);
@@ -247,7 +247,7 @@
vis.examine_vertex(v,g);
v_cn = get(c,v);
typename graph_traits<Graph>::out_edge_iterator oi,oi_end;
- for (tie(oi,oi_end) = out_edges(v,g); oi!=oi_end; ++oi) {
+ for (boost::tie(oi,oi_end) = out_edges(v,g); oi!=oi_end; ++oi) {
vis.examine_edge(*oi,g);
vertex u = target(*oi,g);
// if c[u] > c[v], then u is still in the graph,
Modified: branches/release/boost/graph/create_condensation_graph.hpp
==============================================================================
--- branches/release/boost/graph/create_condensation_graph.hpp (original)
+++ branches/release/boost/graph/create_condensation_graph.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -38,7 +38,7 @@
for (size_type i = 0; i < components[si].size(); ++i) {
vertex u = components[s][i];
typename graph_traits<Graph>::adjacency_iterator v, v_end;
- for (tie(v, v_end) = adjacent_vertices(u, g); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = adjacent_vertices(u, g); v != v_end; ++v) {
cg_vertex t = to_cg_vertex[component_number[*v]];
if (s != t) // Avoid loops in the condensation graph
adj.push_back(t);
@@ -50,7 +50,7 @@
cg_vertex t = adj[i];
typename graph_traits<CondensationGraph>::edge_descriptor e;
bool inserted;
- tie(e, inserted) = add_edge(s, t, cg);
+ boost::tie(e, inserted) = add_edge(s, t, cg);
put(edge_mult_map, e, 1);
++i;
while (i < adj.size()) {
@@ -58,7 +58,7 @@
put(edge_mult_map, e, get(edge_mult_map, e) + 1);
else {
t = adj[i];
- tie(e, inserted) = add_edge(s, t, cg);
+ boost::tie(e, inserted) = add_edge(s, t, cg);
put(edge_mult_map, e, 1);
}
++i;
Modified: branches/release/boost/graph/cuthill_mckee_ordering.hpp
==============================================================================
--- branches/release/boost/graph/cuthill_mckee_ordering.hpp (original)
+++ branches/release/boost/graph/cuthill_mckee_ordering.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -92,7 +92,7 @@
// Copy degree to pseudo_degree
// initialize the color map
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui){
+ for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui){
put(color, *ui, Color::white());
}
Modified: branches/release/boost/graph/dag_shortest_paths.hpp
==============================================================================
--- branches/release/boost/graph/dag_shortest_paths.hpp (original)
+++ branches/release/boost/graph/dag_shortest_paths.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -46,7 +46,7 @@
depth_first_visit(g, s, topo_visitor, color);
typename graph_traits<VertexListGraph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
+ for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
put(distance, *ui, inf);
put(pred, *ui, *ui);
}
@@ -58,7 +58,7 @@
Vertex u = *i;
vis.examine_vertex(u, g);
typename graph_traits<VertexListGraph>::out_edge_iterator e, e_end;
- for (tie(e, e_end) = out_edges(u, g); e != e_end; ++e) {
+ for (boost::tie(e, e_end) = out_edges(u, g); e != e_end; ++e) {
vis.discover_vertex(target(*e, g), g);
bool decreased = relax(*e, g, weight, pred, distance,
combine, compare);
Modified: branches/release/boost/graph/depth_first_search.hpp
==============================================================================
--- branches/release/boost/graph/depth_first_search.hpp (original)
+++ branches/release/boost/graph/depth_first_search.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -100,7 +100,7 @@
put(color, u, Color::gray());
vis.discover_vertex(u, g);
- tie(ei, ei_end) = out_edges(u, g);
+ boost::tie(ei, ei_end) = out_edges(u, g);
// Variable is needed to workaround a borland bug.
TF& fn = static_cast<TF&>(func);
if (fn(u, g)) {
@@ -112,7 +112,7 @@
while (!stack.empty()) {
VertexInfo& back = stack.back();
u = back.first;
- tie(ei, ei_end) = back.second;
+ boost::tie(ei, ei_end) = back.second;
stack.pop_back();
while (ei != ei_end) {
Vertex v = target(*ei, g);
@@ -124,7 +124,7 @@
u = v;
put(color, u, Color::gray());
vis.discover_vertex(u, g);
- tie(ei, ei_end) = out_edges(u, g);
+ boost::tie(ei, ei_end) = out_edges(u, g);
if (fn(u, g)) {
ei = ei_end;
}
@@ -166,7 +166,7 @@
// Variable is needed to workaround a borland bug.
TF& fn = static_cast<TF&>(func);
if (!fn(u, g))
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
Vertex v = target(*ei, g); vis.examine_edge(*ei, g);
ColorValue v_color = get(color, v);
if (v_color == Color::white()) { vis.tree_edge(*ei, g);
@@ -192,7 +192,7 @@
typedef color_traits<ColorValue> Color;
typename graph_traits<VertexListGraph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
+ for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
Vertex u = implicit_cast<Vertex>(*ui);
put(color, u, Color::white()); vis.initialize_vertex(u, g);
}
@@ -202,7 +202,7 @@
detail::nontruth2());
}
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
+ for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
Vertex u = implicit_cast<Vertex>(*ui);
ColorValue u_color = get(color, u);
if (u_color == Color::white()) { vis.start_vertex(u, g);
Modified: branches/release/boost/graph/detail/adjacency_list.hpp
==============================================================================
--- branches/release/boost/graph/detail/adjacency_list.hpp (original)
+++ branches/release/boost/graph/detail/adjacency_list.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -592,7 +592,7 @@
typedef typename Config::graph_type graph_type;
graph_type& g = static_cast<graph_type&>(g_);
typename Config::out_edge_iterator first, last;
- tie(first, last) = out_edges(u, g);
+ boost::tie(first, last) = out_edges(u, g);
typedef typename Config::edge_parallel_category edge_parallel_category;
detail::remove_directed_edge_if_dispatch
(first, last, g.out_edge_list(u), pred, edge_parallel_category());
@@ -606,7 +606,7 @@
graph_type& g = static_cast<graph_type&>(g_);
typename Config::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
remove_out_edge_if(*vi, pred, g);
}
@@ -921,7 +921,7 @@
typedef typename Config::OutEdgeList::value_type::property_type PropT;
graph_type& g = static_cast<graph_type&>(g_);
typename Config::out_edge_iterator first, last;
- tie(first, last) = out_edges(u, g);
+ boost::tie(first, last) = out_edges(u, g);
typedef typename Config::edge_parallel_category Cat;
detail::undirected_remove_out_edge_if_dispatch<PropT>
(g, first, last, g.out_edge_list(u), pred, Cat());
@@ -948,7 +948,7 @@
typedef typename Config::graph_type graph_type;
graph_type& g = static_cast<graph_type&>(g_);
typename Config::edge_iterator ei, ei_end, next;
- tie(ei, ei_end) = edges(g);
+ boost::tie(ei, ei_end) = edges(g);
for (next = ei; ei != ei_end; ei = next) {
++next;
if (pred(*ei))
@@ -1118,7 +1118,7 @@
typedef typename Config::graph_type graph_type;
graph_type& g = static_cast<graph_type&>(g_);
typename Config::edge_iterator ei, ei_end, next;
- tie(ei, ei_end) = edges(g);
+ boost::tie(ei, ei_end) = edges(g);
for (next = ei; ei != ei_end; ei = next) {
++next;
if (pred(*ei))
@@ -1279,7 +1279,7 @@
// First remove the edges from the targets' in-edge lists and
// from the graph's edge set list.
typename Config::out_edge_iterator out_i, out_end;
- for (tie(out_i, out_end) = out_edges(u, g); out_i != out_end; ++out_i)
+ for (boost::tie(out_i, out_end) = out_edges(u, g); out_i != out_end; ++out_i)
if (pred(*out_i)) {
detail::remove_directed_edge_dispatch
(*out_i, in_edge_list(g, target(*out_i, g)),
@@ -1291,7 +1291,7 @@
// Now remove the edges from this out-edge list.
typename Config::out_edge_iterator first, last;
- tie(first, last) = out_edges(u, g);
+ boost::tie(first, last) = out_edges(u, g);
typedef typename Config::edge_parallel_category Cat;
detail::remove_directed_edge_if_dispatch
(first, last, g.out_edge_list(u), pred, Cat());
@@ -1320,7 +1320,7 @@
// First remove the edges from the sources' out-edge lists and
// from the graph's edge set list.
typename Config::in_edge_iterator in_i, in_end;
- for (tie(in_i, in_end) = in_edges(v, g); in_i != in_end; ++in_i)
+ for (boost::tie(in_i, in_end) = in_edges(v, g); in_i != in_end; ++in_i)
if (pred(*in_i)) {
typename Config::vertex_descriptor u = source(*in_i, g);
detail::remove_directed_edge_dispatch
@@ -1331,7 +1331,7 @@
}
// Now remove the edges from this in-edge list.
typename Config::in_edge_iterator first, last;
- tie(first, last) = in_edges(v, g);
+ boost::tie(first, last) = in_edges(v, g);
typedef typename Config::edge_parallel_category Cat;
detail::remove_directed_edge_if_dispatch
(first, last, in_edge_list(g, v), pred, Cat());
@@ -1650,7 +1650,7 @@
typename Config::OutEdgeList& el = g.out_edge_list(u);
typename Config::OutEdgeList::iterator first, last;
typename Config::EdgeContainer fake_edge_container;
- tie(first, last) = graph_detail::
+ boost::tie(first, last) = graph_detail::
equal_range(el, StoredEdge(v, fake_edge_container.end(),
&fake_edge_container));
return std::make_pair(out_edge_iterator(first, u),
@@ -1873,7 +1873,7 @@
// Copy the stored vertex objects by adding each vertex
// and copying its property object.
vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(x); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(x); vi != vi_end; ++vi) {
stored_vertex* v = (stored_vertex*)add_vertex(*this);
v->m_property = ((stored_vertex*)*vi)->m_property;
vertex_map[(stored_vertex*)*vi] = v;
@@ -1881,12 +1881,12 @@
// Copy the edges by adding each edge and copying its
// property object.
edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(x); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(x); ei != ei_end; ++ei) {
edge_descriptor e;
bool inserted;
vertex_descriptor s = source(*ei,x), t = target(*ei,x);
- tie(e, inserted) = add_edge(vertex_map[(stored_vertex*)s],
- vertex_map[(stored_vertex*)t], *this);
+ boost::tie(e, inserted) = add_edge(vertex_map[(stored_vertex*)s],
+ vertex_map[(stored_vertex*)t], *this);
*((edge_property_type*)e.m_eproperty)
= *((edge_property_type*)(*ei).m_eproperty);
}
@@ -2154,10 +2154,10 @@
// Copy the edges by adding each edge and copying its
// property object.
edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(x); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(x); ei != ei_end; ++ei) {
edge_descriptor e;
bool inserted;
- tie(e, inserted) = add_edge(source(*ei,x), target(*ei,x) , *this);
+ boost::tie(e, inserted) = add_edge(source(*ei,x), target(*ei,x) , *this);
*((edge_property_type*)e.m_eproperty)
= *((edge_property_type*)(*ei).m_eproperty);
}
Modified: branches/release/boost/graph/detail/compressed_sparse_row_struct.hpp
==============================================================================
--- branches/release/boost/graph/detail/compressed_sparse_row_struct.hpp (original)
+++ branches/release/boost/graph/detail/compressed_sparse_row_struct.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -326,7 +326,7 @@
m_rowstart[i] = current_edge;
g_vertex v = ordered_verts_of_g[i];
g_out_edge_iter ei, ei_end;
- for (tie(ei, ei_end) = out_edges(v, g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(v, g); ei != ei_end; ++ei) {
m_column[current_edge++] = get(vi, target(*ei, g));
}
}
Modified: branches/release/boost/graph/detail/incremental_components.hpp
==============================================================================
--- branches/release/boost/graph/detail/incremental_components.hpp (original)
+++ branches/release/boost/graph/detail/incremental_components.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -60,7 +60,7 @@
return (*this);
}
- bool operator==(self& other_iterator) {
+ bool operator==(const self& other_iterator) const {
return (m_current_index == *other_iterator);
}
Modified: branches/release/boost/graph/detail/sparse_ordering.hpp
==============================================================================
--- branches/release/boost/graph/detail/sparse_ordering.hpp (original)
+++ branches/release/boost/graph/detail/sparse_ordering.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -137,7 +137,7 @@
sparse::rcm_queue<Vertex, DegreeMap> Q(degree);
typename boost::graph_traits<Graph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(G); ui != ui_end; ++ui)
+ for (boost::tie(ui, ui_end) = vertices(G); ui != ui_end; ++ui)
if (get(color, *ui) != Color::red()) put(color, *ui, Color::white());
breadth_first_visit(G, u, buffer(Q).color_map(color));
Modified: branches/release/boost/graph/dijkstra_shortest_paths.hpp
==============================================================================
--- branches/release/boost/graph/dijkstra_shortest_paths.hpp (original)
+++ branches/release/boost/graph/dijkstra_shortest_paths.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -372,7 +372,7 @@
typedef typename property_traits<ColorMap>::value_type ColorValue;
typedef color_traits<ColorValue> Color;
typename graph_traits<VertexListGraph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
+ for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
vis.initialize_vertex(*ui, g);
put(distance, *ui, inf);
put(predecessor, *ui, *ui);
Modified: branches/release/boost/graph/directed_graph.hpp
==============================================================================
--- branches/release/boost/graph/directed_graph.hpp (original)
+++ branches/release/boost/graph/directed_graph.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -194,7 +194,7 @@
// find all edges, (u, v)
std::vector<edge_descriptor> edges;
out_edge_iterator i, i_end;
- for(tie(i, i_end) = boost::out_edges(u, m_graph); i != i_end; ++i) {
+ for(boost::tie(i, i_end) = boost::out_edges(u, m_graph); i != i_end; ++i) {
if(boost::target(*i, m_graph) == v) {
edges.push_back(*i);
}
@@ -225,7 +225,7 @@
renumber_vertex_indices()
{
vertex_iterator i, end;
- tie(i, end) = vertices(m_graph);
+ boost::tie(i, end) = vertices(m_graph);
m_max_vertex_index = renumber_vertex_indices(i, end, 0);
}
@@ -248,7 +248,7 @@
renumber_edge_indices()
{
edge_iterator i, end;
- tie(i, end) = edges(m_graph);
+ boost::tie(i, end) = edges(m_graph);
m_max_edge_index = renumber_edge_indices(i, end, 0);
}
Modified: branches/release/boost/graph/distributed/adjacency_list.hpp
==============================================================================
--- branches/release/boost/graph/distributed/adjacency_list.hpp (original)
+++ branches/release/boost/graph/distributed/adjacency_list.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -989,7 +989,7 @@
}
typename graph_traits<base_type>::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(v.local, bg); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = out_edges(v.local, bg); ei != ei_end; ++ei)
{
if (target(*ei, g.base()) == u.local
// TBD: deal with parallel edges properly && *ei == e
@@ -2098,7 +2098,7 @@
if (src.owner == process_id(process_group_)) {
base_out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(src.local, base());
+ for (boost::tie(ei, ei_end) = out_edges(src.local, base());
ei != ei_end; ++ei) {
// TBD: can't check the descriptor here, because it could
// have changed if we're allowing the removal of
@@ -2140,7 +2140,7 @@
// Remove the edge from the out-edge list, if it is there
{
base_out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(local_vertex.local, base());
+ for (boost::tie(ei, ei_end) = out_edges(local_vertex.local, base());
ei != ei_end; ++ei) {
// TBD: can't check the descriptor here, because it could
// have changed if we're allowing the removal of
@@ -2890,7 +2890,7 @@
typename PBGL_DISTRIB_ADJLIST_TYPE_CONFIG(directedS)
::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
if (target(*ei, g) == v) return std::make_pair(*ei, true);
}
return std::make_pair(edge_descriptor(), false);
@@ -2912,13 +2912,13 @@
// must be local
if (u.owner == process_id(g.process_group())) {
typename PBGL_DISTRIB_ADJLIST_TYPE::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
if (target(*ei, g) == v) return std::make_pair(*ei, true);
}
return std::make_pair(edge_descriptor(), false);
} else if (v.owner == process_id(g.process_group())) {
typename PBGL_DISTRIB_ADJLIST_TYPE::in_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = in_edges(v, g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = in_edges(v, g); ei != ei_end; ++ei) {
if (source(*ei, g) == u) return std::make_pair(*ei, true);
}
return std::make_pair(edge_descriptor(), false);
Modified: branches/release/boost/graph/distributed/adjlist/redistribute.hpp
==============================================================================
--- branches/release/boost/graph/distributed/adjlist/redistribute.hpp (original)
+++ branches/release/boost/graph/distributed/adjlist/redistribute.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -203,7 +203,7 @@
// Build the sets of relocated vertices for each process and then do
// an all-to-all transfer.
- for (tie(vi, vi_end) = vertices(*this); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(*this); vi != vi_end; ++vi) {
if (!has_stable_descriptors
|| get(vertex_to_processor, *vi) != vi->owner) {
redistributed_vertices[get(vertex_to_processor, *vi)]
@@ -230,7 +230,7 @@
// Build the sets of relocated edges for each process and then do
// an all-to-all transfer.
- for (tie(ei, ei_end) = edges(*this); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(*this); ei != ei_end; ++ei) {
vertex_descriptor src = source(*ei, *this);
vertex_descriptor tgt = target(*ei, *this);
if (!has_stable_descriptors
@@ -273,7 +273,7 @@
source_or_target_migrated(vertex_to_processor, *this));
// Eliminate vertices that have migrated
- for (tie(vi, vi_end) = vertices(*this); vi != vi_end; /* in loop */) {
+ for (boost::tie(vi, vi_end) = vertices(*this); vi != vi_end; /* in loop */) {
if (get(vertex_to_processor, *vi) != vi->owner)
remove_vertex((*vi++).local, base());
else {
Modified: branches/release/boost/graph/distributed/betweenness_centrality.hpp
==============================================================================
--- branches/release/boost/graph/distributed/betweenness_centrality.hpp (original)
+++ branches/release/boost/graph/distributed/betweenness_centrality.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -1701,7 +1701,7 @@
// Find max centrality
centrality_type max_centrality(0);
vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = vertices(g); v != v_end; ++v) {
max_centrality = (max)(max_centrality, get(centrality, *v));
}
@@ -1710,7 +1710,7 @@
// Compute central point dominance
centrality_type sum(0);
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = vertices(g); v != v_end; ++v) {
sum += (max_centrality - get(centrality, *v));
}
Modified: branches/release/boost/graph/distributed/connected_components.hpp
==============================================================================
--- branches/release/boost/graph/distributed/connected_components.hpp (original)
+++ branches/release/boost/graph/distributed/connected_components.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -366,7 +366,7 @@
// Build adjacency list for all roots
BGL_FORALL_VERTICES_T(v, g, DistributedGraph) {
std::vector<vertex_descriptor>& my_adj = adj[get(p, v)];
- for (tie(av1, av2) = adjacent_vertices(v, g);
+ for (boost::tie(av1, av2) = adjacent_vertices(v, g);
av1 != av2; ++av1) {
if (get(owner, *av1) != id) my_adj.push_back(*av1);
}
Modified: branches/release/boost/graph/distributed/connected_components_parallel_search.hpp
==============================================================================
--- branches/release/boost/graph/distributed/connected_components_parallel_search.hpp (original)
+++ branches/release/boost/graph/distributed/connected_components_parallel_search.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -306,7 +306,7 @@
BGL_FORALL_VERTICES_T(v, g, Graph) put(c, v, max_component);
vertex_iterator current, end;
- tie(current, end) = vertices(g);
+ boost::tie(current, end) = vertices(g);
cc_ps_detail::component_value_allocator<component_value_type> cva(process_id(pg), num_processes(pg));
cc_ps_detail::collision_map<component_value_type> collisions;
Modified: branches/release/boost/graph/distributed/crauser_et_al_shortest_paths.hpp
==============================================================================
--- branches/release/boost/graph/distributed/crauser_et_al_shortest_paths.hpp (original)
+++ branches/release/boost/graph/distributed/crauser_et_al_shortest_paths.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -579,7 +579,7 @@
// Initialize local portion of property maps
typename graph_traits<DistributedGraph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
+ for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
put(distance, *ui, inf);
put(predecessor, *ui, *ui);
}
Modified: branches/release/boost/graph/distributed/dehne_gotz_min_spanning_tree.hpp
==============================================================================
--- branches/release/boost/graph/distributed/dehne_gotz_min_spanning_tree.hpp (original)
+++ branches/release/boost/graph/distributed/dehne_gotz_min_spanning_tree.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -561,7 +561,7 @@
// Initialize the disjoint sets structures
disjoint_sets<RankMap, ParentMap> dset(rank_map, parent_map);
vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
dset.make_set(*vi);
std::vector<vertex_descriptor> supervertices;
@@ -728,7 +728,7 @@
// Initialize the disjoint sets structures for Boruvka steps
disjoint_sets<RankMap, ParentMap> dset(rank_map, parent_map);
vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
dset.make_set(*vi);
// Construct the initial set of supervertices (all vertices)
@@ -836,7 +836,7 @@
// Initialize the disjoint sets structures for Boruvka steps
disjoint_sets<RankMap, ParentMap> dset(rank_map, parent_map);
vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
dset.make_set(*vi);
// Construct the initial set of supervertices (all vertices)
Modified: branches/release/boost/graph/distributed/depth_first_search.hpp
==============================================================================
--- branches/release/boost/graph/distributed/depth_first_search.hpp (original)
+++ branches/release/boost/graph/distributed/depth_first_search.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -64,7 +64,7 @@
void run(vertex_descriptor s)
{
vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
put(color, *vi, Color::white());
put(parent, *vi, *vi);
put(explore, *vi, *vi);
@@ -105,7 +105,7 @@
if (shift_center_of_activity(p.first)) break;
out_edge_iterator ei, ei_end;
- for (tie(ei,ei_end) = out_edges(p.first, g); ei != ei_end; ++ei)
+ for (boost::tie(ei,ei_end) = out_edges(p.first, g); ei != ei_end; ++ei)
{
// Notify everyone who may not know that the source
// vertex has been visited. They can then mark the
Modified: branches/release/boost/graph/distributed/eager_dijkstra_shortest_paths.hpp
==============================================================================
--- branches/release/boost/graph/distributed/eager_dijkstra_shortest_paths.hpp (original)
+++ branches/release/boost/graph/distributed/eager_dijkstra_shortest_paths.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -363,7 +363,7 @@
// Initialize local portion of property maps
typename graph_traits<DistributedGraph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
+ for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
put(distance, *ui, inf);
put(predecessor, *ui, *ui);
}
Modified: branches/release/boost/graph/distributed/graphviz.hpp
==============================================================================
--- branches/release/boost/graph/distributed/graphviz.hpp (original)
+++ branches/release/boost/graph/distributed/graphviz.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -134,7 +134,7 @@
gpw(local_graph_out);
typename graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
int global_idx = get(global_index, *vi);
local_graph_out << " n" << global_idx;
@@ -145,7 +145,7 @@
typename graph_traits<Graph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
int source_idx = get(global_index, source(*ei, g));
int target_idx = get(global_index, target(*ei, g));
local_graph_out << " n" << source_idx << " " << edge_kind << " n"
Modified: branches/release/boost/graph/distributed/page_rank.hpp
==============================================================================
--- branches/release/boost/graph/distributed/page_rank.hpp (original)
+++ branches/release/boost/graph/distributed/page_rank.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -205,7 +205,7 @@
old_n = num_vertices(g);
typename graph_traits<MutableGraph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; /* in loop */) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; /* in loop */) {
typename graph_traits<MutableGraph>::vertex_descriptor v = *vi++;
if (out_degree(v, g) == 0) {
clear_vertex(v, g);
Modified: branches/release/boost/graph/distributed/rmat_graph_generator.hpp
==============================================================================
--- branches/release/boost/graph/distributed/rmat_graph_generator.hpp (original)
+++ branches/release/boost/graph/distributed/rmat_graph_generator.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -69,7 +69,7 @@
edges_size_type tossed = 0;
do {
vertices_size_type u, v;
- tie(u, v) = generate_edge(this->gen, n, SCALE, a, b, c, d);
+ boost::tie(u, v) = generate_edge(this->gen, n, SCALE, a, b, c, d);
if (permute_vertices) {
u = vertexPermutation[u];
Modified: branches/release/boost/graph/distributed/strong_components.hpp
==============================================================================
--- branches/release/boost/graph/distributed/strong_components.hpp (original)
+++ branches/release/boost/graph/distributed/strong_components.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -209,7 +209,7 @@
// Remove vertices that do not have at least one in edge and one out edge
new_vertex_sets.push_back(std::vector<vertex_descriptor>());
- for( tie(vstart, vend) = vertices(g); vstart != vend; vstart++ )
+ for( boost::tie(vstart, vend) = vertices(g); vstart != vend; vstart++ )
if( out_degree( get(fr, *vstart), gr) > 0 && out_degree(*vstart, g) > 0 )
new_vertex_sets[0].push_back( *vstart );
@@ -234,7 +234,7 @@
std::map<int, std::vector<vertex_descriptor> > local_comp_map;
typedef typename graph_traits<local_subgraph<const Graph> >::vertex_iterator ls_vertex_iterator;
ls_vertex_iterator vstart, vend;
- for( tie(vstart,vend) = vertices(ls); vstart != vend; vstart++ )
+ for( boost::tie(vstart,vend) = vertices(ls); vstart != vend; vstart++ )
local_comp_map[get(ls_component, *vstart)].push_back( *vstart );
// Filter components that have no non-local edges
@@ -245,7 +245,7 @@
for( std::size_t i = 0; i < num_comp; ++i ) {
bool local = true;
for( std::size_t j = 0; j < local_comp_map[i].size(); j++ ) {
- for( tie(abegin,aend) = adjacent_vertices(local_comp_map[i][j], g);
+ for( boost::tie(abegin,aend) = adjacent_vertices(local_comp_map[i][j], g);
abegin != aend; abegin++ )
if( get(owner, *abegin) != id ) {
local = false;
@@ -253,7 +253,7 @@
}
if( local )
- for( tie(rev_abegin,rev_aend) = adjacent_vertices(get(fr, local_comp_map[i][j]), gr);
+ for( boost::tie(rev_abegin,rev_aend) = adjacent_vertices(get(fr, local_comp_map[i][j]), gr);
rev_abegin != rev_aend; rev_abegin++ )
if( get(owner, *rev_abegin) != id ) {
local = false;
@@ -476,7 +476,7 @@
for (std::size_t i = 0; i < vertex_sets.size(); ++i)
dest_map[vertex_sets[i][0]] = i % num_procs;
- for( tie(vstart, vend) = vertices(g); vstart != vend; vstart++ ) {
+ for( boost::tie(vstart, vend) = vertices(g); vstart != vend; vstart++ ) {
vertex_descriptor v = get(succ_map, *vstart);
if( v != graph_traits<Graph>::null_vertex() )
if (dest_map[v] == id)
@@ -485,7 +485,7 @@
successors[dest_map[v]].push_back( std::make_pair(v, *vstart) );
}
- for( tie(rev_vstart, rev_vend) = vertices(gr); rev_vstart != rev_vend; rev_vstart++ ) {
+ for( boost::tie(rev_vstart, rev_vend) = vertices(gr); rev_vstart != rev_vend; rev_vstart++ ) {
vertex_descriptor v = get(pred_map, *rev_vstart);
if( v != graph_traits<Graph>::null_vertex() )
if (dest_map[v] == id)
@@ -684,11 +684,11 @@
for (std::size_t j = 0; j < vertex_sets[i].size(); ++j) {
vertex_descriptor v = vertex_sets[i][j];
if (get(owner, v) == id) {
- tie(estart, eend) = out_edges(v, g);
+ boost::tie(estart, eend) = out_edges(v, g);
while (estart != eend && find(vertex_sets[i].begin(), vertex_sets[i].end(),
target(*estart,g)) == vertex_sets[i].end()) estart++;
if (estart != eend) {
- tie(restart, reend) = out_edges(get(fr, v), gr);
+ boost::tie(restart, reend) = out_edges(get(fr, v), gr);
while (restart != reend && find(vertex_sets[i].begin(), vertex_sets[i].end(),
get(rf, target(*restart,g))) == vertex_sets[i].end()) restart++;
if (restart != reend)
@@ -711,7 +711,7 @@
// Label vertices not in a SCC as their own SCC
- for( tie(vstart, vend) = vertices(g); vstart != vend; vstart++ )
+ for( boost::tie(vstart, vend) = vertices(g); vstart != vend; vstart++ )
if( get(c, *vstart) == graph_traits<Graph>::null_vertex() )
put(c, *vstart, *vstart);
@@ -743,7 +743,7 @@
vertex_descriptor v;
out_edge_iterator oestart, oeend;
- for( tie(vstart, vend) = vertices(g); vstart != vend; vstart++ )
+ for( boost::tie(vstart, vend) = vertices(g); vstart != vend; vstart++ )
{
v = add_vertex(gr);
put(fr, *vstart, v);
@@ -761,8 +761,8 @@
// Add edges to gr
std::vector<std::pair<vertex_descriptor, vertex_descriptor> > new_edges;
- for( tie(vstart, vend) = vertices(g); vstart != vend; vstart++ )
- for( tie(oestart, oeend) = out_edges(*vstart, g); oestart != oeend; oestart++ )
+ for( boost::tie(vstart, vend) = vertices(g); vstart != vend; vstart++ )
+ for( boost::tie(oestart, oeend) = out_edges(*vstart, g); oestart != oeend; oestart++ )
new_edges.push_back( std::make_pair(get(fr, target(*oestart,g)), get(fr, source(*oestart, g))) );
std::vector<VertexPairVec> edge_requests(num_procs);
@@ -812,7 +812,7 @@
std::vector<vertex_descriptor> my_roots, all_roots;
vertex_iterator vstart, vend;
- for( tie(vstart, vend) = vertices(g); vstart != vend; vstart++ )
+ for( boost::tie(vstart, vend) = vertices(g); vstart != vend; vstart++ )
if( find( my_roots.begin(), my_roots.end(), get(r, *vstart) ) == my_roots.end() )
my_roots.push_back( get(r, *vstart) );
@@ -828,7 +828,7 @@
comp_numbers[all_roots[i]] = c_num++;
// Broadcast component numbers
- for( tie(vstart, vend) = vertices(g); vstart != vend; vstart++ )
+ for( boost::tie(vstart, vend) = vertices(g); vstart != vend; vstart++ )
put( c, *vstart, comp_numbers[get(r,*vstart)] );
// Broadcast number of components
Modified: branches/release/boost/graph/dominator_tree.hpp
==============================================================================
--- branches/release/boost/graph/dominator_tree.hpp (original)
+++ branches/release/boost/graph/dominator_tree.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -118,7 +118,7 @@
// For each predecessor of n
typename graph_traits<Graph>::in_edge_iterator inItr, inEnd;
- for (tie(inItr, inEnd) = in_edges(n, g); inItr != inEnd; ++inItr)
+ for (boost::tie(inItr, inEnd) = in_edges(n, g); inItr != inEnd; ++inItr)
{
const Vertex v = source(*inItr, g);
// To deal with unreachable nodes
@@ -396,7 +396,7 @@
if (numOfVertices == 0) return;
vertexItr vi, viend;
- tie(vi, viend) = vertices(g);
+ boost::tie(vi, viend) = vertices(g);
const std::set<Vertex> N(vi, viend);
bool change = true;
@@ -409,14 +409,14 @@
while (change)
{
change = false;
- for (tie(vi, viend) = vertices(g); vi != viend; ++vi)
+ for (boost::tie(vi, viend) = vertices(g); vi != viend; ++vi)
{
if (*vi == entry) continue;
std::set<Vertex> T(N);
typename graph_traits<Graph>::in_edge_iterator inItr, inEnd;
- for (tie(inItr, inEnd) = in_edges(*vi, g); inItr != inEnd; ++inItr)
+ for (boost::tie(inItr, inEnd) = in_edges(*vi, g); inItr != inEnd; ++inItr)
{
const Vertex p = source(*inItr, g);
@@ -434,16 +434,16 @@
change = true;
get(domMap, *vi).swap(T);
}
- } // end of for (tie(vi, viend) = vertices(g)
+ } // end of for (boost::tie(vi, viend) = vertices(g)
} // end of while(change)
// 2. Build dominator tree
- for (tie(vi, viend) = vertices(g); vi != viend; ++vi)
+ for (boost::tie(vi, viend) = vertices(g); vi != viend; ++vi)
get(domMap, *vi).erase(*vi);
Graph domTree(numOfVertices);
- for (tie(vi, viend) = vertices(g); vi != viend; ++vi)
+ for (boost::tie(vi, viend) = vertices(g); vi != viend; ++vi)
{
if (*vi == entry) continue;
@@ -464,7 +464,7 @@
}
}
- for (tie(vi, viend) = vertices(g); vi != viend; ++vi)
+ for (boost::tie(vi, viend) = vertices(g); vi != viend; ++vi)
{
if (*vi != entry && get(domMap, *vi).size() == 1)
{
Modified: branches/release/boost/graph/eccentricity.hpp
==============================================================================
--- branches/release/boost/graph/eccentricity.hpp (original)
+++ branches/release/boost/graph/eccentricity.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -58,8 +58,8 @@
r = numeric_values<Eccentricity>::infinity(),
d = numeric_values<Eccentricity>::zero();
VertexIterator i, end;
- tie(i, end) = vertices(g);
- for(tie(i, end) = vertices(g); i != end; ++i) {
+ boost::tie(i, end) = vertices(g);
+ for(boost::tie(i, end) = vertices(g); i != end; ++i) {
DistanceMap dm = get(dist, *i);
Eccentricity e = eccentricity(g, dm);
put(ecc, *i, e);
@@ -85,7 +85,7 @@
BOOST_USING_STD_MAX();
VertexIterator i, end;
- tie(i, end) = vertices(g);
+ boost::tie(i, end) = vertices(g);
Eccentricity radius = get(ecc, *i);
Eccentricity diameter = get(ecc, *i);
for(i = boost::next(i); i != end; ++i) {
Modified: branches/release/boost/graph/edge_connectivity.hpp
==============================================================================
--- branches/release/boost/graph/edge_connectivity.hpp (original)
+++ branches/release/boost/graph/edge_connectivity.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -34,7 +34,7 @@
size_type delta = (std::numeric_limits<size_type>::max)();
typename Traits::vertex_iterator i, iend;
- for (tie(i, iend) = vertices(g); i != iend; ++i)
+ for (boost::tie(i, iend) = vertices(g); i != iend; ++i)
if (degree(*i, g) < delta) {
delta = degree(*i, g);
p = *i;
@@ -48,7 +48,7 @@
OutputIterator result)
{
typename graph_traits<Graph>::adjacency_iterator ai, aend;
- for (tie(ai, aend) = adjacent_vertices(u, g); ai != aend; ++ai)
+ for (boost::tie(ai, aend) = adjacent_vertices(u, g); ai != aend; ++ai)
*result++ = *ai;
}
@@ -111,11 +111,11 @@
typename property_map<FlowGraph, edge_reverse_t>::type
rev_edge = get(edge_reverse, flow_g);
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
u = source(*ei, g), v = target(*ei, g);
- tie(e1, inserted) = add_edge(u, v, flow_g);
+ boost::tie(e1, inserted) = add_edge(u, v, flow_g);
cap[e1] = 1;
- tie(e2, inserted) = add_edge(v, u, flow_g);
+ boost::tie(e2, inserted) = add_edge(v, u, flow_g);
cap[e2] = 1; // not sure about this
rev_edge[e1] = e2;
rev_edge[e2] = e1;
@@ -124,7 +124,7 @@
//-------------------------------------------------------------------------
// The Algorithm
- tie(p, delta) = detail::min_degree_vertex(g);
+ boost::tie(p, delta) = detail::min_degree_vertex(g);
S_star.push_back(p);
alpha_star = delta;
S.insert(p);
@@ -132,7 +132,7 @@
detail::neighbors(g, S.begin(), S.end(),
std::inserter(neighbor_S, neighbor_S.begin()));
- tie(vi, vi_end) = vertices(g);
+ boost::tie(vi, vi_end) = vertices(g);
std::set_difference(vi, vi_end,
neighbor_S.begin(), neighbor_S.end(),
std::back_inserter(non_neighbor_S));
@@ -146,7 +146,7 @@
if (alpha_S_k < alpha_star) {
alpha_star = alpha_S_k;
S_star.clear();
- for (tie(vi, vi_end) = vertices(flow_g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(flow_g); vi != vi_end; ++vi)
if (color[*vi] != Color::white())
S_star.push_back(*vi);
}
@@ -154,7 +154,7 @@
neighbor_S.insert(k);
detail::neighbors(g, k, std::inserter(neighbor_S, neighbor_S.begin()));
non_neighbor_S.clear();
- tie(vi, vi_end) = vertices(g);
+ boost::tie(vi, vi_end) = vertices(g);
std::set_difference(vi, vi_end,
neighbor_S.begin(), neighbor_S.end(),
std::back_inserter(non_neighbor_S));
@@ -169,7 +169,7 @@
degree_size_type c = 0;
for (si = S_star.begin(); si != S_star.end(); ++si) {
out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(*si, g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = out_edges(*si, g); ei != ei_end; ++ei)
if (!in_S_star[target(*ei, g)]) {
*disconnecting_set++ = *ei;
++c;
Modified: branches/release/boost/graph/edmonds_karp_max_flow.hpp
==============================================================================
--- branches/release/boost/graph/edmonds_karp_max_flow.hpp (original)
+++ branches/release/boost/graph/edmonds_karp_max_flow.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -92,8 +92,8 @@
typename graph_traits<Graph>::vertex_iterator u_iter, u_end;
typename graph_traits<Graph>::out_edge_iterator ei, e_end;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
+ for (boost::tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
+ for (boost::tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
res[*ei] = cap[*ei];
color[sink] = Color::gray();
@@ -108,7 +108,7 @@
} // while
typename property_traits<CapacityEdgeMap>::value_type flow = 0;
- for (tie(ei, e_end) = out_edges(src, g); ei != e_end; ++ei)
+ for (boost::tie(ei, e_end) = out_edges(src, g); ei != e_end; ++ei)
flow += (cap[*ei] - res[*ei]);
return flow;
} // edmonds_karp_max_flow()
Modified: branches/release/boost/graph/filtered_graph.hpp
==============================================================================
--- branches/release/boost/graph/filtered_graph.hpp (original)
+++ branches/release/boost/graph/filtered_graph.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -279,7 +279,7 @@
{
typedef filtered_graph<G, EP, VP> Graph;
typename graph_traits<G>::vertex_iterator f, l;
- tie(f, l) = vertices(g.m_g);
+ boost::tie(f, l) = vertices(g.m_g);
typedef typename Graph::vertex_iterator iter;
return std::make_pair(iter(g.m_vertex_pred, f, l),
iter(g.m_vertex_pred, l, l));
@@ -293,7 +293,7 @@
typedef filtered_graph<G, EP, VP> Graph;
typename Graph::EdgePred pred(g.m_edge_pred, g.m_vertex_pred, g);
typename graph_traits<G>::edge_iterator f, l;
- tie(f, l) = edges(g.m_g);
+ boost::tie(f, l) = edges(g.m_g);
typedef typename Graph::edge_iterator iter;
return std::make_pair(iter(pred, f, l), iter(pred, l, l));
}
@@ -308,7 +308,7 @@
//
// However, the current solution is still unsatisfactory because
// the following semantic constraints no longer hold:
- // tie(vi, viend) = vertices(g);
+ // boost::tie(vi, viend) = vertices(g);
// assert(std::distance(vi, viend) == num_vertices(g));
template <typename G, typename EP, typename VP>
@@ -349,7 +349,7 @@
typename Graph::OutEdgePred pred(g.m_edge_pred, g.m_vertex_pred, g);
typedef typename Graph::out_edge_iterator iter;
typename graph_traits<G>::out_edge_iterator f, l;
- tie(f, l) = out_edges(u, g.m_g);
+ boost::tie(f, l) = out_edges(u, g.m_g);
return std::make_pair(iter(pred, f, l), iter(pred, l, l));
}
@@ -360,7 +360,7 @@
{
typename filtered_graph<G, EP, VP>::degree_size_type n = 0;
typename filtered_graph<G, EP, VP>::out_edge_iterator f, l;
- for (tie(f, l) = out_edges(u, g); f != l; ++f)
+ for (boost::tie(f, l) = out_edges(u, g); f != l; ++f)
++n;
return n;
}
@@ -374,7 +374,7 @@
typedef filtered_graph<G, EP, VP> Graph;
typedef typename Graph::adjacency_iterator adjacency_iterator;
typename Graph::out_edge_iterator f, l;
- tie(f, l) = out_edges(u, g);
+ boost::tie(f, l) = out_edges(u, g);
return std::make_pair(adjacency_iterator(f, const_cast<Graph*>(&g)),
adjacency_iterator(l, const_cast<Graph*>(&g)));
}
@@ -389,7 +389,7 @@
typename Graph::InEdgePred pred(g.m_edge_pred, g.m_vertex_pred, g);
typedef typename Graph::in_edge_iterator iter;
typename graph_traits<G>::in_edge_iterator f, l;
- tie(f, l) = in_edges(u, g.m_g);
+ boost::tie(f, l) = in_edges(u, g.m_g);
return std::make_pair(iter(pred, f, l), iter(pred, l, l));
}
@@ -400,7 +400,7 @@
{
typename filtered_graph<G, EP, VP>::degree_size_type n = 0;
typename filtered_graph<G, EP, VP>::in_edge_iterator f, l;
- for (tie(f, l) = in_edges(u, g); f != l; ++f)
+ for (boost::tie(f, l) = in_edges(u, g); f != l; ++f)
++n;
return n;
}
@@ -413,7 +413,7 @@
{
typename graph_traits<G>::edge_descriptor e;
bool exists;
- tie(e, exists) = edge(u, v, g.m_g);
+ boost::tie(e, exists) = edge(u, v, g.m_g);
return std::make_pair(e, exists && g.m_edge_pred(e));
}
@@ -428,7 +428,7 @@
typename Graph::OutEdgePred pred(g.m_edge_pred, g.m_vertex_pred, g);
typedef typename Graph::out_edge_iterator iter;
typename graph_traits<G>::out_edge_iterator f, l;
- tie(f, l) = edge_range(u, v, g.m_g);
+ boost::tie(f, l) = edge_range(u, v, g.m_g);
return std::make_pair(iter(pred, f, l), iter(pred, l, l));
}
Modified: branches/release/boost/graph/floyd_warshall_shortest.hpp
==============================================================================
--- branches/release/boost/graph/floyd_warshall_shortest.hpp (original)
+++ branches/release/boost/graph/floyd_warshall_shortest.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -57,10 +57,10 @@
i, lasti, j, lastj, k, lastk;
- for (tie(k, lastk) = vertices(g); k != lastk; k++)
- for (tie(i, lasti) = vertices(g); i != lasti; i++)
+ for (boost::tie(k, lastk) = vertices(g); k != lastk; k++)
+ for (boost::tie(i, lasti) = vertices(g); i != lasti; i++)
if(d[*i][*k] != inf)
- for (tie(j, lastj) = vertices(g); j != lastj; j++)
+ for (boost::tie(j, lastj) = vertices(g); j != lastj; j++)
if(d[*k][*j] != inf)
d[*i][*j] =
detail::min_with_compare(d[*i][*j],
@@ -68,7 +68,7 @@
compare);
- for (tie(i, lasti) = vertices(g); i != lasti; i++)
+ for (boost::tie(i, lasti) = vertices(g); i != lasti; i++)
if (compare(d[*i][*i], zero))
return false;
return true;
@@ -110,16 +110,16 @@
typename graph_traits<VertexAndEdgeListGraph>::edge_iterator first, last;
- for(tie(firstv, lastv) = vertices(g); firstv != lastv; firstv++)
- for(tie(firstv2, lastv2) = vertices(g); firstv2 != lastv2; firstv2++)
+ for(boost::tie(firstv, lastv) = vertices(g); firstv != lastv; firstv++)
+ for(boost::tie(firstv2, lastv2) = vertices(g); firstv2 != lastv2; firstv2++)
d[*firstv][*firstv2] = inf;
- for(tie(firstv, lastv) = vertices(g); firstv != lastv; firstv++)
+ for(boost::tie(firstv, lastv) = vertices(g); firstv != lastv; firstv++)
d[*firstv][*firstv] = zero;
- for(tie(first, last) = edges(g); first != last; first++)
+ for(boost::tie(first, last) = edges(g); first != last; first++)
{
if (d[source(*first, g)][target(*first, g)] != inf) {
d[source(*first, g)][target(*first, g)] =
@@ -136,7 +136,7 @@
undirected_tag>::value;
if (is_undirected)
{
- for(tie(first, last) = edges(g); first != last; first++)
+ for(boost::tie(first, last) = edges(g); first != last; first++)
{
if (d[target(*first, g)][source(*first, g)] != inf)
d[target(*first, g)][source(*first, g)] =
Modified: branches/release/boost/graph/fruchterman_reingold.hpp
==============================================================================
--- branches/release/boost/graph/fruchterman_reingold.hpp (original)
+++ branches/release/boost/graph/fruchterman_reingold.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -78,7 +78,7 @@
{
typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator;
vertex_iterator v, end;
- for (tie(v, end) = vertices(g); v != end; ++v) {
+ for (boost::tie(v, end) = vertices(g); v != end; ++v) {
vertex_iterator u = v;
for (++u; u != end; ++u) {
apply_force(*u, *v);
@@ -116,7 +116,7 @@
std::size_t rows = std::size_t(topology.extent()[1] / two_k + 1.);
buckets_t buckets(rows * columns);
vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = vertices(g); v != v_end; ++v) {
std::size_t column =
std::size_t((get(position, *v)[0] + topology.extent()[0] / 2) / two_k);
std::size_t row =
@@ -299,13 +299,13 @@
do {
// Calculate repulsive forces
vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(g); v != v_end; ++v)
+ for (boost::tie(v, v_end) = vertices(g); v != v_end; ++v)
put(displacement, *v, typename Topology::point_difference_type());
force_pairs(g, apply_force);
// Calculate attractive forces
edge_iterator e, e_end;
- for (tie(e, e_end) = edges(g); e != e_end; ++e) {
+ for (boost::tie(e, e_end) = edges(g); e != e_end; ++e) {
vertex_descriptor v = source(*e, g);
vertex_descriptor u = target(*e, g);
Modified: branches/release/boost/graph/graph_stats.hpp
==============================================================================
--- branches/release/boost/graph/graph_stats.hpp (original)
+++ branches/release/boost/graph/graph_stats.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -77,7 +77,7 @@
BGL_FORALL_VERTICES_T( v, g, Graph ) {
std::list<vertex_type> front_neighbors;
a_iterator_type a_iter, a_end;
- for( tie( a_iter, a_end ) = adjacent_vertices( v, g );
+ for( boost::tie( a_iter, a_end ) = adjacent_vertices( v, g );
a_iter != a_end; ++a_iter ) {
front_neighbors.push_back( *a_iter );
}
Modified: branches/release/boost/graph/graph_utility.hpp
==============================================================================
--- branches/release/boost/graph/graph_utility.hpp (original)
+++ branches/release/boost/graph/graph_utility.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -157,11 +157,11 @@
void print_in_edges(const IncidenceGraph& G, Name name)
{
typename graph_traits<IncidenceGraph>::vertex_iterator ui,ui_end;
- for (tie(ui,ui_end) = vertices(G); ui != ui_end; ++ui) {
+ for (boost::tie(ui,ui_end) = vertices(G); ui != ui_end; ++ui) {
std::cout << get(name,*ui) << " <-- ";
typename graph_traits<IncidenceGraph>
::in_edge_iterator ei, ei_end;
- for(tie(ei,ei_end) = in_edges(*ui,G); ei != ei_end; ++ei)
+ for(boost::tie(ei,ei_end) = in_edges(*ui,G); ei != ei_end; ++ei)
std::cout << get(name,source(*ei,G)) << " ";
std::cout << std::endl;
}
@@ -171,11 +171,11 @@
void print_graph_dispatch(const IncidenceGraph& G, Name name, directed_tag)
{
typename graph_traits<IncidenceGraph>::vertex_iterator ui,ui_end;
- for (tie(ui,ui_end) = vertices(G); ui != ui_end; ++ui) {
+ for (boost::tie(ui,ui_end) = vertices(G); ui != ui_end; ++ui) {
std::cout << get(name,*ui) << " --> ";
typename graph_traits<IncidenceGraph>
::out_edge_iterator ei, ei_end;
- for(tie(ei,ei_end) = out_edges(*ui,G); ei != ei_end; ++ei)
+ for(boost::tie(ei,ei_end) = out_edges(*ui,G); ei != ei_end; ++ei)
std::cout << get(name,target(*ei,G)) << " ";
std::cout << std::endl;
}
@@ -184,11 +184,11 @@
void print_graph_dispatch(const IncidenceGraph& G, Name name, undirected_tag)
{
typename graph_traits<IncidenceGraph>::vertex_iterator ui,ui_end;
- for (tie(ui,ui_end) = vertices(G); ui != ui_end; ++ui) {
+ for (boost::tie(ui,ui_end) = vertices(G); ui != ui_end; ++ui) {
std::cout << get(name,*ui) << " <--> ";
typename graph_traits<IncidenceGraph>
::out_edge_iterator ei, ei_end;
- for(tie(ei,ei_end) = out_edges(*ui,G); ei != ei_end; ++ei)
+ for(boost::tie(ei,ei_end) = out_edges(*ui,G); ei != ei_end; ++ei)
std::cout << get(name,target(*ei,G)) << " ";
std::cout << std::endl;
}
@@ -209,7 +209,7 @@
void print_edges(const EdgeListGraph& G, Name name)
{
typename graph_traits<EdgeListGraph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(G); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = edges(G); ei != ei_end; ++ei)
std::cout << "(" << get(name, source(*ei, G))
<< "," << get(name, target(*ei, G)) << ") ";
std::cout << std::endl;
@@ -219,7 +219,7 @@
void print_edges2(const EdgeListGraph& G, VertexName vname, EdgeName ename)
{
typename graph_traits<EdgeListGraph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(G); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = edges(G); ei != ei_end; ++ei)
std::cout << get(ename, *ei) << "(" << get(vname, source(*ei, G))
<< "," << get(vname, target(*ei, G)) << ") ";
std::cout << std::endl;
@@ -229,7 +229,7 @@
void print_vertices(const VertexListGraph& G, Name name)
{
typename graph_traits<VertexListGraph>::vertex_iterator vi,vi_end;
- for (tie(vi,vi_end) = vertices(G); vi != vi_end; ++vi)
+ for (boost::tie(vi,vi_end) = vertices(G); vi != vi_end; ++vi)
std::cout << get(name,*vi) << " ";
std::cout << std::endl;
}
@@ -241,21 +241,21 @@
edge_descriptor;
typename graph_traits<Graph>::adjacency_iterator vi, viend,
adj_found;
- tie(vi, viend) = adjacent_vertices(a, g);
+ boost::tie(vi, viend) = adjacent_vertices(a, g);
adj_found = std::find(vi, viend, b);
if (adj_found == viend)
return false;
typename graph_traits<Graph>::out_edge_iterator oi, oiend,
out_found;
- tie(oi, oiend) = out_edges(a, g);
+ boost::tie(oi, oiend) = out_edges(a, g);
out_found = std::find_if(oi, oiend, incident_to(b, g));
if (out_found == oiend)
return false;
typename graph_traits<Graph>::in_edge_iterator ii, iiend,
in_found;
- tie(ii, iiend) = in_edges(b, g);
+ boost::tie(ii, iiend) = in_edges(b, g);
in_found = std::find_if(ii, iiend, incident_from(a, g));
if (in_found == iiend)
return false;
@@ -268,7 +268,7 @@
typedef typename graph_traits<Graph>::edge_descriptor
edge_descriptor;
typename graph_traits<Graph>::adjacency_iterator vi, viend, found;
- tie(vi, viend) = adjacent_vertices(a, g);
+ boost::tie(vi, viend) = adjacent_vertices(a, g);
#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300 && defined(__SGI_STL_PORT)
// Getting internal compiler error with std::find()
found = viend;
@@ -285,7 +285,7 @@
typename graph_traits<Graph>::out_edge_iterator oi, oiend,
out_found;
- tie(oi, oiend) = out_edges(a, g);
+ boost::tie(oi, oiend) = out_edges(a, g);
#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300 && defined(__SGI_STL_PORT)
// Getting internal compiler error with std::find()
@@ -318,7 +318,7 @@
bool in_edge_set(Graph& g, Edge e)
{
typename Graph::edge_iterator ei, ei_end, found;
- tie(ei, ei_end) = edges(g);
+ boost::tie(ei, ei_end) = edges(g);
found = std::find(ei, ei_end, e);
return found != ei_end;
}
@@ -327,7 +327,7 @@
bool in_vertex_set(Graph& g, Vertex v)
{
typename Graph::vertex_iterator vi, vi_end, found;
- tie(vi, vi_end) = vertices(g);
+ boost::tie(vi, vi_end) = vertices(g);
found = std::find(vi, vi_end, v);
return found != vi_end;
}
@@ -336,7 +336,7 @@
bool in_edge_set(Graph& g, Vertex u, Vertex v)
{
typename Graph::edge_iterator ei, ei_end;
- for (tie(ei,ei_end) = edges(g); ei != ei_end; ++ei)
+ for (boost::tie(ei,ei_end) = edges(g); ei != ei_end; ++ei)
if (source(*ei,g) == u && target(*ei,g) == v)
return true;
return false;
@@ -380,10 +380,10 @@
typedef color_traits<ColorValue> Color;
typename graph_traits<VertexListGraph>::vertex_iterator
ui, ui_end, vi, vi_end, ci, ci_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui)
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
if (*ui != *vi) {
- for (tie(ci, ci_end) = vertices(g); ci != ci_end; ++ci)
+ for (boost::tie(ci, ci_end) = vertices(g); ci != ci_end; ++ci)
put(color, *ci, Color::white());
if (! is_reachable(*ui, *vi, g, color))
return false;
Modified: branches/release/boost/graph/graphml.hpp
==============================================================================
--- branches/release/boost/graph/graphml.hpp (original)
+++ branches/release/boost/graph/graphml.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -296,7 +296,7 @@
typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator;
vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(g); v != v_end; ++v)
+ for (boost::tie(v, v_end) = vertices(g); v != v_end; ++v)
{
out << " <node id=\"n" << get(vertex_index, *v) << "\">\n";
// Output data
@@ -314,7 +314,7 @@
typedef typename graph_traits<Graph>::edge_iterator edge_iterator;
edge_iterator e, e_end;
typename graph_traits<Graph>::edges_size_type edge_count = 0;
- for (tie(e, e_end) = edges(g); e != e_end; ++e)
+ for (boost::tie(e, e_end) = edges(g); e != e_end; ++e)
{
out << " <edge id=\"e" << edge_count++ << "\" source=\"n"
<< get(vertex_index, source(*e, g)) << "\" target=\"n"
Modified: branches/release/boost/graph/graphviz.hpp
==============================================================================
--- branches/release/boost/graph/graphviz.hpp (original)
+++ branches/release/boost/graph/graphviz.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -26,6 +26,9 @@
#include <boost/graph/overloading.hpp>
#include <boost/graph/dll_import_export.hpp>
#include <boost/spirit/include/classic_multi_pass.hpp>
+#include <boost/lexical_cast.hpp>
+#include <boost/algorithm/string/replace.hpp>
+#include <boost/xpressive/xpressive_static.hpp>
namespace boost {
@@ -56,13 +59,25 @@
}
};
+ template <typename T>
+ inline std::string escape_dot_string(const T& obj) {
+ using namespace boost::xpressive;
+ static sregex valid_unquoted_id = (((alpha | '_') >> *_w) | (!as_xpr('-') >> (('.' >> *_d) | (+_d >> !('.' >> *_d)))));
+ std::string s(boost::lexical_cast<std::string>(obj));
+ if (regex_match(s, valid_unquoted_id)) {
+ return s;
+ } else {
+ return "\"" + regex_replace(s, sregex(as_xpr('"')), "\\\"") + "\"";
+ }
+ }
+
template <class Name>
class label_writer {
public:
label_writer(Name _name) : name(_name) {}
template <class VertexOrEdge>
void operator()(std::ostream& out, const VertexOrEdge& v) const {
- out << "[label=\"" << get(name, v) << "\"]";
+ out << "[label=" << escape_dot_string(get(name, v)) << "]";
}
private:
Name name;
@@ -93,7 +108,7 @@
iend = attr.end();
while ( i != iend ) {
- out << i->first << "=\"" << i->second << "\"";
+ out << i->first << "=" << escape_dot_string(i->second);
++i;
if ( i != iend )
out << ", ";
@@ -239,20 +254,20 @@
typedef typename graph_traits<Graph>::directed_category cat_type;
typedef graphviz_io_traits<cat_type> Traits;
std::string name = "G";
- out << Traits::name() << " " << name << " {" << std::endl;
+ out << Traits::name() << " " << escape_dot_string(name) << " {" << std::endl;
gpw(out); //print graph properties
typename graph_traits<Graph>::vertex_iterator i, end;
- for(tie(i,end) = vertices(g); i != end; ++i) {
- out << get(vertex_id, *i);
+ for(boost::tie(i,end) = vertices(g); i != end; ++i) {
+ out << escape_dot_string(get(vertex_id, *i));
vpw(out, *i); //print vertex attributes
out << ";" << std::endl;
}
typename graph_traits<Graph>::edge_iterator ei, edge_end;
- for(tie(ei, edge_end) = edges(g); ei != edge_end; ++ei) {
- out << get(vertex_id, source(*ei, g)) << Traits::delimiter() << get(vertex_id, target(*ei, g)) << " ";
+ for(boost::tie(ei, edge_end) = edges(g); ei != edge_end; ++ei) {
+ out << escape_dot_string(get(vertex_id, source(*ei, g))) << Traits::delimiter() << escape_dot_string(get(vertex_id, target(*ei, g))) << " ";
epw(out, *ei); //print edge attributes
out << ";" << std::endl;
}
@@ -324,7 +339,7 @@
else
out << "subgraph";
- out << " " << g_name << " {" << std::endl;
+ out << " " << escape_dot_string(g_name) << " {" << std::endl;
typename Graph::const_children_iterator i_child, j_child;
@@ -346,7 +361,7 @@
#endif
//print subgraph
- for ( tie(i_child,j_child) = g.children();
+ for ( boost::tie(i_child,j_child) = g.children();
i_child != j_child; ++i_child )
write_graphviz_subgraph(out, *i_child, vertex_marker, edge_marker,
vertex_id);
@@ -356,12 +371,12 @@
typename graph_traits<Graph>::vertex_iterator i, end;
typename graph_traits<Graph>::edge_iterator ei, edge_end;
- for(tie(i,end) = vertices(g); i != end; ++i) {
+ for(boost::tie(i,end) = vertices(g); i != end; ++i) {
Vertex v = g.local_to_global(*i);
int pos = get(vertex_id, v);
if ( vertex_marker[pos] ) {
vertex_marker[pos] = false;
- out << pos;
+ out << escape_dot_string(pos);
#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300
typedef typename property_map<Graph, vertex_attribute_t>::const_type
VertexAttributeMap;
@@ -375,14 +390,14 @@
}
}
- for (tie(ei, edge_end) = edges(g); ei != edge_end; ++ei) {
+ for (boost::tie(ei, edge_end) = edges(g); ei != edge_end; ++ei) {
Vertex u = g.local_to_global(source(*ei,g)),
v = g.local_to_global(target(*ei, g));
int pos = get(get(edge_index, g.root()), g.local_to_global(*ei));
if ( edge_marker[pos] ) {
edge_marker[pos] = false;
- out << get(vertex_id, u) << " " << Traits::delimiter()
- << " " << get(vertex_id, v);
+ out << escape_dot_string(get(vertex_id, u)) << " " << Traits::delimiter()
+ << " " << escape_dot_string(get(vertex_id, v));
#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300
typedef typename property_map<Graph, edge_attribute_t>::const_type
EdgeAttributeMap;
@@ -449,6 +464,8 @@
vertex_id);
}
+#if 0
+ // This interface has not worked for a long time
typedef std::map<std::string, std::string> GraphvizAttrList;
typedef property<vertex_attribute_t, GraphvizAttrList>
@@ -478,15 +495,15 @@
GraphvizGraphProperty> >
GraphvizGraph;
-
// These four require linking the BGL-Graphviz library: libbgl-viz.a
// from the /src directory.
// Library has not existed for a while
- // extern void read_graphviz(const std::string& file, GraphvizDigraph& g);
- // extern void read_graphviz(FILE* file, GraphvizDigraph& g);
- //
- // extern void read_graphviz(const std::string& file, GraphvizGraph& g);
- // extern void read_graphviz(FILE* file, GraphvizGraph& g);
+ extern void read_graphviz(const std::string& file, GraphvizDigraph& g);
+ extern void read_graphviz(FILE* file, GraphvizDigraph& g);
+
+ extern void read_graphviz(const std::string& file, GraphvizGraph& g);
+ extern void read_graphviz(FILE* file, GraphvizGraph& g);
+#endif
class dynamic_properties_writer
{
@@ -504,7 +521,7 @@
else out << ", ";
first = false;
- out << i->first << "=\"" << i->second->get_string(key) << "\"";
+ out << i->first << "=" << escape_dot_string(i->second->get_string(key));
}
}
@@ -534,7 +551,7 @@
else out << ", ";
first = false;
- out << i->first << "=\"" << i->second->get_string(key) << "\"";
+ out << i->first << "=" << escape_dot_string(i->second->get_string(key));
}
}
@@ -576,22 +593,22 @@
template<typename Graph>
inline void
- write_graphviz(std::ostream& out, const Graph& g,
- const dynamic_properties& dp,
- const std::string& node_id = "node_id"
- BOOST_GRAPH_ENABLE_IF_MODELS_PARM(Graph,vertex_list_graph_tag))
+ write_graphviz_dp(std::ostream& out, const Graph& g,
+ const dynamic_properties& dp,
+ const std::string& node_id = "node_id"
+ BOOST_GRAPH_ENABLE_IF_MODELS_PARM(Graph,vertex_list_graph_tag))
{
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- write_graphviz(out, g, dp, node_id,
- graph::detail::node_id_property_map<Vertex>(dp, node_id));
+ write_graphviz_dp(out, g, dp, node_id,
+ graph::detail::node_id_property_map<Vertex>(dp, node_id));
}
template<typename Graph, typename VertexID>
void
- write_graphviz(std::ostream& out, const Graph& g,
- const dynamic_properties& dp, const std::string& node_id,
- VertexID id
- BOOST_GRAPH_ENABLE_IF_MODELS_PARM(Graph,vertex_list_graph_tag))
+ write_graphviz_dp(std::ostream& out, const Graph& g,
+ const dynamic_properties& dp, const std::string& node_id,
+ VertexID id
+ BOOST_GRAPH_ENABLE_IF_MODELS_PARM(Graph,vertex_list_graph_tag))
{
write_graphviz
(out, g,
Modified: branches/release/boost/graph/grid_graph.hpp
==============================================================================
--- branches/release/boost/graph/grid_graph.hpp (original)
+++ branches/release/boost/graph/grid_graph.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -101,6 +101,8 @@
typedef typename graph_traits<Graph>::vertex_descriptor result_type;
+ grid_graph_vertex_at() : m_graph(0) {}
+
grid_graph_vertex_at(const Graph* graph) :
m_graph(graph) { }
@@ -124,6 +126,8 @@
public:
typedef typename graph_traits<Graph>::edge_descriptor result_type;
+ grid_graph_out_edge_at() : m_vertex(), m_graph(0) {}
+
grid_graph_out_edge_at(vertex_descriptor source_vertex,
const Graph* graph) :
m_vertex(source_vertex),
@@ -150,6 +154,8 @@
public:
typedef typename graph_traits<Graph>::edge_descriptor result_type;
+ grid_graph_in_edge_at() : m_vertex(), m_graph(0) {}
+
grid_graph_in_edge_at(vertex_descriptor target_vertex,
const Graph* graph) :
m_vertex(target_vertex),
@@ -172,6 +178,8 @@
typedef typename graph_traits<Graph>::edge_descriptor result_type;
+ grid_graph_edge_at() : m_graph(0) {}
+
grid_graph_edge_at(const Graph* graph) :
m_graph(graph) { }
Modified: branches/release/boost/graph/howard_cycle_ratio.hpp
==============================================================================
--- branches/release/boost/graph/howard_cycle_ratio.hpp (original)
+++ branches/release/boost/graph/howard_cycle_ratio.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -187,9 +187,9 @@
float_t cz = (std::numeric_limits<float_t>::max)(); //Closest to zero value
float_t s = 0;
const float_t eps_ = std::numeric_limits<float_t>::epsilon();
- for (tie(vi, vie) = vertices(m_g); vi != vie; ++vi)
+ for (boost::tie(vi, vie) = vertices(m_g); vi != vie; ++vi)
{
- for (tie(oei, oeie) = out_edges(*vi, m_g); oei != oeie; ++oei)
+ for (boost::tie(oei, oeie) = out_edges(*vi, m_g); oei != oeie; ++oei)
{
s += std::abs(m_ew1m[*oei]);
float_t a = std::abs(m_ew2m[*oei]);
@@ -211,9 +211,9 @@
m_sink = graph_traits<Graph>().null_vertex();
typename graph_traits<Graph>::vertex_iterator vi, vie;
typename graph_traits<Graph>::out_edge_iterator oei, oeie;
- for ( tie(vi, vie) = vertices(m_g); vi != vie; ++vi )
+ for ( boost::tie(vi, vie) = vertices(m_g); vi != vie; ++vi )
{
- tie(oei, oeie) = out_edges(*vi, m_g);
+ boost::tie(oei, oeie) = out_edges(*vi, m_g);
typename graph_traits<Graph>::out_edge_iterator mei =
std::max_element(oei, oeie,
boost::bind(m_cmp,
@@ -331,7 +331,7 @@
std::fill(m_col_bfs.begin(), m_col_bfs.end(), my_white);
color_map_t vcm_ = color_map_t(m_col_bfs.begin(), m_vim);
typename graph_traits<Graph>::vertex_iterator uv_itr, vie;
- tie(uv_itr, vie) = vertices(m_g);
+ boost::tie(uv_itr, vie) = vertices(m_g);
float_t mcr = m_bound;
while ( (uv_itr = std::find_if(uv_itr, vie,
boost::bind(std::equal_to<my_color_type>(),
@@ -373,11 +373,11 @@
typename graph_traits<Graph>::vertex_iterator vi, vie;
typename graph_traits<Graph>::out_edge_iterator oei, oeie;
const float_t eps_ = FloatTraits::epsilon();
- for (tie(vi, vie) = vertices(m_g); vi != vie; ++vi)
+ for (boost::tie(vi, vie) = vertices(m_g); vi != vie; ++vi)
{
if (!m_badv[*vi])
{
- for (tie(oei, oeie) = out_edges(*vi, m_g); oei != oeie; ++oei)
+ for (boost::tie(oei, oeie) = out_edges(*vi, m_g); oei != oeie; ++oei)
{
vertex_t t = target(*oei, m_g);
//Current distance from *vi to some vertex
Modified: branches/release/boost/graph/incremental_components.hpp
==============================================================================
--- branches/release/boost/graph/incremental_components.hpp (original)
+++ branches/release/boost/graph/incremental_components.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -18,6 +18,7 @@
#include <boost/iterator/counting_iterator.hpp>
#include <boost/make_shared.hpp>
#include <boost/pending/disjoint_sets.hpp>
+#include <iterator>
namespace boost {
@@ -54,7 +55,7 @@
void incremental_components(EdgeListGraph& g, DisjointSets& ds)
{
typename graph_traits<EdgeListGraph>::edge_iterator e, end;
- for (tie(e,end) = edges(g); e != end; ++e)
+ for (boost::tie(e,end) = edges(g); e != end; ++e)
ds.union_set(source(*e,g),target(*e,g));
}
@@ -90,7 +91,7 @@
{
typename graph_traits<VertexListGraph>
::vertex_iterator v, vend;
- for (tie(v, vend) = vertices(G); v != vend; ++v)
+ for (boost::tie(v, vend) = vertices(G); v != vend; ++v)
ds.make_set(*v);
}
@@ -175,7 +176,7 @@
void build_index_lists(ParentIterator parent_start,
const ElementIndexMap& index_map) {
- typedef typename ParentIterator::value_type Element;
+ typedef typename std::iterator_traits<ParentIterator>::value_type Element;
typename IndexContainer::iterator index_list =
m_index_list->begin();
Modified: branches/release/boost/graph/johnson_all_pairs_shortest.hpp
==============================================================================
--- branches/release/boost/graph/johnson_all_pairs_shortest.hpp (original)
+++ branches/release/boost/graph/johnson_all_pairs_shortest.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -74,21 +74,21 @@
{
typename Traits1::vertex_iterator v, v_end;
int i = 1;
- for (tie(v, v_end) = vertices(g1); v != v_end; ++v, ++i) {
+ for (boost::tie(v, v_end) = vertices(g1); v != v_end; ++v, ++i) {
typename Traits2::edge_descriptor e; bool z;
- tie(e, z) = add_edge(s, get(id1, *v) + 1, g2);
+ boost::tie(e, z) = add_edge(s, get(id1, *v) + 1, g2);
put(w, e, zero);
verts1[i] = *v;
}
typename Traits1::edge_iterator e, e_end;
- for (tie(e, e_end) = edges(g1); e != e_end; ++e) {
+ for (boost::tie(e, e_end) = edges(g1); e != e_end; ++e) {
typename Traits2::edge_descriptor e2; bool z;
- tie(e2, z) = add_edge(get(id1, source(*e, g1)) + 1,
- get(id1, target(*e, g1)) + 1, g2);
+ boost::tie(e2, z) = add_edge(get(id1, source(*e, g1)) + 1,
+ get(id1, target(*e, g1)) + 1, g2);
put(w, e2, get(w1, *e));
if (is_undirected) {
- tie(e2, z) = add_edge(get(id1, target(*e, g1)) + 1,
- get(id1, source(*e, g1)) + 1, g2);
+ boost::tie(e2, z) = add_edge(get(id1, target(*e, g1)) + 1,
+ get(id1, source(*e, g1)) + 1, g2);
put(w, e2, get(w1, *e));
}
}
@@ -97,7 +97,7 @@
typename Traits2::edge_iterator e, e_end;
shared_array_property_map<DT,VertexID2> h(num_vertices(g2), id2);
- for (tie(v, v_end) = vertices(g2); v != v_end; ++v)
+ for (boost::tie(v, v_end) = vertices(g2); v != v_end; ++v)
put(d, *v, inf);
put(d, s, zero);
@@ -106,19 +106,19 @@
dummy_property_map pred; bellman_visitor<> bvis;
if (bellman_ford_shortest_paths
(g2, num_vertices(g2), w, pred, d, combine, compare, bvis)) {
- for (tie(v, v_end) = vertices(g2); v != v_end; ++v)
+ for (boost::tie(v, v_end) = vertices(g2); v != v_end; ++v)
put(h, *v, get(d, *v));
// Reweight the edges to remove negatives
- for (tie(e, e_end) = edges(g2); e != e_end; ++e) {
+ for (boost::tie(e, e_end) = edges(g2); e != e_end; ++e) {
typename Traits2::vertex_descriptor a = source(*e, g2),
b = target(*e, g2);
put(w_hat, *e, combine(get(w, *e), (get(h, a) - get(h, b))));
}
- for (tie(u, u_end) = vertices(g2); u != u_end; ++u) {
+ for (boost::tie(u, u_end) = vertices(g2); u != u_end; ++u) {
dijkstra_visitor<> dvis;
dijkstra_shortest_paths
(g2, *u, pred, d, w_hat, id2, compare, combine, inf, zero,dvis);
- for (tie(v, v_end) = vertices(g2); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = vertices(g2); v != v_end; ++v) {
if (*u != s && *v != s) {
typename Traits1::vertex_descriptor u1, v1;
u1 = verts1[get(id2, *u)]; v1 = verts1[get(id2, *v)];
Modified: branches/release/boost/graph/king_ordering.hpp
==============================================================================
--- branches/release/boost/graph/king_ordering.hpp (original)
+++ branches/release/boost/graph/king_ordering.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -59,7 +59,7 @@
for( ; rbegin != rend; rend--){
percolate_down<Vertex>(i);
w = (*Qptr)[index_begin+i];
- for (tie(ei, ei_end) = out_edges(w, g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(w, g); ei != ei_end; ++ei) {
v = target(*ei, g);
put(degree, v, get(degree, v) - 1);
@@ -212,7 +212,7 @@
queue Q;
// Copy degree to pseudo_degree
// initialize the color map
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui){
+ for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui){
put(pseudo_degree, *ui, get(degree, *ui));
put(color, *ui, Color::white());
}
Modified: branches/release/boost/graph/kolmogorov_max_flow.hpp
==============================================================================
--- branches/release/boost/graph/kolmogorov_max_flow.hpp (original)
+++ branches/release/boost/graph/kolmogorov_max_flow.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -32,6 +32,10 @@
#ifndef BOOST_KOLMOGOROV_MAX_FLOW_HPP
#define BOOST_KOLMOGOROV_MAX_FLOW_HPP
+#warning \
+ The kolmogorov_max_flow.hpp header is deprecated and will be removed \
+ in Boost 1.46. Use boykov_kolmogorov_max_flow.hpp instead.
+
#include <boost/config.hpp>
#include <cassert>
#include <vector>
@@ -105,13 +109,13 @@
m_last_grow_vertex(graph_traits<Graph>::null_vertex()){
// initialize the color-map with gray-values
vertex_iterator vi, v_end;
- for(tie(vi, v_end) = vertices(m_g); vi != v_end; ++vi){
+ for(boost::tie(vi, v_end) = vertices(m_g); vi != v_end; ++vi){
set_tree(*vi, tColorTraits::gray());
}
// Initialize flow to zero which means initializing
// the residual capacity equal to the capacity
edge_iterator ei, e_end;
- for(tie(ei, e_end) = edges(m_g); ei != e_end; ++ei) {
+ for(boost::tie(ei, e_end) = edges(m_g); ei != e_end; ++ei) {
m_res_cap_map[*ei] = m_cap_map[*ei];
assert(m_rev_edge_map[m_rev_edge_map[*ei]] == *ei); //check if the reverse edge map is build up properly
}
@@ -121,7 +125,7 @@
m_time_map[m_source] = 1;
m_time_map[m_sink] = 1;
}
-
+
~kolmogorov(){}
tEdgeVal max_flow(){
@@ -131,10 +135,10 @@
while(true){
bool path_found;
edge_descriptor connecting_edge;
- tie(connecting_edge, path_found) = grow(); //find a path from source to sink
+ boost::tie(connecting_edge, path_found) = grow(); //find a path from source to sink
if(!path_found){
//we're finished, no more paths were found
- break;
+ break;
}
++m_time;
augment(connecting_edge); //augment that path
@@ -151,7 +155,7 @@
//this improves especially graphcuts for segmentation, as most of the nodes have source/sink connects
//but shouldn't have an impact on other maxflow problems (this is done in grow() anyway)
out_edge_iterator ei, e_end;
- for(tie(ei, e_end) = out_edges(m_source, m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(m_source, m_g); ei != e_end; ++ei){
edge_descriptor from_source = *ei;
vertex_descriptor current_node = target(from_source, m_g);
if(current_node == m_sink){
@@ -162,7 +166,7 @@
}
edge_descriptor to_sink;
bool is_there;
- tie(to_sink, is_there) = lookup_edge(current_node, m_sink, m_g);
+ boost::tie(to_sink, is_there) = lookup_edge(current_node, m_sink, m_g);
if(is_there){
tEdgeVal cap_from_source = m_res_cap_map[from_source];
tEdgeVal cap_to_sink = m_res_cap_map[to_sink];
@@ -199,7 +203,7 @@
add_active_node(current_node);
}
}
- for(tie(ei, e_end) = out_edges(m_sink, m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(m_sink, m_g); ei != e_end; ++ei){
edge_descriptor to_sink = m_rev_edge_map[*ei];
vertex_descriptor current_node = source(to_sink, m_g);
if(m_res_cap_map[to_sink]){
@@ -213,7 +217,7 @@
}
/**
- * returns a pair of an edge and a boolean. if the bool is true, the edge is a connection of a found path from s->t , read "the link" and
+ * returns a pair of an edge and a boolean. if the bool is true, the edge is a connection of a found path from s->t , read "the link" and
* source(returnVal, m_g) is the end of the path found in the source-tree
* target(returnVal, m_g) is the beginning of the path found in the sink-tree
*/
@@ -221,14 +225,14 @@
assert(m_orphans.empty());
vertex_descriptor current_node;
while((current_node = get_next_active_node()) != graph_traits<Graph>::null_vertex()){ //if there is one
- assert(get_tree(current_node) != tColorTraits::gray() && (has_parent(current_node) || current_node==m_source || current_node==m_sink));
- if(get_tree(current_node) == tColorTraits::black()){
+ assert(get_tree(current_node) != tColorTraits::gray() && (has_parent(current_node) || current_node==m_source || current_node==m_sink));
+ if(get_tree(current_node) == tColorTraits::black()){
//source tree growing
out_edge_iterator ei, e_end;
if(current_node != m_last_grow_vertex){
m_last_grow_vertex = current_node;
- tie(m_last_grow_edge_it, m_last_grow_edge_end) = out_edges(current_node, m_g);
- }
+ boost::tie(m_last_grow_edge_it, m_last_grow_edge_end) = out_edges(current_node, m_g);
+ }
for(; m_last_grow_edge_it != m_last_grow_edge_end; ++m_last_grow_edge_it){
edge_descriptor out_edge = *m_last_grow_edge_it;
if(m_res_cap_map[out_edge] > 0){ //check if we have capacity left on this edge
@@ -245,7 +249,7 @@
m_dist_map[other_node] = m_dist_map[current_node] + 1;
m_time_map[other_node] = m_time_map[current_node];
}
- } else{
+ } else{
assert(get_tree(other_node)==tColorTraits::white());
//kewl, found a path from one to the other search tree, return the connecting edge in src->sink dir
return std::make_pair(out_edge, true);
@@ -258,7 +262,7 @@
out_edge_iterator ei, e_end;
if(current_node != m_last_grow_vertex){
m_last_grow_vertex = current_node;
- tie(m_last_grow_edge_it, m_last_grow_edge_end) = out_edges(current_node, m_g);
+ boost::tie(m_last_grow_edge_it, m_last_grow_edge_end) = out_edges(current_node, m_g);
}
for(; m_last_grow_edge_it != m_last_grow_edge_end; ++m_last_grow_edge_it){
edge_descriptor in_edge = m_rev_edge_map[*m_last_grow_edge_it];
@@ -297,7 +301,7 @@
* target(e, m_g) is the beginning of the path found in the sink-tree
* this phase generates orphans on satured edges, if the attached verts are from different search-trees
* orphans are ordered in distance to sink/source. first the farest from the source are front_inserted into the orphans list,
- * and after that the sink-tree-orphans are front_inserted. when going to adoption stage the orphans are popped_front, and so we process the nearest
+ * and after that the sink-tree-orphans are front_inserted. when going to adoption stage the orphans are popped_front, and so we process the nearest
* verts to the terminals first
*/
void augment(edge_descriptor e){
@@ -381,12 +385,12 @@
current_node = m_child_orphans.front();
m_child_orphans.pop();
}
- if(get_tree(current_node) == tColorTraits::black()){
+ if(get_tree(current_node) == tColorTraits::black()){
//we're in the source-tree
tDistanceVal min_distance = (std::numeric_limits<tDistanceVal>::max)();
edge_descriptor new_parent_edge;
out_edge_iterator ei, e_end;
- for(tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
const edge_descriptor in_edge = m_rev_edge_map[*ei];
assert(target(in_edge, m_g) == current_node); //we should be the target of this edge
if(m_res_cap_map[in_edge] > 0){
@@ -405,7 +409,7 @@
m_time_map[current_node] = m_time;
} else{
m_time_map[current_node] = 0;
- for(tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
edge_descriptor in_edge = m_rev_edge_map[*ei];
vertex_descriptor other_node = source(in_edge, m_g);
if(get_tree(other_node) == tColorTraits::black() && has_parent(other_node)){
@@ -429,7 +433,7 @@
out_edge_iterator ei, e_end;
edge_descriptor new_parent_edge;
tDistanceVal min_distance = (std::numeric_limits<tDistanceVal>::max)();
- for(tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
const edge_descriptor out_edge = *ei;
if(m_res_cap_map[out_edge] > 0){
const vertex_descriptor other_node = target(out_edge, m_g);
@@ -446,10 +450,10 @@
m_time_map[current_node] = m_time;
} else{
m_time_map[current_node] = 0;
- for(tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(current_node, m_g); ei != e_end; ++ei){
const edge_descriptor out_edge = *ei;
const vertex_descriptor other_node = target(out_edge, m_g);
- if(get_tree(other_node) == tColorTraits::white() && has_parent(other_node)){
+ if(get_tree(other_node) == tColorTraits::white() && has_parent(other_node)){
if(m_res_cap_map[out_edge] > 0){
add_active_node(other_node);
}
@@ -468,7 +472,7 @@
/**
* return next active vertex if there is one, otherwise a null_vertex
- */
+ */
inline vertex_descriptor get_next_active_node(){
while(true){
if(m_active_nodes.empty())
@@ -487,7 +491,7 @@
/**
* adds v as an active vertex, but only if its not in the list already
- */
+ */
inline void add_active_node(vertex_descriptor v){
assert(get_tree(v) != tColorTraits::gray());
if(m_in_active_list_map[v]){
@@ -509,8 +513,8 @@
}
/**
- * removes a vertex from the queue of active nodes (actually this does nothing,
- * but checks if this node has no parent edge, as this is the criteria for beeing no more active)
+ * removes a vertex from the queue of active nodes (actually this does nothing,
+ * but checks if this node has no parent edge, as this is the criteria for beeing no more active)
*/
inline void remove_active_node(vertex_descriptor v){
assert(!has_parent(v));
@@ -541,12 +545,12 @@
* returns true if the edge stored in m_pre_map[v] is a valid entry
*/
inline bool has_parent(vertex_descriptor v) const{
- return m_has_parent_map[v];
+ return m_has_parent_map[v];
}
/**
- * sets edge to parent vertex of v;
- */
+ * sets edge to parent vertex of v;
+ */
inline void set_edge_to_parent(vertex_descriptor v, edge_descriptor f_edge_to_parent){
assert(m_res_cap_map[f_edge_to_parent] > 0);
m_pre_map[v] = f_edge_to_parent;
@@ -576,7 +580,7 @@
}
if(current_vertex == m_sink){
m_time_map[m_sink] = m_time;
- break;
+ break;
}
if(has_parent(current_vertex)){
//it has a parent, so get it
@@ -673,12 +677,12 @@
out_edge_iterator m_last_grow_edge_end;
};
} //namespace detail
-
+
/**
* non-named-parameter version, given everything
* this is the catch all version
- */
- template <class Graph, class CapacityEdgeMap, class ResidualCapacityEdgeMap, class ReverseEdgeMap,
+ */
+ template <class Graph, class CapacityEdgeMap, class ResidualCapacityEdgeMap, class ReverseEdgeMap,
class PredecessorMap, class ColorMap, class DistanceMap, class IndexMap>
typename property_traits<CapacityEdgeMap>::value_type
kolmogorov_max_flow
@@ -738,7 +742,7 @@
make_iterator_property_map(distance_vec.begin(), idx),
idx, src, sink);
}
-
+
/**
* non-named-parameter version, some given: capacity, residual_capacity, reverse_edges, color_map and an index map.
* Use this if you are interested in the minimum cut, as the color map provides that info
@@ -766,7 +770,7 @@
make_iterator_property_map(distance_vec.begin(), idx),
idx, src, sink);
}
-
+
/**
* named-parameter version, some given
*/
@@ -788,7 +792,7 @@
choose_const_pmap(get_param(params, vertex_index), g, vertex_index),
src, sink);
}
-
+
/**
* named-parameter version, none given
*/
Modified: branches/release/boost/graph/labeled_graph.hpp
==============================================================================
--- branches/release/boost/graph/labeled_graph.hpp (original)
+++ branches/release/boost/graph/labeled_graph.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -694,19 +694,19 @@
template <LABELED_GRAPH_PARAMS, typename Prop>
inline typename property_map<LABELED_GRAPH, Prop>::const_type
get(Prop p, LABELED_GRAPH const& g)
-{ return get(p, g.impl()); }
+{ return get(p, g.graph()); }
template <LABELED_GRAPH_PARAMS, typename Prop, typename Key>
inline typename property_traits<
typename property_map<typename LABELED_GRAPH::graph_type, Prop>::const_type
>::value_type
get(Prop p, LABELED_GRAPH const& g, const Key& k)
-{ return get(p, g.impl(), k); }
+{ return get(p, g.graph(), k); }
template <LABELED_GRAPH_PARAMS, typename Prop, typename Key, typename Value>
inline void
put(Prop p, LABELED_GRAPH& g, Key const& k, Value const& v)
-{ put(p, g.impl(), k, v); }
+{ put(p, g.graph(), k, v); }
//@}
/** @name Mutable Graph */
Modified: branches/release/boost/graph/leda_graph.hpp
==============================================================================
--- branches/release/boost/graph/leda_graph.hpp (original)
+++ branches/release/boost/graph/leda_graph.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -481,11 +481,11 @@
leda::GRAPH<vtype,etype>& g)
{
typename graph_traits< leda::GRAPH<vtype,etype> >::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end)=out_edges(u,g); ei!=ei_end; ei++)
+ for (boost::tie(ei, ei_end)=out_edges(u,g); ei!=ei_end; ei++)
remove_edge(*ei);
typename graph_traits< leda::GRAPH<vtype,etype> >::in_edge_iterator iei, iei_end;
- for (tie(iei, iei_end)=in_edges(u,g); iei!=iei_end; iei++)
+ for (boost::tie(iei, iei_end)=in_edges(u,g); iei!=iei_end; iei++)
remove_edge(*iei);
}
@@ -684,11 +684,11 @@
leda::graph& g)
{
graph_traits<leda::graph>::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end)=out_edges(u,g); ei!=ei_end; ei++)
+ for (boost::tie(ei, ei_end)=out_edges(u,g); ei!=ei_end; ei++)
remove_edge(*ei, g);
graph_traits<leda::graph>::in_edge_iterator iei, iei_end;
- for (tie(iei, iei_end)=in_edges(u,g); iei!=iei_end; iei++)
+ for (boost::tie(iei, iei_end)=in_edges(u,g); iei!=iei_end; iei++)
remove_edge(*iei, g);
}
Modified: branches/release/boost/graph/make_connected.hpp
==============================================================================
--- branches/release/boost/graph/make_connected.hpp (original)
+++ branches/release/boost/graph/make_connected.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -46,7 +46,7 @@
return;
vertex_iterator_t vi, vi_end;
- tie(vi,vi_end) = vertices(g);
+ boost::tie(vi,vi_end) = vertices(g);
std::copy(vi, vi_end, vertices_by_component.begin());
bucket_sort(vertices_by_component.begin(),
Modified: branches/release/boost/graph/max_cardinality_matching.hpp
==============================================================================
--- branches/release/boost/graph/max_cardinality_matching.hpp (original)
+++ branches/release/boost/graph/max_cardinality_matching.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -43,7 +43,7 @@
v_size_t size_of_matching = 0;
vertex_iterator_t vi, vi_end;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
{
vertex_descriptor_t v = *vi;
if (get(mate,v) != graph_traits<Graph>::null_vertex()
@@ -74,7 +74,7 @@
typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator_t;
vertex_iterator_t vi, vi_end;
- for( tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for( boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
{
vertex_descriptor_t v = *vi;
if (get(mate,v) != graph_traits<Graph>::null_vertex()
@@ -187,7 +187,7 @@
ds(ds_rank_map, ds_parent_map)
{
vertex_iterator_t vi, vi_end;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
mate[*vi] = get(arg_mate, *vi);
}
@@ -205,7 +205,7 @@
even_edges.clear();
vertex_iterator_t vi, vi_end;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
{
vertex_descriptor_t u = *vi;
@@ -219,7 +219,7 @@
{
vertex_state[u] = graph::detail::V_EVEN;
out_edge_iterator_t ei, ei_end;
- for(tie(ei,ei_end) = out_edges(u,g); ei != ei_end; ++ei)
+ for(boost::tie(ei,ei_end) = out_edges(u,g); ei != ei_end; ++ei)
even_edges.push_back( *ei );
}
else
@@ -261,7 +261,7 @@
vertex_state[w_prime] = graph::detail::V_ODD;
vertex_state[mate[w_prime]] = graph::detail::V_EVEN;
out_edge_iterator_t ei, ei_end;
- for( tie(ei,ei_end) = out_edges(mate[w_prime], g); ei != ei_end; ++ei)
+ for( boost::tie(ei,ei_end) = out_edges(mate[w_prime], g); ei != ei_end; ++ei)
even_edges.push_back(*ei);
pred[w_prime] = v;
}
@@ -356,7 +356,7 @@
void get_current_matching(PropertyMap pm)
{
vertex_iterator_t vi,vi_end;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
put(pm, *vi, mate[*vi]);
}
@@ -367,7 +367,7 @@
void get_vertex_state_map(PropertyMap pm)
{
vertex_iterator_t vi,vi_end;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
put(pm, *vi, vertex_state[origin[ds.find_set(*vi)]]);
}
@@ -403,7 +403,7 @@
{
bridge[v] = the_bridge;
out_edge_iterator_t oei, oei_end;
- for(tie(oei, oei_end) = out_edges(v,g); oei != oei_end; ++oei)
+ for(boost::tie(oei, oei_end) = out_edges(v,g); oei != oei_end; ++oei)
even_edges.push_back(*oei);
}
}
@@ -520,11 +520,11 @@
static void find_matching(const Graph& g, MateMap mate)
{
vertex_iterator_t vi, vi_end;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
put(mate, *vi, graph_traits<Graph>::null_vertex());
edge_iterator_t ei, ei_end;
- for( tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for( boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
{
edge_descriptor_t e = *ei;
vertex_descriptor_t u = source(e,g);
@@ -598,11 +598,11 @@
directed_edges_vector_t edge_list;
vertex_iterator_t vi, vi_end;
- for(tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
put(mate, *vi, graph_traits<Graph>::null_vertex());
edge_iterator_t ei, ei_end;
- for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for(boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
{
edge_descriptor_t e = *ei;
vertex_descriptor_t u = source(e,g);
@@ -642,7 +642,7 @@
static void find_matching(const Graph& g, MateMap mate)
{
vertex_iterator_t vi, vi_end;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
put(mate, *vi, graph_traits<Graph>::null_vertex());
}
};
@@ -791,7 +791,7 @@
//count the number of graph::detail::V_ODD vertices
v_size_t num_odd_vertices = 0;
vertex_iterator_t vi, vi_end;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
if (vertex_state[*vi] == graph::detail::V_ODD)
++num_odd_vertices;
Modified: branches/release/boost/graph/mcgregor_common_subgraphs.hpp
==============================================================================
--- branches/release/boost/graph/mcgregor_common_subgraphs.hpp (original)
+++ branches/release/boost/graph/mcgregor_common_subgraphs.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -288,8 +288,8 @@
typename graph_traits<GraphSecond>::vertex_iterator
vertex2_begin, vertex2_end, vertex2_iter;
- tie(vertex1_iter, vertex1_end) = vertices(graph1);
- tie(vertex2_begin, vertex2_end) = vertices(graph2);
+ boost::tie(vertex1_iter, vertex1_end) = vertices(graph1);
+ boost::tie(vertex2_begin, vertex2_end) = vertices(graph2);
vertex2_iter = vertex2_begin;
// Iterate until all vertices have been visited
Modified: branches/release/boost/graph/metric_tsp_approx.hpp
==============================================================================
--- branches/release/boost/graph/metric_tsp_approx.hpp (original)
+++ branches/release/boost/graph/metric_tsp_approx.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -285,7 +285,7 @@
// would require revisiting the core algorithm.
Edge e;
bool found;
- tie(e, found) = lookup_edge(previous_, v, g);
+ boost::tie(e, found) = lookup_edge(previous_, v, g);
if(!found) {
BOOST_THROW_EXCEPTION(not_complete());
}
Modified: branches/release/boost/graph/minimum_degree_ordering.hpp
==============================================================================
--- branches/release/boost/graph/minimum_degree_ordering.hpp (original)
+++ branches/release/boost/graph/minimum_degree_ordering.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -310,13 +310,13 @@
{
typename graph_traits<Graph>::vertex_iterator v, vend;
size_type vid = 0;
- for (tie(v, vend) = vertices(G); v != vend; ++v, ++vid)
+ for (boost::tie(v, vend) = vertices(G); v != vend; ++v, ++vid)
index_vertex_vec[vid] = *v;
index_vertex_map = IndexVertexMap(&index_vertex_vec[0]);
// Initialize degreelists. Degreelists organizes the nodes
// according to their degree.
- for (tie(v, vend) = vertices(G); v != vend; ++v) {
+ for (boost::tie(v, vend) = vertices(G); v != vend; ++v) {
put(degree, *v, out_degree(*v, G));
degreelists.push(*v);
}
@@ -409,7 +409,7 @@
size_type e_id = element_neighbor.top();
vertex_t element = get(index_vertex_map, e_id);
adj_iter i, i_end;
- for (tie(i, i_end) = adjacent_vertices(element, G); i != i_end; ++i){
+ for (boost::tie(i, i_end) = adjacent_vertices(element, G); i != i_end; ++i){
vertex_t i_node = *i;
if (!marker.is_tagged(i_node) && !numbering.is_numbered(i_node)) {
marker.mark_tagged(i_node);
@@ -419,7 +419,7 @@
element_neighbor.pop();
}
adj_iter v, ve;
- for (tie(v, ve) = adjacent_vertices(node, G); v != ve; ++v) {
+ for (boost::tie(v, ve) = adjacent_vertices(node, G); v != ve; ++v) {
vertex_t v_node = *v;
if (!degree_lists_marker.need_update(v_node)
&& !degree_lists_marker.outmatched_or_done(v_node)) {
@@ -456,7 +456,7 @@
vertex_t current = get(index_vertex_map, llist.top());
adj_iter i, ie;
- for (tie(i,ie) = adjacent_vertices(current, G); i != ie; ++i) {
+ for (boost::tie(i,ie) = adjacent_vertices(current, G); i != ie; ++i) {
vertex_t i_node = *i;
const size_type i_id = get(vertex_index_map, i_node);
if (supernode_size[i_node] != 0) {
@@ -490,7 +490,7 @@
}
if (numbering.is_numbered(neighbor)) {
adj_iter i, ie;
- for (tie(i,ie) = adjacent_vertices(neighbor, G);
+ for (boost::tie(i,ie) = adjacent_vertices(neighbor, G);
i != ie; ++i) {
const vertex_t i_node = *i;
if (i_node == u_node || supernode_size[i_node] == 0)
@@ -536,7 +536,7 @@
marker.increment_tag();
deg = deg0;
adj_iter i, ie;
- for (tie(i, ie) = adjacent_vertices(u_node, G); i != ie; ++i) {
+ for (boost::tie(i, ie) = adjacent_vertices(u_node, G); i != ie; ++i) {
vertex_t i_node = *i;
if (marker.is_tagged(i_node))
continue;
@@ -544,7 +544,7 @@
if (numbering.is_numbered(i_node)) {
adj_iter j, je;
- for (tie(j, je) = adjacent_vertices(i_node, G); j != je; ++j) {
+ for (boost::tie(j, je) = adjacent_vertices(i_node, G); j != je; ++j) {
const vertex_t j_node = *j;
if (marker.is_not_tagged(j_node)) {
marker.mark_tagged(j_node);
Modified: branches/release/boost/graph/neighbor_bfs.hpp
==============================================================================
--- branches/release/boost/graph/neighbor_bfs.hpp (original)
+++ branches/release/boost/graph/neighbor_bfs.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -152,7 +152,7 @@
vis.examine_vertex(u, g);
typename GTraits::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
Edge e = *ei;
vis.examine_out_edge(e, g);
Vertex v = target(e, g);
@@ -172,7 +172,7 @@
} // for out-edges
typename GTraits::in_edge_iterator in_ei, in_ei_end;
- for (tie(in_ei, in_ei_end) = in_edges(u, g);
+ for (boost::tie(in_ei, in_ei_end) = in_edges(u, g);
in_ei != in_ei_end; ++in_ei) {
Edge e = *in_ei;
vis.examine_in_edge(e, g);
@@ -216,7 +216,7 @@
typedef typename property_traits<ColorMap>::value_type ColorValue;
typedef color_traits<ColorValue> Color;
typename boost::graph_traits<VertexListGraph>::vertex_iterator i, i_end;
- for (tie(i, i_end) = vertices(g); i != i_end; ++i) {
+ for (boost::tie(i, i_end) = vertices(g); i != i_end; ++i) {
put(color, *i, Color::white());
vis.initialize_vertex(*i, g);
}
Modified: branches/release/boost/graph/page_rank.hpp
==============================================================================
--- branches/release/boost/graph/page_rank.hpp (original)
+++ branches/release/boost/graph/page_rank.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -142,7 +142,7 @@
old_n = num_vertices(g);
typename graph_traits<MutableGraph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; /* in loop */) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; /* in loop */) {
typename graph_traits<MutableGraph>::vertex_descriptor v = *vi++;
if (out_degree(v, g) == 0) {
clear_vertex(v, g);
Modified: branches/release/boost/graph/planar_detail/boyer_myrvold_impl.hpp
==============================================================================
--- branches/release/boost/graph/planar_detail/boyer_myrvold_impl.hpp (original)
+++ branches/release/boost/graph/planar_detail/boyer_myrvold_impl.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -346,7 +346,7 @@
// the walkup and consumed by the walkdown.
vertex_iterator_t vi, vi_end;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
{
vertex_t v(*vi);
vertex_t parent = dfs_parent[v];
@@ -471,7 +471,7 @@
typedef typename face_vertex_iterator<both_sides>::type walkup_iterator_t;
out_edge_iterator_t oi, oi_end;
- for(tie(oi,oi_end) = out_edges(v,g); oi != oi_end; ++oi)
+ for(boost::tie(oi,oi_end) = out_edges(v,g); oi != oi_end; ++oi)
{
edge_t e(*oi);
vertex_t e_source(source(e,g));
@@ -689,7 +689,7 @@
= face_handles[first_tail].first_vertex();
vertex_t second
= face_handles[first_tail].second_vertex();
- tie(first_side_vertex, first_tail)
+ boost::tie(first_side_vertex, first_tail)
= make_tuple(first_tail,
first == first_side_vertex ?
second : first
@@ -701,7 +701,7 @@
= face_handles[second_tail].first_vertex();
vertex_t second
= face_handles[second_tail].second_vertex();
- tie(second_side_vertex, second_tail)
+ boost::tie(second_side_vertex, second_tail)
= make_tuple(second_tail,
first == second_side_vertex ?
second : first);
@@ -790,10 +790,10 @@
{
bottom_path_follows_first = next_bottom_follows_first;
- tie(merge_point,
- next_bottom_follows_first,
- top_path_follows_first
- ) = merge_stack.back();
+ boost::tie(merge_point,
+ next_bottom_follows_first,
+ top_path_follows_first
+ ) = merge_stack.back();
merge_stack.pop_back();
face_handle_t top_handle(face_handles[merge_point]);
@@ -918,7 +918,7 @@
// planar embedding no matter what order we embed them in.
vertex_iterator_t xi, xi_end;
- for(tie(xi,xi_end) = vertices(g); xi != xi_end; ++xi)
+ for(boost::tie(xi,xi_end) = vertices(g); xi != xi_end; ++xi)
{
if (!separated_dfs_child_list[*xi]->empty())
{
@@ -1058,10 +1058,10 @@
bool seen_goal_edge = false;
out_edge_iterator_t oi, oi_end;
- for(tie(oi,oi_end) = out_edges(v,g); oi != oi_end; ++oi)
+ for(boost::tie(oi,oi_end) = out_edges(v,g); oi != oi_end; ++oi)
forbidden_edge[*oi] = true;
- for(tie(oi,oi_end) = out_edges(v,g); oi != oi_end; ++oi)
+ for(boost::tie(oi,oi_end) = out_edges(v,g); oi != oi_end; ++oi)
{
path_edges.clear();
@@ -1195,7 +1195,7 @@
// Clear the short-circuit edges - these are needed for the planar
// testing/embedding algorithm to run in linear time, but they'll
// complicate the kuratowski subgraph isolation
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
{
face_handles[*vi].reset_vertex_cache();
dfs_child_handles[*vi].reset_vertex_cache();
@@ -1352,7 +1352,7 @@
//Find external path to x and to y
- for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for(boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
{
edge_t e(*ei);
goal_edge[e]
@@ -1376,7 +1376,7 @@
}
- for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for(boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
{
edge_t e(*ei);
goal_edge[e]
@@ -1407,13 +1407,13 @@
{
chosen_case = detail::BM_CASE_A;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
if (lower_face_vertex[*vi])
- for(tie(oei,oei_end) = out_edges(*vi,g); oei != oei_end; ++oei)
+ for(boost::tie(oei,oei_end) = out_edges(*vi,g); oei != oei_end; ++oei)
if(!outer_face_edge[*oei])
goal_edge[*oei] = true;
- for(tie(ei,ei_end) = edges(g); ei != ei_end; ++ei)
+ for(boost::tie(ei,ei_end) = edges(g); ei != ei_end; ++ei)
forbidden_edge[*ei] = outer_face_edge[*ei];
z = kuratowski_walkup
@@ -1424,7 +1424,7 @@
{
chosen_case = detail::BM_CASE_B;
- for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for(boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
{
edge_t e(*ei);
goal_edge[e] = false;
@@ -1442,7 +1442,7 @@
);
- for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for(boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
{
forbidden_edge[*ei] = outer_face_edge[*ei];
}
@@ -1646,7 +1646,7 @@
//First, get a list of all of v's embedded child edges
out_edge_iterator_t v_edge_itr, v_edge_end;
- for(tie(v_edge_itr,v_edge_end) = out_edges(v,g);
+ for(boost::tie(v_edge_itr,v_edge_end) = out_edges(v,g);
v_edge_itr != v_edge_end; ++v_edge_itr
)
{
@@ -1711,7 +1711,7 @@
//Finding z and w.
- for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for(boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
{
edge_t e(*ei);
goal_edge[e] = !outer_face_edge[e] &&
@@ -1729,14 +1729,14 @@
if (chosen_case == detail::BM_CASE_E)
{
- for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for(boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
{
forbidden_edge[*ei] = outer_face_edge[*ei];
goal_edge[*ei] = !outer_face_edge[*ei] &&
(source(*ei,g) == w || target(*ei,g) == w);
}
- for(tie(oei, oei_end) = out_edges(w,g); oei != oei_end; ++oei)
+ for(boost::tie(oei, oei_end) = out_edges(w,g); oei != oei_end; ++oei)
{
if (!outer_face_edge[*oei])
goal_edge[*oei] = true;
@@ -1800,7 +1800,7 @@
while(child != parent)
{
is_in_subgraph[dfs_parent_edge[child]] = true;
- tie(parent, child) = std::make_pair( dfs_parent[parent], parent );
+ boost::tie(parent, child) = std::make_pair( dfs_parent[parent], parent );
}
@@ -1928,7 +1928,7 @@
}
- for(tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for(boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
if (is_in_subgraph[*ei])
*o_itr = *ei;
@@ -1940,7 +1940,7 @@
void make_edge_permutation(EdgePermutation perm)
{
vertex_iterator_t vi, vi_end;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
{
vertex_t v(*vi);
perm[v].clear();
Modified: branches/release/boost/graph/profile.hpp
==============================================================================
--- branches/release/boost/graph/profile.hpp (original)
+++ branches/release/boost/graph/profile.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -23,7 +23,7 @@
{
typename graph_traits<Graph>::vertices_size_type b = 0;
typename graph_traits<Graph>::vertex_iterator i, end;
- for (tie(i, end) = vertices(g); i != end; ++i){
+ for (boost::tie(i, end) = vertices(g); i != end; ++i){
b += ith_bandwidth(*i, g, index) + 1;
}
Modified: branches/release/boost/graph/push_relabel_max_flow.hpp
==============================================================================
--- branches/release/boost/graph/push_relabel_max_flow.hpp (original)
+++ branches/release/boost/graph/push_relabel_max_flow.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -141,12 +141,12 @@
// Initialize flow to zero which means initializing
// the residual capacity to equal the capacity.
out_edge_iterator ei, e_end;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei) {
+ for (boost::tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
+ for (boost::tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei) {
residual_capacity[*ei] = capacity[*ei];
}
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
+ for (boost::tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
vertex_descriptor u = *u_iter;
excess_flow[u] = 0;
current[u] = out_edges(u, g);
@@ -156,7 +156,7 @@
FlowValue test_excess = 0;
out_edge_iterator a_iter, a_end;
- for (tie(a_iter, a_end) = out_edges(src, g); a_iter != a_end; ++a_iter)
+ for (boost::tie(a_iter, a_end) = out_edges(src, g); a_iter != a_end; ++a_iter)
if (target(*a_iter, g) != src)
test_excess += residual_capacity[*a_iter];
if (test_excess > (std::numeric_limits<FlowValue>::max)())
@@ -166,7 +166,7 @@
excess_flow[src] = (std::numeric_limits<FlowValue>::max)();
else {
excess_flow[src] = 0;
- for (tie(a_iter, a_end) = out_edges(src, g);
+ for (boost::tie(a_iter, a_end) = out_edges(src, g);
a_iter != a_end; ++a_iter) {
edge_descriptor a = *a_iter;
if (target(a, g) != src) {
@@ -182,7 +182,7 @@
max_active = 0;
min_active = n;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
+ for (boost::tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
vertex_descriptor u = *u_iter;
if (u == sink) {
distance[u] = 0;
@@ -211,7 +211,7 @@
BOOST_USING_STD_MAX();
++update_count;
vertex_iterator u_iter, u_end;
- for (tie(u_iter,u_end) = vertices(g); u_iter != u_end; ++u_iter) {
+ for (boost::tie(u_iter,u_end) = vertices(g); u_iter != u_end; ++u_iter) {
color[*u_iter] = ColorTraits::white();
distance[*u_iter] = n;
}
@@ -233,7 +233,7 @@
distance_size_type d_v = distance[u] + 1;
out_edge_iterator ai, a_end;
- for (tie(ai, a_end) = out_edges(u, g); ai != a_end; ++ai) {
+ for (boost::tie(ai, a_end) = out_edges(u, g); ai != a_end; ++ai) {
edge_descriptor a = *ai;
vertex_descriptor v = target(a, g);
if (color[v] == ColorTraits::white()
@@ -262,7 +262,7 @@
assert(excess_flow[u] > 0);
while (1) {
out_edge_iterator ai, ai_end;
- for (tie(ai, ai_end) = current[u]; ai != ai_end; ++ai) {
+ for (boost::tie(ai, ai_end) = current[u]; ai != ai_end; ++ai) {
edge_descriptor a = *ai;
if (is_residual_edge(a)) {
vertex_descriptor v = target(a, g);
@@ -337,7 +337,7 @@
// Examine the residual out-edges of vertex i, choosing the
// edge whose target vertex has the minimal distance.
out_edge_iterator ai, a_end, min_edge_iter;
- for (tie(ai, a_end) = out_edges(u, g); ai != a_end; ++ai) {
+ for (boost::tie(ai, a_end) = out_edges(u, g); ai != a_end; ++ai) {
++work_since_last_update;
edge_descriptor a = *ai;
vertex_descriptor v = target(a, g);
@@ -433,20 +433,20 @@
bool bos_null = true;
// handle self-loops
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ai, a_end) = out_edges(*u_iter, g); ai != a_end; ++ai)
+ for (boost::tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
+ for (boost::tie(ai, a_end) = out_edges(*u_iter, g); ai != a_end; ++ai)
if (target(*ai, g) == *u_iter)
residual_capacity[*ai] = capacity[*ai];
// initialize
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
+ for (boost::tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
u = *u_iter;
color[u] = ColorTraits::white();
parent[u] = u;
current[u] = out_edges(u, g);
}
// eliminate flow cycles and topologically order the vertices
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
+ for (boost::tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
u = *u_iter;
if (color[u] == ColorTraits::white()
&& excess_flow[u] > 0
@@ -532,7 +532,7 @@
// note that the sink is not on the stack
if (! bos_null) {
for (u = tos; u != bos; u = topo_next[u]) {
- tie(ai, a_end) = out_edges(u, g);
+ boost::tie(ai, a_end) = out_edges(u, g);
while (excess_flow[u] > 0 && ai != a_end) {
if (capacity[*ai] == 0 && is_residual_edge(*ai))
push_flow(*ai);
@@ -558,8 +558,8 @@
out_edge_iterator ai, a_end;
// check edge flow values
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
- for (tie(ai, a_end) = out_edges(*u_iter, g); ai != a_end; ++ai) {
+ for (boost::tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
+ for (boost::tie(ai, a_end) = out_edges(*u_iter, g); ai != a_end; ++ai) {
edge_descriptor a = *ai;
if (capacity[a] > 0)
if ((residual_capacity[a] + residual_capacity[reverse_edge[a]]
@@ -572,13 +572,13 @@
// check conservation
FlowValue sum;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
+ for (boost::tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter) {
vertex_descriptor u = *u_iter;
if (u != src && u != sink) {
if (excess_flow[u] != 0)
return false;
sum = 0;
- for (tie(ai, a_end) = out_edges(u, g); ai != a_end; ++ai)
+ for (boost::tie(ai, a_end) = out_edges(u, g); ai != a_end; ++ai)
if (capacity[*ai] > 0)
sum -= capacity[*ai] - residual_capacity[*ai];
else
@@ -611,8 +611,8 @@
os << "flow values" << std::endl;
vertex_iterator u_iter, u_end;
out_edge_iterator ei, e_end;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
+ for (boost::tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
+ for (boost::tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
if (capacity[*ei] > 0)
os << *u_iter << " " << target(*ei, g) << " "
<< (capacity[*ei] - residual_capacity[*ei]) << std::endl;
Modified: branches/release/boost/graph/r_c_shortest_paths.hpp
==============================================================================
--- branches/release/boost/graph/r_c_shortest_paths.hpp (original)
+++ branches/release/boost/graph/r_c_shortest_paths.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -359,7 +359,7 @@
typename graph_traits<Graph>::vertex_descriptor cur_vertex =
cur_label->resident_vertex;
typename graph_traits<Graph>::out_edge_iterator oei, oei_end;
- for( tie( oei, oei_end ) = out_edges( cur_vertex, g );
+ for( boost::tie( oei, oei_end ) = out_edges( cur_vertex, g );
oei != oei_end;
++oei )
{
Modified: branches/release/boost/graph/random.hpp
==============================================================================
--- branches/release/boost/graph/random.hpp (original)
+++ branches/release/boost/graph/random.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -12,10 +12,12 @@
#include <boost/graph/graph_traits.hpp>
#include <boost/random/uniform_int.hpp>
+#include <boost/random/uniform_real.hpp>
#include <boost/random/variate_generator.hpp>
#include <boost/pending/property.hpp>
#include <boost/graph/properties.hpp>
+#include <boost/graph/iteration_macros.hpp>
#include <boost/next_prior.hpp>
#include <boost/graph/adjacency_list.hpp>
@@ -24,6 +26,7 @@
#include <boost/type_traits/is_convertible.hpp>
#include <iostream>
+#include <cassert>
namespace boost {
@@ -67,6 +70,43 @@
return *edges(g).first;
}
+ template <typename Graph, typename RandomNumGen>
+ typename graph_traits<Graph>::edge_descriptor
+ random_out_edge(Graph& g, typename graph_traits<Graph>::vertex_descriptor src, RandomNumGen& gen) {
+ typedef typename graph_traits<Graph>::degree_size_type degree_size_type;
+ typedef boost::uniform_int<degree_size_type> ui_type;
+ ui_type ui(0, out_degree(src, g) - 1);
+ boost::variate_generator<RandomNumGen&, ui_type>
+ variate(gen, ui);
+ typename graph_traits<Graph>::out_edge_iterator it = out_edges(src, g).first;
+ std::advance(it, variate());
+ return *it;
+ }
+
+ template <typename Graph, typename WeightMap, typename RandomNumGen>
+ typename graph_traits<Graph>::edge_descriptor
+ weighted_random_out_edge(Graph& g, typename graph_traits<Graph>::vertex_descriptor src, WeightMap weight, RandomNumGen& gen) {
+ typedef graph_traits<Graph> gt;
+ typedef typename gt::vertex_descriptor vertex_descriptor;
+ typedef typename property_traits<WeightMap>::value_type weight_type;
+ weight_type weight_sum(0);
+ BGL_FORALL_OUTEDGES_T(src, e, g, Graph) {weight_sum += get(weight, e);}
+ typedef boost::uniform_real<> ur_type;
+ ur_type ur(0, weight_sum);
+ boost::variate_generator<RandomNumGen&, ur_type>
+ variate(gen, ur);
+ weight_type chosen_weight = variate();
+ BGL_FORALL_OUTEDGES_T(src, e, g, Graph) {
+ weight_type w = get(weight, e);
+ if (chosen_weight < w) {
+ return e;
+ } else {
+ chosen_weight -= w;
+ }
+ }
+ assert (false); // Should not get here
+ }
+
namespace detail {
class dummy_property_copier {
public:
@@ -157,7 +197,7 @@
b = random_vertex(g, gen);
} while (self_edges == false && a == b);
edge_t e; bool inserted;
- tie(e, inserted) = add_edge(a, b, g);
+ boost::tie(e, inserted) = add_edge(a, b, g);
if (inserted)
*edge_out++ = std::make_pair(source(e, g), target(e, g));
}
@@ -171,7 +211,7 @@
{
typename property_map<G, Property>::type pm = get(Property(), g);
typename graph_traits<G>::vertex_iterator vi, ve;
- for (tie(vi, ve) = vertices(g); vi != ve; ++vi) {
+ for (boost::tie(vi, ve) = vertices(g); vi != ve; ++vi) {
pm[*vi] = rg();
}
}
@@ -182,7 +222,7 @@
{
typename property_map<G, Property>::type pm = get(Property(), g);
typename graph_traits<G>::edge_iterator ei, ee;
- for (tie(ei, ee) = edges(g); ei != ee; ++ei) {
+ for (boost::tie(ei, ee) = edges(g); ei != ee; ++ei) {
pm[*ei] = rg();
}
}
@@ -200,5 +240,6 @@
}
+#include <boost/graph/iteration_macros_undef.hpp>
#endif
Modified: branches/release/boost/graph/read_dimacs.hpp
==============================================================================
--- branches/release/boost/graph/read_dimacs.hpp (original)
+++ branches/release/boost/graph/read_dimacs.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -228,8 +228,8 @@
{
edge_descriptor e1, e2;
bool in1, in2;
- tie(e1, in1) = add_edge(verts[tail], verts[head], g);
- tie(e2, in2) = add_edge(verts[head], verts[tail], g);
+ boost::tie(e1, in1) = add_edge(verts[tail], verts[head], g);
+ boost::tie(e2, in2) = add_edge(verts[head], verts[tail], g);
if (!in1 || !in2) {
std::cerr << "unable to add edge (" << head << "," << tail << ")"
<< std::endl;
Modified: branches/release/boost/graph/reverse_graph.hpp
==============================================================================
--- branches/release/boost/graph/reverse_graph.hpp (original)
+++ branches/release/boost/graph/reverse_graph.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -220,7 +220,7 @@
{
typedef reverse_graph<BidirectionalGraph,GRef> Graph;
typename graph_traits<Graph>::out_edge_iterator first, last;
- tie(first, last) = out_edges(u, g);
+ boost::tie(first, last) = out_edges(u, g);
typedef typename graph_traits<Graph>::adjacency_iterator adjacency_iterator;
return std::make_pair(adjacency_iterator(first, const_cast<Graph*>(&g)),
adjacency_iterator(last, const_cast<Graph*>(&g)));
Modified: branches/release/boost/graph/rmat_graph_generator.hpp
==============================================================================
--- branches/release/boost/graph/rmat_graph_generator.hpp (original)
+++ branches/release/boost/graph/rmat_graph_generator.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -164,7 +164,7 @@
// Generate the first edge
vertices_size_type u, v;
- tie(u, v) = generate_edge(this->gen, n, SCALE, a, b, c, d);
+ boost::tie(u, v) = generate_edge(this->gen, n, SCALE, a, b, c, d);
if (permute_vertices)
current = std::make_pair(vertexPermutation[u],
@@ -181,7 +181,7 @@
rmat_iterator& operator++()
{
vertices_size_type u, v;
- tie(u, v) = generate_edge(this->gen, n, SCALE, a, b, c, d);
+ boost::tie(u, v) = generate_edge(this->gen, n, SCALE, a, b, c, d);
if (permute_vertices)
current = std::make_pair(vertexPermutation[u],
@@ -279,7 +279,7 @@
for (edges_size_type i = 0; i < m; ++i) {
vertices_size_type u, v;
- tie(u, v) = generate_edge(this->gen, n, SCALE, a, b, c, d);
+ boost::tie(u, v) = generate_edge(this->gen, n, SCALE, a, b, c, d);
if (permute_vertices) {
if (ep(vertexPermutation[u], vertexPermutation[v]))
@@ -381,7 +381,7 @@
edges_size_type edges = 0;
do {
vertices_size_type u, v;
- tie(u, v) = generate_edge(this->gen, n, SCALE, a, b, c, d);
+ boost::tie(u, v) = generate_edge(this->gen, n, SCALE, a, b, c, d);
// Lowest vertex number always comes first
// (this means we don't have to worry about i->j and j->i being in the edge list)
@@ -495,7 +495,7 @@
do {
vertices_size_type u, v;
- tie(u, v) = generate_edge(this->gen, n, SCALE, a, b, c, d);
+ boost::tie(u, v) = generate_edge(this->gen, n, SCALE, a, b, c, d);
if (bidirectional) {
if (edge_map.find(std::make_pair(u, v)) == edge_map.end()) {
Modified: branches/release/boost/graph/sequential_vertex_coloring.hpp
==============================================================================
--- branches/release/boost/graph/sequential_vertex_coloring.hpp (original)
+++ branches/release/boost/graph/sequential_vertex_coloring.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -61,7 +61,7 @@
//Initialize colors
typename GraphTraits::vertex_iterator v, vend;
- for (tie(v, vend) = vertices(G); v != vend; ++v)
+ for (boost::tie(v, vend) = vertices(G); v != vend; ++v)
put(color, *v, V-1);
//Determine the color for every vertex one by one
@@ -71,7 +71,7 @@
//Mark the colors of vertices adjacent to current.
//i can be the value for marking since i increases successively
- for (tie(v,vend) = adjacent_vertices(current, G); v != vend; ++v)
+ for (boost::tie(v,vend) = adjacent_vertices(current, G); v != vend; ++v)
mark[get(color,*v)] = i;
//Next step is to assign the smallest un-marked color
Modified: branches/release/boost/graph/sloan_ordering.hpp
==============================================================================
--- branches/release/boost/graph/sloan_ordering.hpp (original)
+++ branches/release/boost/graph/sloan_ordering.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -139,7 +139,7 @@
//step 1
//Scan for the vertex with the smallest degree and the maximum degree
typename graph_traits<Graph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(G); ui != ui_end; ++ui)
+ for (boost::tie(ui, ui_end) = vertices(G); ui != ui_end; ++ui)
{
dummy = get(degree, *ui);
@@ -180,7 +180,7 @@
//step 4
//pushing one node of each degree in an ascending manner into degree_queue
std::vector<bool> shrink_trace(maximum_degree, false);
- for (tie(ui, ui_end) = vertices(G); ui != ui_end; ++ui)
+ for (boost::tie(ui, ui_end) = vertices(G); ui != ui_end; ++ui)
{
dummy = get(degree, *ui);
@@ -292,7 +292,7 @@
//Sets the color and priority to their initial status
unsigned cdeg;
typename graph_traits<Graph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui)
+ for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui)
{
put(color, *ui, Color::white());
cdeg=get(degree, *ui)+1;
@@ -321,7 +321,7 @@
if(get(color, u) == Color::green() )
{
//for-loop over all out-edges of vertex u
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei)
{
v = target(*ei, g);
@@ -340,7 +340,7 @@
put(color, u, Color::black() ); //Gives u an inactive status
//for loop over all the adjacent vertices of u
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
v = target(*ei, g);
@@ -350,7 +350,7 @@
put(priority, v, get(priority, v)+W2); //updates the priority
//for loop over alll adjacent vertices of v
- for (tie(ei2, ei2_end) = out_edges(v, g); ei2 != ei2_end; ++ei2) {
+ for (boost::tie(ei2, ei2_end) = out_edges(v, g); ei2 != ei2_end; ++ei2) {
w = target(*ei2, g);
if(get(color, w) != Color::black() ) { //tests if vertex is postactive
Modified: branches/release/boost/graph/strong_components.hpp
==============================================================================
--- branches/release/boost/graph/strong_components.hpp (original)
+++ branches/release/boost/graph/strong_components.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -54,7 +54,7 @@
const Graph& g) {
typename graph_traits<Graph>::vertex_descriptor w;
typename graph_traits<Graph>::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(v, g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(v, g); ei != ei_end; ++ei) {
w = target(*ei, g);
if (get(comp, w) == (std::numeric_limits<comp_type>::max)())
put(root, v, this->min_discover_time(get(root,v), get(root,w)));
@@ -249,7 +249,7 @@
{
components.resize(num_scc);
typename graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
components[component_number[*vi]].push_back(*vi);
}
@@ -304,7 +304,7 @@
// initialize G_T
typename graph_traits<Graph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(G_T); ui != ui_end; ++ui)
+ for (boost::tie(ui, ui_end) = vertices(G_T); ui != ui_end; ++ui)
put(color, *ui, Color::white());
typedef typename property_traits<FinishTime>::value_type D;
@@ -314,8 +314,8 @@
std::priority_queue<Vertex, std::vector<Vertex>, Compare > Q(fl);
typename graph_traits<Graph>::vertex_iterator i, j, iend, jend;
- tie(i, iend) = vertices(G_T);
- tie(j, jend) = vertices(G);
+ boost::tie(i, iend) = vertices(G_T);
+ boost::tie(j, jend) = vertices(G);
for ( ; i != iend; ++i, ++j) {
put(finish_time, *i, get(finish_time, *j));
Q.push(*i);
Modified: branches/release/boost/graph/subgraph.hpp
==============================================================================
--- branches/release/boost/graph/subgraph.hpp (original)
+++ branches/release/boost/graph/subgraph.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -124,7 +124,7 @@
{
typename Graph::vertex_iterator v, v_end;
vertices_size_type i = 0;
- for(tie(v, v_end) = vertices(m_graph); v != v_end; ++v)
+ for(boost::tie(v, v_end) = vertices(m_graph); v != v_end; ++v)
m_global_vertex[i++] = *v;
}
@@ -180,7 +180,7 @@
vertex_descriptor global_to_local(vertex_descriptor u_global) const {
vertex_descriptor u_local; bool in_subgraph;
if (is_root()) return u_global;
- tie(u_local, in_subgraph) = this->find_vertex(u_global);
+ boost::tie(u_local, in_subgraph) = this->find_vertex(u_global);
assert(in_subgraph == true);
return u_local;
}
@@ -315,7 +315,7 @@
{
edge_descriptor e_local;
bool inserted;
- tie(e_local, inserted) = add_edge(u_local, v_local, m_graph);
+ boost::tie(e_local, inserted) = add_edge(u_local, v_local, m_graph);
put(edge_index, m_graph, e_local, m_edge_counter++);
m_global_edge.push_back(e_global);
m_local_edge[get(get(edge_index, this->root()), e_global)] = e_local;
@@ -358,7 +358,7 @@
// remember edge global and local maps
{
typename subgraph<G>::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(u_global, r);
+ for (boost::tie(ei, ei_end) = out_edges(u_global, r);
ei != ei_end; ++ei) {
e_global = *ei;
v_global = target(e_global, r);
@@ -369,10 +369,10 @@
if (is_directed(g)) { // not necessary for undirected graph
typename subgraph<G>::vertex_iterator vi, vi_end;
typename subgraph<G>::out_edge_iterator ei, ei_end;
- for(tie(vi, vi_end) = vertices(r); vi != vi_end; ++vi) {
+ for(boost::tie(vi, vi_end) = vertices(r); vi != vi_end; ++vi) {
v_global = *vi;
if(g.find_vertex(v_global).second)
- for(tie(ei, ei_end) = out_edges(*vi, r); ei != ei_end; ++ei) {
+ for(boost::tie(ei, ei_end) = out_edges(*vi, r); ei != ei_end; ++ei) {
e_global = *ei;
uu_global = target(e_global, r);
if(uu_global == u_global && g.find_vertex(v_global).second) {
@@ -507,8 +507,8 @@
// add local edge only if u_global and v_global are in subgraph g
Vertex u_local, v_local;
bool u_in_subgraph, v_in_subgraph;
- tie(u_local, u_in_subgraph) = g.find_vertex(u_global);
- tie(v_local, v_in_subgraph) = g.find_vertex(v_global);
+ boost::tie(u_local, u_in_subgraph) = g.find_vertex(u_global);
+ boost::tie(v_local, v_in_subgraph) = g.find_vertex(v_global);
if(u_in_subgraph && v_in_subgraph) {
g.local_add_edge(u_local, v_local, e_global);
}
@@ -525,7 +525,7 @@
if(g.is_root()) {
typename subgraph<Graph>::edge_descriptor e_global;
bool inserted;
- tie(e_global, inserted) = add_edge(u_global, v_global, ep, g.m_graph);
+ boost::tie(e_global, inserted) = add_edge(u_global, v_global, ep, g.m_graph);
put(edge_index, g.m_graph, e_global, g.m_edge_counter++);
g.m_global_edge.push_back(e_global);
children_add_edge(u_global, v_global, e_global, g.m_children, orig);
@@ -554,7 +554,7 @@
} else {
typename subgraph<G>::edge_descriptor e_local, e_global;
bool inserted;
- tie(e_global, inserted) =
+ boost::tie(e_global, inserted) =
detail::add_edge_recur_up(g.local_to_global(u),
g.local_to_global(v),
ep, g, &g);
Modified: branches/release/boost/graph/transitive_closure.hpp
==============================================================================
--- branches/release/boost/graph/transitive_closure.hpp (original)
+++ branches/release/boost/graph/transitive_closure.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -101,7 +101,7 @@
for (size_type i = 0; i < components[s].size(); ++i) {
vertex u = components[s][i];
adjacency_iterator v, v_end;
- for (tie(v, v_end) = adjacent_vertices(u, g); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = adjacent_vertices(u, g); v != v_end; ++v) {
cg_vertex t = component_number[*v];
if (s != t) // Avoid loops in the condensation graph
adj.push_back(t);
@@ -144,7 +144,7 @@
chain.push_back(v);
in_a_chain[v] = true;
typename graph_traits<CG_t>::adjacency_iterator adj_first, adj_last;
- tie(adj_first, adj_last) = adjacent_vertices(v, CG);
+ boost::tie(adj_first, adj_last) = adjacent_vertices(v, CG);
typename graph_traits<CG_t>::adjacency_iterator next
= std::find_if(adj_first, adj_last,
std::not1(detail::subscript(in_a_chain)));
@@ -174,7 +174,7 @@
i = topo_order.rbegin(); i != topo_order.rend(); ++i) {
cg_vertex u = *i;
typename graph_traits<CG_t>::adjacency_iterator adj, adj_last;
- for (tie(adj, adj_last) = adjacent_vertices(u, CG);
+ for (boost::tie(adj, adj_last) = adjacent_vertices(u, CG);
adj != adj_last; ++adj) {
cg_vertex v = *adj;
if (topo_number[v] < successors[u][chain_number[v]]) {
@@ -204,15 +204,15 @@
typedef typename graph_traits < GraphTC >::vertex_descriptor tc_vertex;
{
vertex_iterator i, i_end;
- for (tie(i, i_end) = vertices(g); i != i_end; ++i)
+ for (boost::tie(i, i_end) = vertices(g); i != i_end; ++i)
g_to_tc_map[*i] = add_vertex(tc);
}
// Add edges between all the vertices in two adjacent SCCs
typename graph_traits<CG_t>::vertex_iterator si, si_end;
- for (tie(si, si_end) = vertices(CG); si != si_end; ++si) {
+ for (boost::tie(si, si_end) = vertices(CG); si != si_end; ++si) {
cg_vertex s = *si;
typename graph_traits<CG_t>::adjacency_iterator i, i_end;
- for (tie(i, i_end) = adjacent_vertices(s, CG); i != i_end; ++i) {
+ for (boost::tie(i, i_end) = adjacent_vertices(s, CG); i != i_end; ++i) {
cg_vertex t = *i;
for (size_type k = 0; k < components[s].size(); ++k)
for (size_type l = 0; l < components[t].size(); ++l)
@@ -233,7 +233,7 @@
// Need to add it to transitive closure.
{
vertex_iterator i, i_end;
- for (tie(i, i_end) = vertices(g); i != i_end; ++i)
+ for (boost::tie(i, i_end) = vertices(g); i != i_end; ++i)
{
adjacency_iterator ab, ae;
for (boost::tie(ab, ae) = adjacent_vertices(*i, g); ab != ae; ++ab)
@@ -312,10 +312,10 @@
// for j
// A[i,j] = A[i,j] | A[k,j]
vertex_iterator ki, ke, ii, ie, ji, je;
- for (tie(ki, ke) = vertices(g); ki != ke; ++ki)
- for (tie(ii, ie) = vertices(g); ii != ie; ++ii)
+ for (boost::tie(ki, ke) = vertices(g); ki != ke; ++ki)
+ for (boost::tie(ii, ie) = vertices(g); ii != ie; ++ii)
if (edge(*ii, *ki, g).second)
- for (tie(ji, je) = vertices(g); ji != je; ++ji)
+ for (boost::tie(ji, je) = vertices(g); ji != je; ++ji)
if (!edge(*ii, *ji, g).second && edge(*ki, *ji, g).second) {
add_edge(*ii, *ji, g);
}
@@ -342,10 +342,10 @@
// A[i,j] = A[i,j] | A[k,j]
vertex_iterator ic, ie, jc, je, kc, ke;
- for (tie(ic, ie) = vertices(g), ++ic; ic != ie; ++ic)
- for (tie(kc, ke) = vertices(g); *kc != *ic; ++kc)
+ for (boost::tie(ic, ie) = vertices(g), ++ic; ic != ie; ++ic)
+ for (boost::tie(kc, ke) = vertices(g); *kc != *ic; ++kc)
if (edge(*ic, *kc, g).second)
- for (tie(jc, je) = vertices(g); jc != je; ++jc)
+ for (boost::tie(jc, je) = vertices(g); jc != je; ++jc)
if (!edge(*ic, *jc, g).second && edge(*kc, *jc, g).second) {
add_edge(*ic, *jc, g);
}
@@ -355,10 +355,10 @@
// for j = 1 to n
// A[i,j] = A[i,j] | A[k,j]
- for (tie(ic, ie) = vertices(g), --ie; ic != ie; ++ic)
+ for (boost::tie(ic, ie) = vertices(g), --ie; ic != ie; ++ic)
for (kc = ic, ke = ie, ++kc; kc != ke; ++kc)
if (edge(*ic, *kc, g).second)
- for (tie(jc, je) = vertices(g); jc != je; ++jc)
+ for (boost::tie(jc, je) = vertices(g); jc != je; ++jc)
if (!edge(*ic, *jc, g).second && edge(*kc, *jc, g).second) {
add_edge(*ic, *jc, g);
}
Modified: branches/release/boost/graph/transitive_reduction.hpp
==============================================================================
--- branches/release/boost/graph/transitive_reduction.hpp (original)
+++ branches/release/boost/graph/transitive_reduction.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -91,7 +91,7 @@
//do that. So what I'm doint is, collection the successors of *it here
{
typename Graph::out_edge_iterator oi,oi_end;
- for( tie(oi, oi_end) = out_edges( *it, g ); oi != oi_end; ++oi ) {
+ for( boost::tie(oi, oi_end) = out_edges( *it, g ); oi != oi_end; ++oi ) {
neighbors.push_back( target( *oi, g ) );
}
}
Modified: branches/release/boost/graph/tree_traits.hpp
==============================================================================
--- branches/release/boost/graph/tree_traits.hpp (original)
+++ branches/release/boost/graph/tree_traits.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -21,7 +21,7 @@
{
visitor.preorder(v, t);
typename tree_traits<Tree>::children_iterator i, end;
- tie(i, end) = children(v, t);
+ boost::tie(i, end) = children(v, t);
if (i != end) {
traverse_tree(*i++, t, visitor);
visitor.inorder(v, t);
Modified: branches/release/boost/graph/undirected_dfs.hpp
==============================================================================
--- branches/release/boost/graph/undirected_dfs.hpp (original)
+++ branches/release/boost/graph/undirected_dfs.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -56,7 +56,7 @@
VertexInfo& back = stack.back();
u = back.first;
Iter ei, ei_end;
- tie(ei, ei_end) = back.second;
+ boost::tie(ei, ei_end) = back.second;
stack.pop_back();
while (ei != ei_end) {
Vertex v = target(*ei, g);
@@ -70,7 +70,7 @@
u = v;
put(vertex_color, u, Color::gray());
vis.discover_vertex(u, g);
- tie(ei, ei_end) = out_edges(u, g);
+ boost::tie(ei, ei_end) = out_edges(u, g);
} else if (v_color == Color::gray()) {
if (uv_color == EColor::white()) vis.back_edge(*ei, g);
++ei;
@@ -109,7 +109,7 @@
typename graph_traits<IncidenceGraph>::out_edge_iterator ei, ei_end;
put(vertex_color, u, Color::gray()); vis.discover_vertex(u, g);
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
Vertex v = target(*ei, g); vis.examine_edge(*ei, g);
ColorValue v_color = get(vertex_color, v);
EColorValue uv_color = get(edge_color, *ei);
@@ -141,18 +141,18 @@
typedef color_traits<ColorValue> Color;
typename graph_traits<Graph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
+ for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
put(vertex_color, *ui, Color::white()); vis.initialize_vertex(*ui, g);
}
typename graph_traits<Graph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
put(edge_color, *ei, Color::white());
if (start_vertex != *vertices(g).first){ vis.start_vertex(start_vertex, g);
detail::undir_dfv_impl(g, start_vertex, vis, vertex_color, edge_color);
}
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
+ for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui) {
ColorValue u_color = get(vertex_color, *ui);
if (u_color == Color::white()) { vis.start_vertex(*ui, g);
detail::undir_dfv_impl(g, *ui, vis, vertex_color, edge_color);
Modified: branches/release/boost/graph/undirected_graph.hpp
==============================================================================
--- branches/release/boost/graph/undirected_graph.hpp (original)
+++ branches/release/boost/graph/undirected_graph.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -199,7 +199,7 @@
// find all edges, (u, v)
std::vector<edge_descriptor> edges;
out_edge_iterator i, i_end;
- for(tie(i, i_end) = boost::out_edges(u, m_graph); i != i_end; ++i) {
+ for(boost::tie(i, i_end) = boost::out_edges(u, m_graph); i != i_end; ++i) {
if(boost::target(*i, m_graph) == v) {
edges.push_back(*i);
}
@@ -226,7 +226,7 @@
void renumber_vertex_indices() {
vertex_iterator i, i_end;
- tie(i, i_end) = vertices(m_graph);
+ boost::tie(i, i_end) = vertices(m_graph);
m_max_vertex_index = renumber_vertex_indices(i, i_end, 0);
}
@@ -245,7 +245,7 @@
void renumber_edge_indices() {
edge_iterator i, end;
- tie(i, end) = edges(m_graph);
+ boost::tie(i, end) = edges(m_graph);
m_max_edge_index = renumber_edge_indices(i, end, 0);
}
Modified: branches/release/boost/graph/wavefront.hpp
==============================================================================
--- branches/release/boost/graph/wavefront.hpp (original)
+++ branches/release/boost/graph/wavefront.hpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -37,12 +37,12 @@
rows_active[index_i] = true;
typename graph_traits<Graph>::vertex_iterator ui, ui_end;
- for (tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui)
+ for (boost::tie(ui, ui_end) = vertices(g); ui != ui_end; ++ui)
{
v = *ui;
if(index[v] <= index_i)
{
- for (tie(edge_it2, edge_it2_end) = out_edges(v, g); edge_it2 != edge_it2_end; ++edge_it2)
+ for (boost::tie(edge_it2, edge_it2_end) = out_edges(v, g); edge_it2 != edge_it2_end; ++edge_it2)
{
w = target(*edge_it2, g);
if( (index[w] >= index_i) && (!rows_active[index[w]]) )
@@ -74,7 +74,7 @@
BOOST_USING_STD_MAX();
typename graph_traits<Graph>::vertices_size_type b = 0;
typename graph_traits<Graph>::vertex_iterator i, end;
- for (tie(i, end) = vertices(g); i != end; ++i)
+ for (boost::tie(i, end) = vertices(g); i != end; ++i)
b = max BOOST_PREVENT_MACRO_SUBSTITUTION(b, ith_wavefront(*i, g, index));
return b;
}
@@ -93,7 +93,7 @@
{
double b = 0;
typename graph_traits<Graph>::vertex_iterator i, end;
- for (tie(i, end) = vertices(g); i != end; ++i)
+ for (boost::tie(i, end) = vertices(g); i != end; ++i)
b += ith_wavefront(*i, g, index);
b /= num_vertices(g);
@@ -114,7 +114,7 @@
{
double b = 0;
typename graph_traits<Graph>::vertex_iterator i, end;
- for (tie(i, end) = vertices(g); i != end; ++i)
+ for (boost::tie(i, end) = vertices(g); i != end; ++i)
b += std::pow(double ( ith_wavefront(*i, g, index) ), 2.0);
b /= num_vertices(g);
Modified: branches/release/libs/graph/build/Jamfile.v2
==============================================================================
--- branches/release/libs/graph/build/Jamfile.v2 (original)
+++ branches/release/libs/graph/build/Jamfile.v2 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -23,7 +23,6 @@
<toolset>msvc-7.1:<cxxflags>-GR-
:
:
- <library>../../regex/build//boost_regex
;
boost-install boost_graph ;
Modified: branches/release/libs/graph/doc/astar_search.html
==============================================================================
--- branches/release/libs/graph/doc/astar_search.html (original)
+++ branches/release/libs/graph/doc/astar_search.html 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -28,7 +28,7 @@
typename P, typename T, typename R>
void
astar_search
- (VertexListGraph &g,
+ (const VertexListGraph &g,
typename graph_traits<VertexListGraph>::vertex_descriptor s,
<a href="AStarHeuristic.html">AStarHeuristic</a> h, const bgl_named_params<P, T, R>& params);
@@ -42,7 +42,7 @@
typename CostInf, typename CostZero>
inline void
astar_search
- (VertexListGraph &g,
+ (const VertexListGraph &g,
typename graph_traits<VertexListGraph>::vertex_descriptor s,
AStarHeuristic h, AStarVisitor vis,
PredecessorMap predecessor, CostMap cost,
@@ -52,7 +52,7 @@
CostInf inf, CostZero zero);
<i>// Version that does not initialize property maps (used for implicit graphs)</i>
-template <typename VertexListGraph, typename AStarHeuristic,
+template <typename IncidenceGraph, typename AStarHeuristic,
typename AStarVisitor, typename PredecessorMap,
typename CostMap, typename DistanceMap,
typename WeightMap, typename ColorMap,
@@ -61,8 +61,8 @@
typename CostInf, typename CostZero>
inline void
astar_search_no_init
- (VertexListGraph &g,
- typename graph_traits<VertexListGraph>::vertex_descriptor s,
+ (const IncidenceGraph &g,
+ typename graph_traits<IncidenceGraph>::vertex_descriptor s,
AStarHeuristic h, AStarVisitor vis,
PredecessorMap predecessor, CostMap cost,
DistanceMap distance, WeightMap weight,
@@ -117,7 +117,10 @@
neighbors of newly-expanded vertices. Please note that
<tt>astar_search_no_init()</tt> must be used for implicit graphs; the basic
<tt>astar_search()</tt> function requires a graph that models
-VertexListGraph.
+the Vertex List Graph concept. Both
+versions
+also require the graph type to model the <a
+href="IncidenceGraph.html">Incidence Graph</a> concept.
</P>
<P>
@@ -228,12 +231,21 @@
<h3>Parameters</h3>
-IN: <tt>VertexListGraph& g</tt>
+IN: <tt>const VertexListGraph& g</tt>
<blockquote>
- The graph object on which the algorithm will be applied. The type
+ The graph object on which the algorithm will be applied for <tt>astar_search()</tt>. The type
<tt>VertexListGraph</tt> must be a model of the <a
href="VertexListGraph.html">
- Vertex List Graph</a> concept.
+ Vertex List Graph</a> and Incidence Graph
+ concepts.
+</blockquote>
+
+IN: <tt>const IncidenceGraph& g</tt>
+<blockquote>
+ The graph object on which the algorithm will be applied for <tt>astar_search_no_init()</tt>. The type
+ <tt>IncidenceGraph</tt> must be a model of the
+ Incidence Graph
+ concept.
</blockquote>
IN: <tt>vertex_descriptor s</tt>
Modified: branches/release/libs/graph/doc/bibliography.html
==============================================================================
--- branches/release/libs/graph/doc/bibliography.html (original)
+++ branches/release/libs/graph/doc/bibliography.html 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -409,7 +409,7 @@
<p></p><dt><a name="boykov-kolmogorov04">69</a>
<dd>Yuri Boykov and Vladimir Kolmogorov<br>
<em>An Experimental Comparison of Min-Cut/Max-Flow Algorithms for Energy Minimization in Vision</em><br>
- In IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 26, no. 9, pp. 1124-1137, Sept. 2004.
+ In <em>IEEE Transactions on Pattern Analysis and Machine Intelligence</em>, vol. 26, no. 9, pp. 1124-1137, Sept. 2004.
<p></p><dt><a name="boyermyrvold04">70</a>
<dd>John M. Boyer and Wendy J. Myrvold<br>
Copied: branches/release/libs/graph/doc/boykov_kolmogorov_max_flow.html (from r63189, /trunk/libs/graph/doc/boykov_kolmogorov_max_flow.html)
==============================================================================
--- /trunk/libs/graph/doc/boykov_kolmogorov_max_flow.html (original)
+++ branches/release/libs/graph/doc/boykov_kolmogorov_max_flow.html 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -114,7 +114,8 @@
the minimum capacity is added to the residual capacity of the reverse edges. If
no more paths in the residual-edge tree are found, the algorithm terminates.
Instead of finding a new shortest path from source to sink in the graph in each
-iteration, Kolmogorov's version keeps the already found paths as follows:</P>
+iteration, the Boykov-Kolmogorov algorithm keeps the already found paths as
+follows:</P>
<P>The algorithm builds up two search trees, a source-tree and a
sink-tree. Each vertex has a label (stored in <I>ColorMap</I>) to
@@ -196,7 +197,7 @@
each vertex has a source and sink connect. During this step, all
vertices that have an unsaturated connection from source are added
to the active vertex list and so the source is not.</LI>
- <LI>active vertices: Kolmogorov uses two lists for active nodes
+ <LI>active vertices: Boykov-Kolmogorov uses two lists for active nodes
and states that new active vertices are added to the rear of the
second. Fetching an active vertex is done from the beginning of the
first list. If the first list is empty, it is exchanged by the
Modified: branches/release/libs/graph/doc/edmonds_karp_max_flow.html
==============================================================================
--- branches/release/libs/graph/doc/edmonds_karp_max_flow.html (original)
+++ branches/release/libs/graph/doc/edmonds_karp_max_flow.html 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -20,7 +20,7 @@
</H1>
<PRE>
-<i>// named paramter version</i>
+<i>// named parameter version</i>
template <class Graph, class P, class T, class R>
typename detail::edge_capacity_value<Graph, P, T, R>::value_type
edmonds_karp_max_flow(Graph& g,
@@ -76,7 +76,7 @@
algorithm is not as good as the <a
href="./push_relabel_max_flow.html"><tt>push_relabel_max_flow()</tt></a>
or the <a
-href="./kolmogorov_max_flow.html"><tt>kolmogorov_max_flow()</tt></a>
+href="./boykov_kolmogorov_max_flow.html"><tt>boykov_kolmogorov_max_flow()</tt></a>
algorithm.
<ul>
@@ -217,7 +217,7 @@
<h3>See Also</h3>
<a href="./push_relabel_max_flow.html"><tt>push_relabel_max_flow()</tt></a><br>
-kolmogorov_max_flow().
+boykov_kolmogorov_max_flow().
<br>
<HR>
Modified: branches/release/libs/graph/doc/graph_concepts.html
==============================================================================
--- branches/release/libs/graph/doc/graph_concepts.html (original)
+++ branches/release/libs/graph/doc/graph_concepts.html 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -30,7 +30,7 @@
<P>
The BGL interface does not appear as a single graph concept. Instead
-it is factored into much smaller peices. The reason for this is that
+it is factored into much smaller pieces. The reason for this is that
the purpose of a concept is to summarize the requirements for
<i>particular</i> algorithms. Any one algorithm does not need every
kind of graph operation, typically only a small subset. Furthermore,
@@ -224,7 +224,7 @@
<!---------------------------------------------------------------->
<TR><TD ALIGN="LEFT" COLSPAN=2>
<a href="./VertexListGraph.html">VertexListGraph</a> refines
- IncidenceGraph and AdjacencyGraph </TD>
+ Graph</TD>
</TR>
<TR><TD ALIGN="LEFT">
<TT>boost::graph_traits<G>::vertex_iterator</TT> </TD>
Modified: branches/release/libs/graph/doc/graph_theory_review.html
==============================================================================
--- branches/release/libs/graph/doc/graph_theory_review.html (original)
+++ branches/release/libs/graph/doc/graph_theory_review.html 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -356,8 +356,8 @@
</PRE>
<P>
-We start at vertex , and first visit <i>r</i> and <i>w</i> (the two
-neighbors of ). Once both neighbors of are visited, we visit the
+We start at vertex <i>s</i>, and first visit <i>r</i> and <i>w</i> (the two
+neighbors of <i>s</i>). Once both neighbors of are visited, we visit the
neighbor of <i>r</i> (vertex <i>v</i>), then the neighbors of <i>w</i>
(the discovery order between <i>r</i> and <i>w</i> does not matter)
which are <i>t</i> and <i>x</i>. Finally we visit the neighbors of
Modified: branches/release/libs/graph/doc/grid_graph.html
==============================================================================
--- branches/release/libs/graph/doc/grid_graph.html (original)
+++ branches/release/libs/graph/doc/grid_graph.html 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -74,7 +74,7 @@
<h4>Template Parameters</h4>
<pre class="code">
-<span class="keyword">template</span> <<span class="keyword">typename</span> <span class="name">std</span>::<span class="type">size_t</span> <span class="name">Dimensions</span>,
+<span class="keyword">template</span> <<span class="name">std</span>::<span class="type">size_t</span> <span class="name">Dimensions</span>,
<span class="keyword">typename</span> <span class="name">VertexIndex</span> = <span class="name">std</span>::<span class="type">size_t</span>,
<span class="keyword">typename</span> <span class="name">EdgeIndex</span> = <span class="name">VertexIndex</span>>
<span class="keyword">class</span> grid_graph;
Modified: branches/release/libs/graph/doc/history.html
==============================================================================
--- branches/release/libs/graph/doc/history.html (original)
+++ branches/release/libs/graph/doc/history.html 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -84,7 +84,7 @@
<a name="1.35.0"></a><li>Version 1.35.0<br><b>New algorithms and components</b>
<ul>
- <li>kolmogorov_max_flow, from Stephan Diederich as part of the 2006 Google Summer of Code.</li>
+ <li>boykov_kolmogorov_max_flow (formerly kolmogorov_max_flow), from Stephan Diederich as part of the 2006 Google Summer of Code.</li>
<li>read_dimacs_max_flow and write_dimacs_max_flow for max-flow problems, from Stephan Diederich.</li>
<li>read_graphml and write_graphml for GraphML input/output, from Tiago de Paula Peixoto.</li>
<li>minimum_cycle_ratio and maximum_cycle_ratio, from Dmitry Bufistov and Andrey Parfenov.</li>
Modified: branches/release/libs/graph/doc/kolmogorov_max_flow.html
==============================================================================
--- branches/release/libs/graph/doc/kolmogorov_max_flow.html (original)
+++ branches/release/libs/graph/doc/kolmogorov_max_flow.html 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -2,7 +2,7 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-15">
- <TITLE>Boost Graph Library: Kolmogorov Maximum Flow</TITLE>
+ <TITLE>Boost Graph Library: Boykov-Kolmogorov Maximum Flow</TITLE>
<META NAME="GENERATOR" CONTENT="OpenOffice.org 2.0 (Linux)">
<META NAME="CREATED" CONTENT="20060820;17315200">
<META NAME="CHANGEDBY" CONTENT="Stephan Diederich">
@@ -53,14 +53,31 @@
</STYLE>
</HEAD>
<BODY LANG="de-DE" TEXT="#000000" LINK="#0000ee" VLINK="#551a8b" BGCOLOR="#ffffff" DIR="LTR">
-<P><IMG SRC="../../../boost.png" NAME="Grafik1" ALT="C++ Boost" ALIGN=BOTTOM WIDTH=277 HEIGHT=86 BORDER=0>
+
+<P>
+<IMG SRC="../../../boost.png" NAME="Grafik1" ALT="C++ Boost" ALIGN=BOTTOM WIDTH=277 HEIGHT=86 BORDER=0>
</P>
+
+<table align="center" width="75%" style="border:1px solid; border-spacing: 10pt">
+<tr>
+ <td style="vertical-align: top"><img src="figs/warning.png"></td>
+ <td>
+ <b>Warning!</b> This header and its contents are <em>deprecated</em> and
+ will be removed in a future release. Please update your program to use
+ boykov_kolmogorov_max_flow
+ instead. Note that only the name of the algorithm has changed. The template
+ and function parameters will remain the same.
+ </td>
+</tr>
+</table>
+
+
<H1><A NAME="sec:kolmogorov_max_flow"></A><TT>kolmogorov_max_flow</TT>
</H1>
<PRE><I>// named parameter version</I>
template <class Graph, class P, class T, class R>
typename property_traits<typename property_map<Graph, edge_capacity_t>::const_type>::value_type
-kolmogorov_max_flow(Graph& g,
+kolmogorov_max_flow(Graph& g,
typename graph_traits<Graph>::vertex_descriptor src,
typename graph_traits<Graph>::vertex_descriptor sink,
const bgl_named_params<P, T, R>& params = <I>all defaults</I>)
@@ -88,14 +105,14 @@
maximum flow will be the return value of the function. The function
also calculates the flow values <I>f(u,v)</I> for all <I>(u,v)</I> in
<I>E</I>, which are returned in the form of the residual capacity
-<I>r(u,v) = c(u,v) - f(u,v)</I>.
+<I>r(u,v) = c(u,v) - f(u,v)</I>.
</P>
<P><B>Requirements:</B><BR>The directed graph <I>G=(V,E)</I> that
represents the network must include a reverse edge for every edge in
<I>E</I>. That is, the input graph should be <I>G<SUB>in</SUB> =
(V,{E U E<SUP>T</SUP>})</I>. The <TT>ReverseEdgeMap</TT> argument <TT>rev</TT>
must map each edge in the original graph to its reverse edge, that is
-<I>(u,v) -> (v,u)</I> for all <I>(u,v)</I> in <I>E</I>.
+<I>(u,v) -> (v,u)</I> for all <I>(u,v)</I> in <I>E</I>.
</P>
<P>Remarks: While the push-relabel method states that each edge in <I>E<SUP>T</SUP></I>
has to have capacity of 0, the reverse edges for this algorithm ARE
@@ -155,7 +172,7 @@
<UL>
<LI><P>Marking heuristics: A timestamp is stored for each vertex
which shows in which iteration of the algorithm the distance to the
- corresponding terminal was calculated.
+ corresponding terminal was calculated.
</P>
<UL>
<LI><P>This distance is used and gets calculated in the
@@ -190,7 +207,7 @@
improves especially graph-cuts used in image vision where nearly
each vertex has a source and sink connect. During this step, all
vertices that have an unsaturated connection from source are added
- to the active vertex list and so the source is not.
+ to the active vertex list and so the source is not.
</P>
<LI><P>active vertices: Kolmogorov uses two lists for active nodes
and states that new active vertices are added to the rear of the
@@ -210,7 +227,7 @@
<P><TT>boost/graph/kolmogorov_max_flow.hpp</TT>
</P>
<H3>Parameters</H3>
-<P>IN: <TT>Graph& g</TT>
+<P>IN: <TT>Graph& g</TT>
</P>
<BLOCKQUOTE>A directed graph. The graph's type must be a model of
<A HREF="VertexListGraph.html">Vertex List Graph</A>, <A HREF="EdgeListGraph.html">Edge
@@ -220,46 +237,46 @@
improved if the graph type also models <a href="AdjacencyMatrix.html">Adjacency
Matrix</a>.
</BLOCKQUOTE>
-<P>IN: <TT>vertex_descriptor src</TT>
+<P>IN: <TT>vertex_descriptor src</TT>
</P>
-<BLOCKQUOTE>The source vertex for the flow network graph.
+<BLOCKQUOTE>The source vertex for the flow network graph.
</BLOCKQUOTE>
-<P>IN: <TT>vertex_descriptor sink</TT>
+<P>IN: <TT>vertex_descriptor sink</TT>
</P>
-<BLOCKQUOTE>The sink vertex for the flow network graph.
+<BLOCKQUOTE>The sink vertex for the flow network graph.
</BLOCKQUOTE>
<H3>Named Parameters</H3>
-<P>IN: <TT>edge_capacity(EdgeCapacityMap cap)</TT>
+<P>IN: <TT>edge_capacity(EdgeCapacityMap cap)</TT>
</P>
<BLOCKQUOTE>The edge capacity property map. The type must be a model
of a constant <A HREF="../../property_map/doc/LvaluePropertyMap.html">Lvalue
Property Map</A>. The key type of the map must be the graph's edge
-descriptor type.<BR><B>Default:</B> <TT>get(edge_capacity, g)</TT>
+descriptor type.<BR><B>Default:</B> <TT>get(edge_capacity, g)</TT>
</BLOCKQUOTE>
-<P>OUT: <TT>edge_residual_capacity(ResidualCapacityEdgeMap res)</TT>
+<P>OUT: <TT>edge_residual_capacity(ResidualCapacityEdgeMap res)</TT>
</P>
<BLOCKQUOTE>The edge residual capacity property map. The type must be
a model of a mutable <A HREF="../../property_map/doc/LvaluePropertyMap.html">Lvalue
Property Map</A>. The key type of the map must be the graph's edge
descriptor type.<BR><B>Default:</B> <TT>get(edge_residual_capacity,
-g)</TT>
+g)</TT>
</BLOCKQUOTE>
-<P>IN: <TT>edge_reverse(ReverseEdgeMap rev)</TT>
+<P>IN: <TT>edge_reverse(ReverseEdgeMap rev)</TT>
</P>
<BLOCKQUOTE>An edge property map that maps every edge <I>(u,v)</I> in
the graph to the reverse edge <I>(v,u)</I>. The map must be a model
of constant <A HREF="../../property_map/doc/LvaluePropertyMap.html">Lvalue
Property Map</A>. The key type of the map must be the graph's edge
-descriptor type.<BR><B>Default:</B> <TT>get(edge_reverse, g)</TT>
+descriptor type.<BR><B>Default:</B> <TT>get(edge_reverse, g)</TT>
</BLOCKQUOTE>
-<P>UTIL: <TT>vertex_predecessor(PredecessorMap pre_map)</TT>
+<P>UTIL: <TT>vertex_predecessor(PredecessorMap pre_map)</TT>
</P>
<BLOCKQUOTE>A vertex property map that stores the edge to the vertex'
predecessor. The map must be a model of mutable <A HREF="../../property_map/doc/LvaluePropertyMap.html">Lvalue
Property Map</A>. The key type of the map must be the graph's vertex
descriptor type.<BR><B>Default:</B> <TT>get(vertex_predecessor, g)</TT>
</BLOCKQUOTE>
-<P>OUT/UTIL: <TT>vertex_color(ColorMap color)</TT>
+<P>OUT/UTIL: <TT>vertex_color(ColorMap color)</TT>
</P>
<BLOCKQUOTE>A vertex property map that stores a color for edge
vertex. If the color of a vertex after running the algorithm is black
@@ -267,29 +284,29 @@
sink-tree (used for minimum cuts). The map must be a model of mutable
<A HREF="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property
Map</A>. The key type of the map must be the graph's vertex
-descriptor type.<BR><B>Default:</B> <TT>get(vertex_color, g)</TT>
+descriptor type.<BR><B>Default:</B> <TT>get(vertex_color, g)</TT>
</BLOCKQUOTE>
-<P>UTIL: <TT>vertex_distance(DistanceMap dist)</TT>
+<P>UTIL: <TT>vertex_distance(DistanceMap dist)</TT>
</P>
<BLOCKQUOTE>A vertex property map that stores the distance to the
corresponding terminal. It's a utility-map for speeding up the
algorithm. The map must be a model of mutable <A HREF="../../property_map/doc/LvaluePropertyMap.html">Lvalue
Property Map</A>. The key type of the map must be the graph's vertex
-descriptor type.<BR><B>Default:</B> <TT>get(vertex_distance, g)</TT>
+descriptor type.<BR><B>Default:</B> <TT>get(vertex_distance, g)</TT>
</BLOCKQUOTE>
-<P>IN: <TT>vertex_index(VertexIndexMap index_map)</TT>
+<P>IN: <TT>vertex_index(VertexIndexMap index_map)</TT>
</P>
<BLOCKQUOTE>Maps each vertex of the graph to a unique integer in the
range <TT>[0, num_vertices(g))</TT>. The map must be a model of
constant LvaluePropertyMap.
The key type of the map must be the graph's vertex descriptor
-type.<BR><B>Default:</B> <TT>get(vertex_index, g)</TT>
+type.<BR><B>Default:</B> <TT>get(vertex_index, g)</TT>
</BLOCKQUOTE>
<H3>Example</H3>
<P>This reads an example maximum flow problem (a graph with edge
capacities) from a file in the DIMACS format (<TT>example/max_flow.dat</TT>).
The source for this example can be found in
-<TT>example/kolmogorov-eg.cpp</TT>.
+<TT>example/boykov_kolmogorov-eg.cpp</TT>.
</P>
<PRE>#include <boost/config.hpp>
#include <iostream>
@@ -311,11 +328,11 @@
property < vertex_color_t, boost::default_color_type,
property < vertex_distance_t, long,
property < vertex_predecessor_t, Traits::edge_descriptor > > > > >,
-
+
property < edge_capacity_t, long,
property < edge_residual_capacity_t, long,
property < edge_reverse_t, Traits::edge_descriptor > > > > Graph;
-
+
Graph g;
property_map < Graph, edge_capacity_t >::type
capacity = get(edge_capacity, g);
@@ -343,7 +360,7 @@
return EXIT_SUCCESS;
}</PRE><P>
-The output is:
+The output is:
</P>
<PRE>c The total flow:
s 13
Modified: branches/release/libs/graph/doc/push_relabel_max_flow.html
==============================================================================
--- branches/release/libs/graph/doc/push_relabel_max_flow.html (original)
+++ branches/release/libs/graph/doc/push_relabel_max_flow.html 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -226,7 +226,7 @@
<h3>See Also</h3>
<a href="./edmonds_karp_max_flow.html"><tt>edmonds_karp_max_flow()</tt></a><br>
-kolmogorov_max_flow().
+boykov_kolmogorov_max_flow().
<br>
<HR>
Modified: branches/release/libs/graph/doc/quick_tour.html
==============================================================================
--- branches/release/libs/graph/doc/quick_tour.html (original)
+++ branches/release/libs/graph/doc/quick_tour.html 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -445,7 +445,7 @@
E(4,0), E(4,1) };
int weights[] = { 1, 2, 1, 2, 7, 3, 1, 1, 1};
- Graph G(edges + sizeof(edges) / sizeof(E), weights, num_nodes);
+ Graph G(edges, edges + sizeof(edges) / sizeof(E), weights, num_nodes);
</pre>
<p>For the external distance property we will use a <tt>std::vector</tt> for
storage. BGL algorithms treat random access iterators as property maps, so we
Modified: branches/release/libs/graph/doc/table_of_contents.html
==============================================================================
--- branches/release/libs/graph/doc/table_of_contents.html (original)
+++ branches/release/libs/graph/doc/table_of_contents.html 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -196,7 +196,12 @@
<OL>
<LI>edmonds_karp_max_flow
<LI>push_relabel_max_flow
- <li>kolmogorov_max_flow</li>
+ <li>
+ kolmogorov_max_flow (<em>Deprecated</em>.
+ Use boykov_kolmogorov_max_flow
+ instead.)
+ </li>
+ <li>boykov_kolmogorov_max_flow</li>
<LI>edmonds_maximum_cardinality_matching
</OL>
Modified: branches/release/libs/graph/doc/write-graphviz.html
==============================================================================
--- branches/release/libs/graph/doc/write-graphviz.html (original)
+++ branches/release/libs/graph/doc/write-graphviz.html 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -57,15 +57,15 @@
// Graph structure with dynamic property output
template<typename Graph>
void
-write_graphviz(std::ostream& out, const Graph& g,
- const dynamic_properties& dp,
- const std::string& node_id = "node_id");
+write_graphviz_dp(std::ostream& out, const Graph& g,
+ const dynamic_properties& dp,
+ const std::string& node_id = "node_id");
template<typename Graph, typename VertexID>
void
-write_graphviz(std::ostream& out, const Graph& g,
- const dynamic_properties& dp, const std::string& node_id,
- VertexID vertex_id);
+write_graphviz_dp(std::ostream& out, const Graph& g,
+ const dynamic_properties& dp, const std::string& node_id,
+ VertexID vertex_id);
</pre>
<p>
@@ -92,7 +92,7 @@
<a href="./write-graphviz.html#concept:PropertyWriter">PropertyWriter</a>,
respectively.
-<p> The final two overloads of <code>write_graphviz</code> will emit
+<p> The two overloads of <code>write_graphviz_dp</code> will emit
all of the properties stored in the <a
href="../../property_map/doc/dynamic_property_map.html"><code>dynamic_properties</a></code>
object, thereby retaining the properties that have been read in
@@ -329,10 +329,6 @@
<a href="./read_graphviz.html"><tt>read_graphviz</tt></a>
-<h3>Notes</h3>
-Note that you can use Graphviz dot file write facilities
-without the library <tt>libbglviz.a</tt>.
-
<br>
<HR>
<TABLE>
Modified: branches/release/libs/graph/example/Jamfile.v2
==============================================================================
--- branches/release/libs/graph/example/Jamfile.v2 (original)
+++ branches/release/libs/graph/example/Jamfile.v2 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -22,3 +22,8 @@
exe grid_graph_example : grid_graph_example.cpp ;
exe bipartite_example : bipartite_example.cpp ;
exe fr_layout : fr_layout.cpp ;
+exe canonical_ordering : canonical_ordering.cpp ;
+exe components_on_edgelist : components_on_edgelist.cpp ;
+exe boykov_kolmogorov-eg : boykov_kolmogorov-eg.cpp ;
+exe ospf-example : ospf-example.cpp ../build//boost_graph ;
+# exe cc-internet : cc-internet.cpp ../build//boost_graph ;
Modified: branches/release/libs/graph/example/accum-compile-times.cpp
==============================================================================
--- branches/release/libs/graph/example/accum-compile-times.cpp (original)
+++ branches/release/libs/graph/example/accum-compile-times.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -85,14 +85,14 @@
std::ifstream name_in("makefile-target-names.dat");
std::ifstream compile_cost_in("target-compile-costs.dat");
graph_traits < file_dep_graph2 >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
name_in >> name_map[*vi];
compile_cost_in >> compile_cost_map[*vi];
}
graph_property_iter_range < file_dep_graph2,
vertex_compile_cost_t >::iterator ci, ci_end;
- tie(ci, ci_end) = get_property_iter_range(g, vertex_compile_cost);
+ boost::tie(ci, ci_end) = get_property_iter_range(g, vertex_compile_cost);
std::cout << "total (sequential) compile time: "
<< std::accumulate(ci, ci_end, 0.0) << std::endl;
Modified: branches/release/libs/graph/example/astar-cities.cpp
==============================================================================
--- branches/release/libs/graph/example/astar-cities.cpp (original)
+++ branches/release/libs/graph/example/astar-cities.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -164,8 +164,8 @@
WeightMap weightmap = get(edge_weight, g);
for(std::size_t j = 0; j < num_edges; ++j) {
edge_descriptor e; bool inserted;
- tie(e, inserted) = add_edge(edge_array[j].first,
- edge_array[j].second, g);
+ boost::tie(e, inserted) = add_edge(edge_array[j].first,
+ edge_array[j].second, g);
weightmap[e] = weights[j];
}
Modified: branches/release/libs/graph/example/bellman-example.cpp
==============================================================================
--- branches/release/libs/graph/example/bellman-example.cpp (original)
+++ branches/release/libs/graph/example/bellman-example.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -74,7 +74,7 @@
property_map<Graph, int EdgeProperties::*>::type
weight_pmap = get(&EdgeProperties::weight, g);
int i = 0;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei, ++i)
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei, ++i)
weight_pmap[*ei] = weight[i];
std::vector<int> distance(N, (std::numeric_limits < short >::max)());
@@ -108,7 +108,7 @@
<< " edge[style=\"bold\"]\n" << " node[shape=\"circle\"]\n";
{
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
graph_traits < Graph >::edge_descriptor e = *ei;
graph_traits < Graph >::vertex_descriptor
u = source(e, g), v = target(e, g);
Modified: branches/release/libs/graph/example/bfs-example2.cpp
==============================================================================
--- branches/release/libs/graph/example/bfs-example2.cpp (original)
+++ branches/release/libs/graph/example/bfs-example2.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -78,7 +78,7 @@
std::vector < Size > dtime(num_vertices(g));
graph_traits<graph_t>::vertex_iterator vi, vi_end;
std::size_t c = 0;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi, ++c)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi, ++c)
dtime[c] = dtime_map[*vi];
// Use std::sort to order the vertices by their discover time
Modified: branches/release/libs/graph/example/bfs-name-printer.cpp
==============================================================================
--- branches/release/libs/graph/example/bfs-name-printer.cpp (original)
+++ branches/release/libs/graph/example/bfs-name-printer.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -32,19 +32,19 @@
typename graph_traits<Graph>::edge_descriptor ed;
bool inserted;
- tie(ed, inserted) = add_edge(a, b, g);
+ boost::tie(ed, inserted) = add_edge(a, b, g);
delay_map[ed] = 1.2;
- tie(ed, inserted) = add_edge(a, d, g);
+ boost::tie(ed, inserted) = add_edge(a, d, g);
delay_map[ed] = 4.5;
- tie(ed, inserted) = add_edge(b, d, g);
+ boost::tie(ed, inserted) = add_edge(b, d, g);
delay_map[ed] = 1.8;
- tie(ed, inserted) = add_edge(c, a, g);
+ boost::tie(ed, inserted) = add_edge(c, a, g);
delay_map[ed] = 2.6;
- tie(ed, inserted) = add_edge(c, e, g);
+ boost::tie(ed, inserted) = add_edge(c, e, g);
delay_map[ed] = 5.2;
- tie(ed, inserted) = add_edge(d, c, g);
+ boost::tie(ed, inserted) = add_edge(d, c, g);
delay_map[ed] = 0.4;
- tie(ed, inserted) = add_edge(d, e, g);
+ boost::tie(ed, inserted) = add_edge(d, e, g);
delay_map[ed] = 3.3;
}
Modified: branches/release/libs/graph/example/biconnected_components.cpp
==============================================================================
--- branches/release/libs/graph/example/biconnected_components.cpp (original)
+++ branches/release/libs/graph/example/biconnected_components.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -63,7 +63,7 @@
}
graph_traits < graph_t >::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
std::cout << (char)(source(*ei, g) + 'A') << " -- "
<< (char)(target(*ei, g) + 'A')
<< "[label=\"" << component[*ei] << "\"]\n";
Modified: branches/release/libs/graph/example/bipartite_example.cpp
==============================================================================
--- branches/release/libs/graph/example/bipartite_example.cpp (original)
+++ branches/release/libs/graph/example/bipartite_example.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -41,7 +41,7 @@
is_bipartite (g, get (vertex_index, g), partition_map);
- for (tie (vertex_iter, vertex_end) = vertices (g); vertex_iter != vertex_end; ++vertex_iter)
+ for (boost::tie (vertex_iter, vertex_end) = vertices (g); vertex_iter != vertex_end; ++vertex_iter)
{
std::cout << "Vertex " << *vertex_iter << " has color " << (get (partition_map, *vertex_iter) == color_traits <
default_color_type>::white () ? "white" : "black") << std::endl;
Modified: branches/release/libs/graph/example/boost_web_graph.cpp
==============================================================================
--- branches/release/libs/graph/example/boost_web_graph.cpp (original)
+++ branches/release/libs/graph/example/boost_web_graph.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -116,7 +116,7 @@
std::list<std::string>::iterator i = line_toks.begin();
- tie(pos, inserted) = name2vertex.insert(std::make_pair(*i, Vertex()));
+ boost::tie(pos, inserted) = name2vertex.insert(std::make_pair(*i, Vertex()));
if (inserted) {
u = add_vertex(g);
put(node_name, u, *i);
@@ -127,7 +127,7 @@
std::string hyperlink_name = *i++;
- tie(pos, inserted) = name2vertex.insert(std::make_pair(*i, Vertex()));
+ boost::tie(pos, inserted) = name2vertex.insert(std::make_pair(*i, Vertex()));
if (inserted) {
v = add_vertex(g);
put(node_name, v, *i);
@@ -136,7 +136,7 @@
v = pos->second;
Edge e;
- tie(e, inserted) = add_edge(u, v, g);
+ boost::tie(e, inserted) = add_edge(u, v, g);
if (inserted) {
put(link_name, e, hyperlink_name);
}
@@ -170,7 +170,7 @@
std::cout << "Number of clicks from the home page: " << std::endl;
Traits::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
std::cout << d_matrix[0][*vi] << "\t" << node_name[*vi] << std::endl;
std::cout << std::endl;
@@ -179,7 +179,7 @@
// Create storage for a mapping from vertices to their parents
std::vector<Traits::vertex_descriptor> parent(num_vertices(g));
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
parent[*vi] = *vi;
// Do a BFS starting at the home page, recording the parent of each
@@ -192,7 +192,7 @@
// Add all the search tree edges into a new graph
Graph search_tree(num_vertices(g));
- tie(vi, vi_end) = vertices(g);
+ boost::tie(vi, vi_end) = vertices(g);
++vi;
for (; vi != vi_end; ++vi)
add_edge(parent[*vi], *vi, search_tree);
@@ -205,7 +205,7 @@
std::vector<size_type> dfs_distances(num_vertices(g), 0);
print_tree_visitor<NameMap, size_type*>
tree_printer(node_name, &dfs_distances[0]);
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
get(vertex_color, g)[*vi] = white_color;
depth_first_visit(search_tree, src, tree_printer, get(vertex_color, g));
Copied: branches/release/libs/graph/example/boykov_kolmogorov-eg.cpp (from r63189, /trunk/libs/graph/example/boykov_kolmogorov-eg.cpp)
==============================================================================
--- /trunk/libs/graph/example/boykov_kolmogorov-eg.cpp (original)
+++ branches/release/libs/graph/example/boykov_kolmogorov-eg.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -101,8 +101,8 @@
std::cout << "c flow values:" << std::endl;
graph_traits < Graph >::vertex_iterator u_iter, u_end;
graph_traits < Graph >::out_edge_iterator ei, e_end;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
+ for (boost::tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
+ for (boost::tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
if (capacity[*ei] > 0)
std::cout << "f " << *u_iter << " " << target(*ei, g) << " "
<< (capacity[*ei] - residual_capacity[*ei]) << std::endl;
Modified: branches/release/libs/graph/example/cc-internet.cpp
==============================================================================
--- branches/release/libs/graph/example/cc-internet.cpp (original)
+++ branches/release/libs/graph/example/cc-internet.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -30,7 +30,7 @@
std::string color[] = {
"white", "gray", "black", "lightgray"};
graph_traits < GraphvizGraph >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
vertex_attr_map[*vi]["color"] = color[component[*vi]];
vertex_attr_map[*vi]["style"] = "filled";
if (vertex_attr_map[*vi]["color"] == "black")
Modified: branches/release/libs/graph/example/components_on_edgelist.cpp
==============================================================================
--- branches/release/libs/graph/example/components_on_edgelist.cpp (original)
+++ branches/release/libs/graph/example/components_on_edgelist.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -68,7 +68,7 @@
print_edges(g, identity_property_map());
cout << endl;
- disjoint_sets_with_storage<> ds;
+ disjoint_sets_with_storage<> ds(N);
incremental_components(g, ds);
component_index<int> components(&ds.parents()[0],
@@ -80,11 +80,11 @@
<< ds.find_set(k) << endl;
cout << endl;
- for (component_index<int>::size_type i = 0; i < components.size(); ++i) {
+ for (std::size_t i = 0; i < components.size(); ++i) {
cout << "component " << i << " contains: ";
- component_index<int>::value_type::iterator
- j = components[i].begin(),
- jend = components[i].end();
+ component_index<int>::component_iterator
+ j = components[i].first,
+ jend = components[i].second;
for ( ; j != jend; ++j)
cout << *j << " ";
cout << endl;
Modified: branches/release/libs/graph/example/copy-example.cpp
==============================================================================
--- branches/release/libs/graph/example/copy-example.cpp (original)
+++ branches/release/libs/graph/example/copy-example.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -26,7 +26,7 @@
name_map = get(vertex_name, G);
char name = 'a';
graph_traits < graph_t >::vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(G); v != v_end; ++v, ++name)
+ for (boost::tie(v, v_end) = vertices(G); v != v_end; ++v, ++name)
name_map[*v] = name;
typedef std::pair < int, int >E;
Modified: branches/release/libs/graph/example/cycle-file-dep.cpp
==============================================================================
--- branches/release/libs/graph/example/cycle-file-dep.cpp (original)
+++ branches/release/libs/graph/example/cycle-file-dep.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -38,7 +38,7 @@
{
color[u] = gray_color;
graph_traits < file_dep_graph >::adjacency_iterator vi, vi_end;
- for (tie(vi, vi_end) = adjacent_vertices(u, g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = adjacent_vertices(u, g); vi != vi_end; ++vi)
if (color[*vi] == white_color) {
if (has_cycle_dfs(g, *vi, color))
return true; // cycle detected, return immediately
@@ -53,7 +53,7 @@
{
std::vector < default_color_type > color(num_vertices(g), white_color);
graph_traits < file_dep_graph >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
if (color[*vi] == white_color)
if (has_cycle_dfs(g, *vi, &color[0]))
return true;
@@ -75,7 +75,7 @@
file_dep_graph g(n_vertices);
while (input_begin != input_end) {
size_type i, j;
- tie(i, j) = *input_begin++;
+ boost::tie(i, j) = *input_begin++;
add_edge(i, j, g);
}
#else
@@ -85,7 +85,7 @@
std::vector < std::string > name(num_vertices(g));
std::ifstream name_in("makefile-target-names.dat");
graph_traits < file_dep_graph >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
name_in >> name[*vi];
assert(has_cycle(g) == false);
Modified: branches/release/libs/graph/example/cycle-file-dep2.cpp
==============================================================================
--- branches/release/libs/graph/example/cycle-file-dep2.cpp (original)
+++ branches/release/libs/graph/example/cycle-file-dep2.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -42,7 +42,7 @@
color[u] = gray_color;
vis.discover_vertex(u, g);
graph_traits < file_dep_graph >::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
if (color[target(*ei, g)] == white_color) {
vis.tree_edge(*ei, g);
dfs_v1(g, target(*ei, g), color, vis);
@@ -60,7 +60,7 @@
{
std::vector < default_color_type > color(num_vertices(g), white_color);
graph_traits < file_dep_graph >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
if (color[*vi] == white_color)
dfs_v1(g, *vi, &color[0], vis);
}
@@ -132,7 +132,7 @@
file_dep_graph g(n_vertices);
while (input_begin != input_end) {
size_type i, j;
- tie(i, j) = *input_begin++;
+ boost::tie(i, j) = *input_begin++;
add_edge(i, j, g);
}
#else
@@ -142,7 +142,7 @@
std::vector < std::string > name(num_vertices(g));
std::ifstream name_in("makefile-target-names.dat");
graph_traits < file_dep_graph >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
name_in >> name[*vi];
assert(has_cycle(g) == false);
Modified: branches/release/libs/graph/example/cycle_ratio_example.cpp
==============================================================================
--- branches/release/libs/graph/example/cycle_ratio_example.cpp (original)
+++ branches/release/libs/graph/example/cycle_ratio_example.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -60,7 +60,7 @@
cout << "Edges number: " << num_edges(tgr) << endl;
int i = 0;
graph_traits<grap_real_t>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(tgr); vi != vi_end; vi++) {
+ for (boost::tie(vi, vi_end) = vertices(tgr); vi != vi_end; vi++) {
vim[*vi] = i++; ///Initialize vertex index property
}
max_cr = maximum_cycle_ratio(tgr, vim, ew1, ew2);
Modified: branches/release/libs/graph/example/dag_shortest_paths.cpp
==============================================================================
--- branches/release/libs/graph/example/dag_shortest_paths.cpp (original)
+++ branches/release/libs/graph/example/dag_shortest_paths.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -60,7 +60,7 @@
#endif
graph_traits<graph_t>::vertex_iterator vi , vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
if (d_map[*vi] == (std::numeric_limits<int>::max)())
std::cout << name[*vi] << ": inifinity\n";
else
Modified: branches/release/libs/graph/example/dfs-parenthesis.cpp
==============================================================================
--- branches/release/libs/graph/example/dfs-parenthesis.cpp (original)
+++ branches/release/libs/graph/example/dfs-parenthesis.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -36,7 +36,7 @@
GraphvizGraph g;
read_graphviz("figs/dfs-example.dot", g);
graph_traits < GraphvizGraph >::edge_iterator e, e_end;
- for (tie(e, e_end) = edges(g); e != e_end; ++e)
+ for (boost::tie(e, e_end) = edges(g); e != e_end; ++e)
std::cout << '(' << name[source(*e, g)] << ' '
<< name[target(*e, g)] << ')' << std::endl;
parenthesis_visitor
Modified: branches/release/libs/graph/example/dijkstra-example-listS.cpp
==============================================================================
--- branches/release/libs/graph/example/dijkstra-example-listS.cpp (original)
+++ branches/release/libs/graph/example/dijkstra-example-listS.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -43,13 +43,13 @@
property_map<graph_t, edge_weight_t>::type weightmap = get(edge_weight, g);
std::vector<vertex_descriptor> msvc_vertices;
- for (tie(i, iend) = vertices(g); i != iend; ++i)
+ for (boost::tie(i, iend) = vertices(g); i != iend; ++i)
msvc_vertices.push_back(*i);
for (std::size_t j = 0; j < num_arcs; ++j) {
edge_descriptor e; bool inserted;
- tie(e, inserted) = add_edge(msvc_vertices[edge_array[j].first],
- msvc_vertices[edge_array[j].second], g);
+ boost::tie(e, inserted) = add_edge(msvc_vertices[edge_array[j].first],
+ msvc_vertices[edge_array[j].second], g);
weightmap[e] = weights[j];
}
@@ -62,7 +62,7 @@
property_map<graph_t, vertex_index_t>::type indexmap = get(vertex_index, g);
property_map<graph_t, vertex_name_t>::type name = get(vertex_name, g);
int c = 0;
- for (tie(i, iend) = vertices(g); i != iend; ++i, ++c) {
+ for (boost::tie(i, iend) = vertices(g); i != iend; ++i, ++c) {
indexmap[*i] = c;
name[*i] = 'A' + c;
}
@@ -86,7 +86,7 @@
std::cout << "distances and parents:" << std::endl;
graph_traits < graph_t >::vertex_iterator vi, vend;
- for (tie(vi, vend) = vertices(g); vi != vend; ++vi) {
+ for (boost::tie(vi, vend) = vertices(g); vi != vend; ++vi) {
std::cout << "distance(" << name[*vi] << ") = " << d[*vi] << ", ";
std::cout << "parent(" << name[*vi] << ") = " << name[p[*vi]] << std::
endl;
@@ -101,7 +101,7 @@
<< " edge[style=\"bold\"]\n" << " node[shape=\"circle\"]\n";
graph_traits < graph_t >::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
graph_traits < graph_t >::edge_descriptor e = *ei;
graph_traits < graph_t >::vertex_descriptor
u = source(e, g), v = target(e, g);
Modified: branches/release/libs/graph/example/dijkstra-example.cpp
==============================================================================
--- branches/release/libs/graph/example/dijkstra-example.cpp (original)
+++ branches/release/libs/graph/example/dijkstra-example.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -37,7 +37,7 @@
property_map<graph_t, edge_weight_t>::type weightmap = get(edge_weight, g);
for (std::size_t j = 0; j < num_arcs; ++j) {
edge_descriptor e; bool inserted;
- tie(e, inserted) = add_edge(edge_array[j].first, edge_array[j].second, g);
+ boost::tie(e, inserted) = add_edge(edge_array[j].first, edge_array[j].second, g);
weightmap[e] = weights[j];
}
#else
@@ -61,7 +61,7 @@
std::cout << "distances and parents:" << std::endl;
graph_traits < graph_t >::vertex_iterator vi, vend;
- for (tie(vi, vend) = vertices(g); vi != vend; ++vi) {
+ for (boost::tie(vi, vend) = vertices(g); vi != vend; ++vi) {
std::cout << "distance(" << name[*vi] << ") = " << d[*vi] << ", ";
std::cout << "parent(" << name[*vi] << ") = " << name[p[*vi]] << std::
endl;
@@ -77,7 +77,7 @@
<< " edge[style=\"bold\"]\n" << " node[shape=\"circle\"]\n";
graph_traits < graph_t >::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
graph_traits < graph_t >::edge_descriptor e = *ei;
graph_traits < graph_t >::vertex_descriptor
u = source(e, g), v = target(e, g);
Modified: branches/release/libs/graph/example/dijkstra-no-color-map-example.cpp
==============================================================================
--- branches/release/libs/graph/example/dijkstra-no-color-map-example.cpp (original)
+++ branches/release/libs/graph/example/dijkstra-no-color-map-example.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -41,7 +41,7 @@
property_map<graph_t, edge_weight_t>::type weightmap = get(edge_weight, g);
for (std::size_t j = 0; j < num_arcs; ++j) {
edge_descriptor e; bool inserted;
- tie(e, inserted) = add_edge(edge_array[j].first, edge_array[j].second, g);
+ boost::tie(e, inserted) = add_edge(edge_array[j].first, edge_array[j].second, g);
weightmap[e] = weights[j];
}
#else
@@ -66,7 +66,7 @@
std::cout << "distances and parents:" << std::endl;
graph_traits < graph_t >::vertex_iterator vi, vend;
- for (tie(vi, vend) = vertices(g); vi != vend; ++vi) {
+ for (boost::tie(vi, vend) = vertices(g); vi != vend; ++vi) {
std::cout << "distance(" << name[*vi] << ") = " << d[*vi] << ", ";
std::cout << "parent(" << name[*vi] << ") = " << name[p[*vi]] << std::
endl;
@@ -82,7 +82,7 @@
<< " edge[style=\"bold\"]\n" << " node[shape=\"circle\"]\n";
graph_traits < graph_t >::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
graph_traits < graph_t >::edge_descriptor e = *ei;
graph_traits < graph_t >::vertex_descriptor
u = source(e, g), v = target(e, g);
Modified: branches/release/libs/graph/example/eccentricity.cpp
==============================================================================
--- branches/release/libs/graph/example/eccentricity.cpp (original)
+++ branches/release/libs/graph/example/eccentricity.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -73,11 +73,11 @@
int r, d;
EccentricityContainer eccs(num_vertices(g));
EccentricityMap em(eccs, g);
- tie(r, d) = all_eccentricities(g, dm, em);
+ boost::tie(r, d) = all_eccentricities(g, dm, em);
// Print the closeness centrality of each vertex.
graph_traits<Graph>::vertex_iterator i, end;
- for(tie(i, end) = vertices(g); i != end; ++i) {
+ for(boost::tie(i, end) = vertices(g); i != end; ++i) {
cout << setw(12) << setiosflags(ios::left)
<< g[*i].name << get(em, *i) << endl;
}
Modified: branches/release/libs/graph/example/edge-connectivity.cpp
==============================================================================
--- branches/release/libs/graph/example/edge-connectivity.cpp (original)
+++ branches/release/libs/graph/example/edge-connectivity.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -24,7 +24,7 @@
typedef typename graph_traits < Graph >::degree_size_type size_type;
size_type delta = (std::numeric_limits < size_type >::max)();
typename graph_traits < Graph >::vertex_iterator i, iend;
- for (tie(i, iend) = vertices(g); i != iend; ++i)
+ for (boost::tie(i, iend) = vertices(g); i != iend; ++i)
if (degree(*i, g) < delta)
{
delta = degree(*i, g);
@@ -39,7 +39,7 @@
OutputIterator result)
{
typename graph_traits < Graph >::adjacency_iterator ai, aend;
- for (tie(ai, aend) = adjacent_vertices(u, g); ai != aend; ++ai)
+ for (boost::tie(ai, aend) = adjacent_vertices(u, g); ai != aend; ++ai)
*result++ = *ai;
}
template < typename Graph, typename VertexIterator,
@@ -87,17 +87,17 @@
rev_edge = get(edge_reverse, flow_g);
typename graph_traits < VertexListGraph >::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
u = source(*ei, g), v = target(*ei, g);
- tie(e1, inserted) = add_edge(u, v, flow_g);
+ boost::tie(e1, inserted) = add_edge(u, v, flow_g);
cap[e1] = 1;
- tie(e2, inserted) = add_edge(v, u, flow_g);
+ boost::tie(e2, inserted) = add_edge(v, u, flow_g);
cap[e2] = 1;
rev_edge[e1] = e2;
rev_edge[e2] = e1;
}
- tie(p, delta) = min_degree_vertex(g);
+ boost::tie(p, delta) = min_degree_vertex(g);
S_star.push_back(p);
alpha_star = delta;
S.insert(p);
@@ -115,7 +115,7 @@
if (alpha_S_k < alpha_star) {
alpha_star = alpha_S_k;
S_star.clear();
- for (tie(vi, vi_end) = vertices(flow_g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(flow_g); vi != vi_end; ++vi)
if (color[*vi] != Color::white())
S_star.push_back(*vi);
}
@@ -135,7 +135,7 @@
degree_size_type c = 0;
for (si = S_star.begin(); si != S_star.end(); ++si) {
typename graph_traits < VertexListGraph >::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(*si, g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = out_edges(*si, g); ei != ei_end; ++ei)
if (!in_S_star[target(*ei, g)]) {
*disconnecting_set++ = *ei;
++c;
Modified: branches/release/libs/graph/example/edge-function.cpp
==============================================================================
--- branches/release/libs/graph/example/edge-function.cpp (original)
+++ branches/release/libs/graph/example/edge-function.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -43,7 +43,7 @@
{
typename graph_traits < Graph >::adjacency_iterator vi, vi_end;
out << get(name_map, u) << " -> { ";
- for (tie(vi, vi_end) = adjacent_vertices(u, g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = adjacent_vertices(u, g); vi != vi_end; ++vi)
out << get(name_map, *vi) << " ";
out << "}" << std::endl;
}
@@ -108,7 +108,7 @@
name_map_t name = get(vertex_name, g);
// Get iterators for the vertex set
graph_traits < graph_type >::vertex_iterator i, end;
- tie(i, end) = vertices(g);
+ boost::tie(i, end) = vertices(g);
// Find yow.h
name_equals_t < name_map_t > predicate1("yow.h", name);
yow = *std::find_if(i, end, predicate1);
@@ -123,13 +123,13 @@
bool exists;
// Get the edge connecting yow.h to zag.o
- tie(e1, exists) = edge(yow, zag, g);
+ boost::tie(e1, exists) = edge(yow, zag, g);
assert(exists == true);
assert(source(e1, g) == yow);
assert(target(e1, g) == zag);
// Discover that there is no edge connecting zag.o to bar.o
- tie(e2, exists) = edge(zag, bar, g);
+ boost::tie(e2, exists) = edge(zag, bar, g);
assert(exists == false);
assert(num_vertices(g) == 15);
Modified: branches/release/libs/graph/example/edge_property.cpp
==============================================================================
--- branches/release/libs/graph/example/edge_property.cpp (original)
+++ branches/release/libs/graph/example/edge_property.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -151,8 +151,8 @@
boost::graph_traits<Graph>::vertex_iterator v, v_end;
boost::graph_traits<Graph>::out_edge_iterator e, e_end;
int f = 0;
- for (tie(v, v_end) = vertices(G); v != v_end; ++v)
- for (tie(e, e_end) = out_edges(*v, G); e != e_end; ++e)
+ for (boost::tie(v, v_end) = vertices(G); v != v_end; ++v)
+ for (boost::tie(e, e_end) = out_edges(*v, G); e != e_end; ++e)
flow[*e] = ++f;
cout << endl << endl;
Modified: branches/release/libs/graph/example/edmonds-karp-eg.cpp
==============================================================================
--- branches/release/libs/graph/example/edmonds-karp-eg.cpp (original)
+++ branches/release/libs/graph/example/edmonds-karp-eg.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -80,8 +80,8 @@
std::cout << "c flow values:" << std::endl;
graph_traits < Graph >::vertex_iterator u_iter, u_end;
graph_traits < Graph >::out_edge_iterator ei, e_end;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
+ for (boost::tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
+ for (boost::tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
if (capacity[*ei] > 0)
std::cout << "f " << *u_iter << " " << target(*ei, g) << " "
<< (capacity[*ei] - residual_capacity[*ei]) << std::endl;
Modified: branches/release/libs/graph/example/family-tree-eg.cpp
==============================================================================
--- branches/release/libs/graph/example/family-tree-eg.cpp (original)
+++ branches/release/libs/graph/example/family-tree-eg.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -34,9 +34,9 @@
property_map < adjacency_list <>, vertex_index_t >::type
index_map = get(vertex_index, g);
- for (tie(i, end) = vertices(g); i != end; ++i) {
+ for (boost::tie(i, end) = vertices(g); i != end; ++i) {
std::cout << name[get(index_map, *i)];
- tie(ai, a_end) = adjacent_vertices(*i, g);
+ boost::tie(ai, a_end) = adjacent_vertices(*i, g);
if (ai == a_end)
std::cout << " has no children";
else
Modified: branches/release/libs/graph/example/file_dependencies.cpp
==============================================================================
--- branches/release/libs/graph/example/file_dependencies.cpp (original)
+++ branches/release/libs/graph/example/file_dependencies.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -104,7 +104,7 @@
Graph g(N);
for (std::size_t j = 0; j < nedges; ++j) {
graph_traits<Graph>::edge_descriptor e; bool inserted;
- tie(e, inserted) = add_edge(used_by[j].first, used_by[j].second, g);
+ boost::tie(e, inserted) = add_edge(used_by[j].first, used_by[j].second, g);
}
#else
Graph g(used_by, used_by + nedges, N);
@@ -135,7 +135,7 @@
int maxdist=0;
// Through the order from topological sort, we are sure that every
// time we are using here is already initialized.
- for (tie(j, j_end) = in_edges(*i, g); j != j_end; ++j)
+ for (boost::tie(j, j_end) = in_edges(*i, g); j != j_end; ++j)
maxdist=(std::max)(time[source(*j, g)], maxdist);
time[*i]=maxdist+1;
}
@@ -145,7 +145,7 @@
<< "vertices with same group number can be made in parallel" << endl;
{
graph_traits<Graph>::vertex_iterator i, iend;
- for (tie(i,iend) = vertices(g); i != iend; ++i)
+ for (boost::tie(i,iend) = vertices(g); i != iend; ++i)
cout << "time_slot[" << name[*i] << "] = " << time[*i] << endl;
}
Modified: branches/release/libs/graph/example/filtered-copy-example.cpp
==============================================================================
--- branches/release/libs/graph/example/filtered-copy-example.cpp (original)
+++ branches/release/libs/graph/example/filtered-copy-example.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -39,7 +39,7 @@
name_map = get(vertex_name, G);
char name = 'a';
graph_traits < graph_t >::vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(G); v != v_end; ++v, ++name)
+ for (boost::tie(v, v_end) = vertices(G); v != v_end; ++v, ++name)
name_map[*v] = name;
typedef std::pair < int, int >E;
Modified: branches/release/libs/graph/example/filtered_graph_edge_range.cpp
==============================================================================
--- branches/release/libs/graph/example/filtered_graph_edge_range.cpp (original)
+++ branches/release/libs/graph/example/filtered_graph_edge_range.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -61,7 +61,7 @@
std::cout << "unfiltered edge_range(C,D)\n";
graph_traits<Graph>::out_edge_iterator f, l;
- for (tie(f, l) = edge_range(C, D, g); f != l; ++f)
+ for (boost::tie(f, l) = edge_range(C, D, g); f != l; ++f)
std::cout << name[source(*f, g)] << " --" << weight[*f]
<< "-> " << name[target(*f, g)] << "\n";
@@ -71,7 +71,7 @@
std::cout << "filtered edge_range(C,D)\n";
graph_traits<FGraph>::out_edge_iterator first, last;
- for (tie(first, last) = edge_range(C, D, fg); first != last; ++first)
+ for (boost::tie(first, last) = edge_range(C, D, fg); first != last; ++first)
std::cout << name[source(*first, fg)] << " --" << weight[*first]
<< "-> " << name[target(*first, fg)] << "\n";
Modified: branches/release/libs/graph/example/fr_layout.cpp
==============================================================================
--- branches/release/libs/graph/example/fr_layout.cpp (original)
+++ branches/release/libs/graph/example/fr_layout.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -128,7 +128,7 @@
cooling(progress_cooling(iterations)));
graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
std::cout << get(vertex_name, g, *vi) << '\t'
<< position[*vi][0] << '\t' << position[*vi][1] << std::endl;
}
Modified: branches/release/libs/graph/example/gerdemann.cpp
==============================================================================
--- branches/release/libs/graph/example/gerdemann.cpp (original)
+++ branches/release/libs/graph/example/gerdemann.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -46,13 +46,13 @@
typedef boost::graph_traits<Graph> Traits;
typename Traits::edge_descriptor e;
typename Traits::out_edge_iterator out_i, out_end;
- for (tie(out_i, out_end) = out_edges(v, g); out_i != out_end; ++out_i) {
+ for (boost::tie(out_i, out_end) = out_edges(v, g); out_i != out_end; ++out_i) {
e = *out_i;
typename Traits::vertex_descriptor targ = target(e, g);
add_edge(u, targ, getp(e), g);
}
typename Traits::in_edge_iterator in_i, in_end;
- for (tie(in_i, in_end) = in_edges(v, g); in_i != in_end; ++in_i) {
+ for (boost::tie(in_i, in_end) = in_edges(v, g); in_i != in_end; ++in_i) {
e = *in_i;
typename Traits::vertex_descriptor src = source(e, g);
add_edge(src, u, getp(e), g);
Modified: branches/release/libs/graph/example/graph-property-iter-eg.cpp
==============================================================================
--- branches/release/libs/graph/example/graph-property-iter-eg.cpp (original)
+++ branches/release/libs/graph/example/graph-property-iter-eg.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -23,11 +23,11 @@
const char *vertex_names[] = { "Kubrick", "Clark", "Hal" };
int i = 0;
graph_property_iter_range < graph_t, vertex_name_t >::iterator v, v_end;
- for (tie(v, v_end) = get_property_iter_range(g, vertex_name);
+ for (boost::tie(v, v_end) = get_property_iter_range(g, vertex_name);
v != v_end; ++v, ++i)
*v = vertex_names[i];
- tie(v, v_end) = get_property_iter_range(g, vertex_name);
+ boost::tie(v, v_end) = get_property_iter_range(g, vertex_name);
std::copy(v, v_end, std::ostream_iterator < std::string > (std::cout, " "));
std::cout << std::endl;
return 0;
Modified: branches/release/libs/graph/example/graphviz.cpp
==============================================================================
--- branches/release/libs/graph/example/graphviz.cpp (original)
+++ branches/release/libs/graph/example/graphviz.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -68,7 +68,7 @@
== 10.0);
// Write out the graph
- write_graphviz(std::cout, g, dp, std::string("id"));
+ write_graphviz_dp(std::cout, g, dp, std::string("id"));
}
int test_main(int, char*[])
Modified: branches/release/libs/graph/example/in_edges.cpp
==============================================================================
--- branches/release/libs/graph/example/in_edges.cpp (original)
+++ branches/release/libs/graph/example/in_edges.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -43,9 +43,9 @@
boost::graph_traits<Graph>::vertex_iterator i, end;
boost::graph_traits<Graph>::in_edge_iterator ei, edge_end;
- for(tie(i,end) = vertices(g); i != end; ++i) {
+ for(boost::tie(i,end) = vertices(g); i != end; ++i) {
cout << *i << " <-- ";
- for (tie(ei,edge_end) = in_edges(*i, g); ei != edge_end; ++ei)
+ for (boost::tie(ei,edge_end) = in_edges(*i, g); ei != edge_end; ++ei)
cout << source(*ei, g) << " ";
cout << endl;
}
Modified: branches/release/libs/graph/example/isomorphism.cpp
==============================================================================
--- branches/release/libs/graph/example/isomorphism.cpp (original)
+++ branches/release/libs/graph/example/isomorphism.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -35,12 +35,12 @@
graph_traits<graph_t>::vertex_iterator i, end;
int id = 0;
- for (tie(i, end) = vertices(g1); i != end; ++i, ++id) {
+ for (boost::tie(i, end) = vertices(g1); i != end; ++i, ++id) {
put(v1_index_map, *i, id);
v1[id] = *i;
}
id = 0;
- for (tie(i, end) = vertices(g2); i != end; ++i, ++id) {
+ for (boost::tie(i, end) = vertices(g2); i != end; ++i, ++id) {
put(v2_index_map, *i, id);
v2[id] = *i;
}
Modified: branches/release/libs/graph/example/johnson-eg.cpp
==============================================================================
--- branches/release/libs/graph/example/johnson-eg.cpp (original)
+++ branches/release/libs/graph/example/johnson-eg.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -73,7 +73,7 @@
<< "edge[style=\"bold\"]\n" << "node[shape=\"circle\"]\n";
graph_traits < Graph >::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
fout << source(*ei, g) << " -> " << target(*ei, g)
<< "[label=" << get(edge_weight, g)[*ei] << "]\n";
Modified: branches/release/libs/graph/example/kevin-bacon.cpp
==============================================================================
--- branches/release/libs/graph/example/kevin-bacon.cpp (original)
+++ branches/release/libs/graph/example/kevin-bacon.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -74,7 +74,7 @@
NameVertexMap::iterator pos;
bool inserted;
Vertex u, v;
- tie(pos, inserted) = actors.insert(std::make_pair(actors_name, Vertex()));
+ boost::tie(pos, inserted) = actors.insert(std::make_pair(actors_name, Vertex()));
if (inserted) {
u = add_vertex(g);
actor_name[u] = actors_name;
@@ -84,7 +84,7 @@
std::string movie_name = *i++;
- tie(pos, inserted) = actors.insert(std::make_pair(*i, Vertex()));
+ boost::tie(pos, inserted) = actors.insert(std::make_pair(*i, Vertex()));
if (inserted) {
v = add_vertex(g);
actor_name[v] = *i;
@@ -93,7 +93,7 @@
v = pos->second;
graph_traits < Graph >::edge_descriptor e;
- tie(e, inserted) = add_edge(u, v, g);
+ boost::tie(e, inserted) = add_edge(u, v, g);
if (inserted)
connecting_movie[e] = movie_name;
@@ -108,7 +108,7 @@
visitor(record_bacon_number(&bacon_number[0])));
graph_traits < Graph >::vertex_iterator i, end;
- for (tie(i, end) = vertices(g); i != end; ++i) {
+ for (boost::tie(i, end) = vertices(g); i != end; ++i) {
std::cout << actor_name[*i] << " has a Bacon number of "
<< bacon_number[*i] << std::endl;
}
Modified: branches/release/libs/graph/example/kevin-bacon2.cpp
==============================================================================
--- branches/release/libs/graph/example/kevin-bacon2.cpp (original)
+++ branches/release/libs/graph/example/kevin-bacon2.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -71,7 +71,7 @@
// Get the vertex for Kevin Bacon
Vertex src;
graph_traits<Graph>::vertex_iterator i, end;
- for (tie(i, end) = vertices(g); i != end; ++i)
+ for (boost::tie(i, end) = vertices(g); i != end; ++i)
if (g[*i].name == "Kevin Bacon")
src = *i;
@@ -82,7 +82,7 @@
breadth_first_search(g, src,
visitor(bacon_number_recorder(&bacon_number[0])));
- for (tie(i, end) = vertices(g); i != end; ++i)
+ for (boost::tie(i, end) = vertices(g); i != end; ++i)
std::cout << g[*i].name << " has a Bacon number of "
<< bacon_number[*i] << std::endl;
Modified: branches/release/libs/graph/example/knights-tour.cpp
==============================================================================
--- branches/release/libs/graph/example/knights-tour.cpp (original)
+++ branches/release/libs/graph/example/knights-tour.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -179,7 +179,7 @@
S.push(std::make_pair(time_stamp, src));
while (!S.empty()) {
Vertex x;
- tie(time_stamp, x) = S.top();
+ boost::tie(time_stamp, x) = S.top();
put(time_map, x, time_stamp);
// all vertices have been visited, success!
if (time_stamp == num_vertices(g) - 1)
@@ -187,7 +187,7 @@
bool deadend = true;
typename graph_traits < Graph >::adjacency_iterator i, end;
- for (tie(i, end) = adjacent_vertices(x, g); i != end; ++i)
+ for (boost::tie(i, end) = adjacent_vertices(x, g); i != end; ++i)
if (get(time_map, *i) == -1) {
S.push(std::make_pair(time_stamp + 1, *i));
deadend = false;
@@ -196,11 +196,11 @@
if (deadend) {
put(time_map, x, -1);
S.pop();
- tie(time_stamp, x) = S.top();
+ boost::tie(time_stamp, x) = S.top();
while (get(time_map, x) != -1) { // unwind stack to last unexplored vertex
put(time_map, x, -1);
S.pop();
- tie(time_stamp, x) = S.top();
+ boost::tie(time_stamp, x) = S.top();
}
}
@@ -213,7 +213,7 @@
{
int s_x = 0;
typename graph_traits < Graph >::adjacency_iterator i, end;
- for (tie(i, end) = adjacent_vertices(x, g); i != end; ++i)
+ for (boost::tie(i, end) = adjacent_vertices(x, g); i != end; ++i)
if (get(time_map, *i) == -1)
++s_x;
return s_x;
@@ -232,7 +232,7 @@
S.push(std::make_pair(time_stamp, src));
while (!S.empty()) {
Vertex x;
- tie(time_stamp, x) = S.top();
+ boost::tie(time_stamp, x) = S.top();
put(time_map, x, time_stamp);
// all vertices have been visited, success!
if (time_stamp == num_vertices(g) - 1)
@@ -242,7 +242,7 @@
std::priority_queue < P, std::vector < P >, compare_first > Q;
typename graph_traits < Graph >::adjacency_iterator i, end;
int num_succ;
- for (tie(i, end) = adjacent_vertices(x, g); i != end; ++i)
+ for (boost::tie(i, end) = adjacent_vertices(x, g); i != end; ++i)
if (get(time_map, *i) == -1) {
num_succ = number_of_successors(*i, g, time_map);
Q.push(std::make_pair(num_succ, *i));
@@ -250,17 +250,17 @@
bool deadend = Q.empty();
// move vertices from local priority queue to the stack
for (; !Q.empty(); Q.pop()) {
- tie(num_succ, x) = Q.top();
+ boost::tie(num_succ, x) = Q.top();
S.push(std::make_pair(time_stamp + 1, x));
}
if (deadend) {
put(time_map, x, -1);
S.pop();
- tie(time_stamp, x) = S.top();
+ boost::tie(time_stamp, x) = S.top();
while (get(time_map, x) != -1) { // unwind stack to last unexplored vertex
put(time_map, x, -1);
S.pop();
- tie(time_stamp, x) = S.top();
+ boost::tie(time_stamp, x) = S.top();
}
}
Deleted: branches/release/libs/graph/example/kolmogorov-eg.cpp
==============================================================================
--- branches/release/libs/graph/example/kolmogorov-eg.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
+++ (empty file)
@@ -1,112 +0,0 @@
-// Copyright (c) 2006, Stephan Diederich
-//
-// This code may be used under either of the following two licences:
-//
-// Permission is hereby granted, free of charge, to any person
-// obtaining a copy of this software and associated documentation
-// files (the "Software"), to deal in the Software without
-// restriction, including without limitation the rights to use,
-// copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following
-// conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-// OTHER DEALINGS IN THE SOFTWARE. OF SUCH DAMAGE.
-//
-// Or:
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config.hpp>
-#include <iostream>
-#include <string>
-#include <boost/graph/kolmogorov_max_flow.hpp>
-#include <boost/graph/adjacency_list.hpp>
-#include <boost/graph/read_dimacs.hpp>
-#include <boost/graph/graph_utility.hpp>
-
-// Use a DIMACS network flow file as stdin.
-// kolmogorov-eg < max_flow.dat
-//
-// Sample output:
-// c The total flow:
-// s 13
-//
-// c flow values:
-// f 0 6 3
-// f 0 1 6
-// f 0 2 4
-// f 1 5 1
-// f 1 0 0
-// f 1 3 5
-// f 2 4 4
-// f 2 3 0
-// f 2 0 0
-// f 3 7 5
-// f 3 2 0
-// f 3 1 0
-// f 4 5 0
-// f 4 6 4
-// f 5 4 0
-// f 5 7 1
-// f 6 7 7
-// f 6 4 0
-// f 7 6 0
-// f 7 5 0
-
-int
-main()
-{
- using namespace boost;
-
- typedef adjacency_list_traits < vecS, vecS, directedS > Traits;
- typedef adjacency_list < vecS, vecS, directedS,
- property < vertex_name_t, std::string,
- property < vertex_index_t, long,
- property < vertex_color_t, boost::default_color_type,
- property < vertex_distance_t, long,
- property < vertex_predecessor_t, Traits::edge_descriptor > > > > >,
-
- property < edge_capacity_t, long,
- property < edge_residual_capacity_t, long,
- property < edge_reverse_t, Traits::edge_descriptor > > > > Graph;
-
- Graph g;
- property_map < Graph, edge_capacity_t >::type
- capacity = get(edge_capacity, g);
- property_map < Graph, edge_residual_capacity_t >::type
- residual_capacity = get(edge_residual_capacity, g);
- property_map < Graph, edge_reverse_t >::type rev = get(edge_reverse, g);
- Traits::vertex_descriptor s, t;
- read_dimacs_max_flow(g, capacity, rev, s, t);
-
- std::vector<default_color_type> color(num_vertices(g));
- std::vector<long> distance(num_vertices(g));
- long flow = kolmogorov_max_flow(g ,s, t);
-
- std::cout << "c The total flow:" << std::endl;
- std::cout << "s " << flow << std::endl << std::endl;
-
- std::cout << "c flow values:" << std::endl;
- graph_traits < Graph >::vertex_iterator u_iter, u_end;
- graph_traits < Graph >::out_edge_iterator ei, e_end;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
- if (capacity[*ei] > 0)
- std::cout << "f " << *u_iter << " " << target(*ei, g) << " "
- << (capacity[*ei] - residual_capacity[*ei]) << std::endl;
-
- return EXIT_SUCCESS;
-}
Modified: branches/release/libs/graph/example/kruskal-example.cpp
==============================================================================
--- branches/release/libs/graph/example/kruskal-example.cpp (original)
+++ branches/release/libs/graph/example/kruskal-example.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -31,7 +31,7 @@
property_map<Graph, edge_weight_t>::type weightmap = get(edge_weight, g);
for (std::size_t j = 0; j < num_edges; ++j) {
Edge e; bool inserted;
- tie(e, inserted) = add_edge(edge_array[j].first, edge_array[j].second, g);
+ boost::tie(e, inserted) = add_edge(edge_array[j].first, edge_array[j].second, g);
weightmap[e] = weights[j];
}
#else
@@ -57,7 +57,7 @@
<< " ratio=\"filled\"\n"
<< " edge[style=\"bold\"]\n" << " node[shape=\"circle\"]\n";
graph_traits<Graph>::edge_iterator eiter, eiter_end;
- for (tie(eiter, eiter_end) = edges(g); eiter != eiter_end; ++eiter) {
+ for (boost::tie(eiter, eiter_end) = edges(g); eiter != eiter_end; ++eiter) {
fout << source(*eiter, g) << " -- " << target(*eiter, g);
if (std::find(spanning_tree.begin(), spanning_tree.end(), *eiter)
!= spanning_tree.end())
Modified: branches/release/libs/graph/example/kruskal-telephone.cpp
==============================================================================
--- branches/release/libs/graph/example/kruskal-telephone.cpp (original)
+++ branches/release/libs/graph/example/kruskal-telephone.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -25,7 +25,7 @@
property_map < GraphvizGraph, edge_attribute_t >::type
edge_attr_map = get(edge_attribute, g_dot);
graph_traits < GraphvizGraph >::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g_dot); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g_dot); ei != ei_end; ++ei) {
int weight = lexical_cast < int >(edge_attr_map[*ei]["label"]);
property < edge_weight_t, int >edge_property(weight);
add_edge(source(*ei, g_dot), target(*ei, g_dot), edge_property, g);
Modified: branches/release/libs/graph/example/leda-graph-eg.cpp
==============================================================================
--- branches/release/libs/graph/example/leda-graph-eg.cpp (original)
+++ branches/release/libs/graph/example/leda-graph-eg.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -22,7 +22,7 @@
typedef property_map < graph_t, vertex_all_t >::type NodeMap;
NodeMap node_name_map = get(vertex_all, g);
graph_traits < graph_t >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
std::cout << node_name_map[*vi] << std::endl;
return EXIT_SUCCESS;
}
Modified: branches/release/libs/graph/example/loops_dfs.cpp
==============================================================================
--- branches/release/libs/graph/example/loops_dfs.cpp (original)
+++ branches/release/libs/graph/example/loops_dfs.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -91,7 +91,7 @@
get(vertex_index, g), c));
typename graph_traits < Graph >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
if (reachable_from_head[*vi] != Color::white()
&& reachable_to_tail[*vi] != Color::white())
loop_set.insert(*vi);
@@ -138,7 +138,7 @@
vattr_map[*j]["color"] = "gray";
in_loop[*j] = true;
}
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
if (in_loop[source(*ei, g)] && in_loop[target(*ei, g)])
eattr_map[*ei]["color"] = "gray";
}
@@ -151,7 +151,7 @@
<< "ratio=\"fill\"\n"
<< "shape=\"box\"\n";
graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
loops_out << *vi << "[";
for (std::map<std::string,std::string>::iterator ai = vattr_map[*vi].begin();
ai != vattr_map[*vi].end(); ++ai) {
@@ -162,7 +162,7 @@
loops_out<< "]";
}
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
loops_out << source(*ei, g) << " -> " << target(*ei, g) << "[";
std::map<std::string,std::string>& attr_map = eattr_map[*ei];
for (std::map<std::string,std::string>::iterator eai = attr_map.begin();
Modified: branches/release/libs/graph/example/max_flow.cpp
==============================================================================
--- branches/release/libs/graph/example/max_flow.cpp (original)
+++ branches/release/libs/graph/example/max_flow.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -85,8 +85,8 @@
std::cout << "c flow values:" << std::endl;
graph_traits<Graph>::vertex_iterator u_iter, u_end;
graph_traits<Graph>::out_edge_iterator ei, e_end;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
+ for (boost::tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
+ for (boost::tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
if (capacity[*ei] > 0)
std::cout << "f " << *u_iter << " " << target(*ei, g) << " "
<< (capacity[*ei] - residual_capacity[*ei]) << std::endl;
Modified: branches/release/libs/graph/example/min_max_paths.cpp
==============================================================================
--- branches/release/libs/graph/example/min_max_paths.cpp (original)
+++ branches/release/libs/graph/example/min_max_paths.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -58,7 +58,7 @@
property_map<Graph, edge_weight_t>::type weightmap = get(edge_weight, G);
for (std::size_t j = 0; j < sizeof(edges) / sizeof(E); ++j) {
graph_traits<Graph>::edge_descriptor e; bool inserted;
- tie(e, inserted) = add_edge(edges[j].first, edges[j].second, G);
+ boost::tie(e, inserted) = add_edge(edges[j].first, edges[j].second, G);
weightmap[e] = weights[j];
}
#else
@@ -85,14 +85,14 @@
std::cout << "distances from start vertex:" << std::endl;
graph_traits<Graph>::vertex_iterator vi, vend;
- for(tie(vi,vend) = vertices(G); vi != vend; ++vi)
+ for(boost::tie(vi,vend) = vertices(G); vi != vend; ++vi)
std::cout << "distance(" << name[*vi] << ") = " << d[*vi] << std::endl;
std::cout << std::endl;
std::cout << "min-max paths tree" << std::endl;
adjacency_list<> tree(num_nodes);
- for(tie(vi,vend) = vertices(G); vi != vend; ++vi)
+ for(boost::tie(vi,vend) = vertices(G); vi != vend; ++vi)
if (*vi != p[*vi])
add_edge(p[*vi], *vi, tree);
Modified: branches/release/libs/graph/example/modify_graph.cpp
==============================================================================
--- branches/release/libs/graph/example/modify_graph.cpp (original)
+++ branches/release/libs/graph/example/modify_graph.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -86,7 +86,7 @@
u = add_vertex(g);
v = add_vertex(g);
- tie(e, added) = add_edge(u, v, g);
+ boost::tie(e, added) = add_edge(u, v, g);
assert(num_edges(g) == m + 2);
assert(added == true); // edge should have been added
@@ -102,14 +102,14 @@
assert(num_edges(g) == m + 1);
bool exists;
- tie(e, exists) = edge(u, v, g);
+ boost::tie(e, exists) = edge(u, v, g);
assert(exists == false);
assert(out_degree(u, g) == 0);
assert(in_degree(v, g) == 0);
}
{
e = *edges(g).first;
- tie(u, v) = incident(e, g);
+ boost::tie(u, v) = incident(e, g);
remove_edge(e, g);
@@ -121,7 +121,7 @@
add_edge(u, v, g);
typename GraphTraits::out_edge_iterator iter, iter_end;
- tie(iter, iter_end) = out_edges(u, g);
+ boost::tie(iter, iter_end) = out_edges(u, g);
remove_edge(iter, g);
@@ -131,13 +131,13 @@
}
{
w = add_vertex(g);
- tie(e1, added) = add_edge(u, v, g);
- tie(e2, added) = add_edge(v, w, g);
+ boost::tie(e1, added) = add_edge(u, v, g);
+ boost::tie(e2, added) = add_edge(v, w, g);
name_map[e1] = "I-5";
name_map[e2] = "Route 66";
typename GraphTraits::out_edge_iterator iter, iter_end;
- tie(iter, iter_end) = out_edges(u, g);
+ boost::tie(iter, iter_end) = out_edges(u, g);
remove_edge_if(name_equals("Route 66", name_map), g);
@@ -152,8 +152,8 @@
assert(in_degree(w, g) == 0);
}
{
- tie(e1, added) = add_edge(u, v, g);
- tie(e2, added) = add_edge(u, w, g);
+ boost::tie(e1, added) = add_edge(u, v, g);
+ boost::tie(e2, added) = add_edge(u, w, g);
name_map[e1] = "foo";
name_map[e2] = "foo";
@@ -163,8 +163,8 @@
assert(out_degree(u, g) == 0);
}
{
- tie(e1, added) = add_edge(u, v, g);
- tie(e2, added) = add_edge(w, v, g);
+ boost::tie(e1, added) = add_edge(u, v, g);
+ boost::tie(e2, added) = add_edge(w, v, g);
name_map[e1] = "bar";
name_map[e2] = "bar";
@@ -183,9 +183,9 @@
assert(out_degree(u, g) == 0);
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
typename GraphTraits::adjacency_iterator ai, ai_end;
- for (tie(ai, ai_end) = adjacent_vertices(*vi, g);
+ for (boost::tie(ai, ai_end) = adjacent_vertices(*vi, g);
ai != ai_end; ++ai)
assert(*ai != u);
}
Modified: branches/release/libs/graph/example/ordered_out_edges.cpp
==============================================================================
--- branches/release/libs/graph/example/ordered_out_edges.cpp (original)
+++ branches/release/libs/graph/example/ordered_out_edges.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -108,14 +108,14 @@
Traits::edge_descriptor e;
Traits::out_edge_iterator e_first, e_last;
- tie(e, found) = edge(0, 1, g);
+ boost::tie(e, found) = edge(0, 1, g);
if (found)
std::cout << "name(0,1) = " << name[e] << std::endl;
else
std::cout << "not found" << std::endl;
std::cout << std::endl;
- tie(e_first, e_last) = edge_range(0, 1, g);
+ boost::tie(e_first, e_last) = edge_range(0, 1, g);
while (e_first != e_last)
std::cout << "name(0,1) = " << name[*e_first++] << std::endl;
#endif
Modified: branches/release/libs/graph/example/ospf-example.cpp
==============================================================================
--- branches/release/libs/graph/example/ospf-example.cpp (original)
+++ branches/release/libs/graph/example/ospf-example.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -9,32 +9,50 @@
#include <boost/graph/graphviz.hpp> // for read/write_graphviz()
#include <boost/graph/dijkstra_shortest_paths.hpp>
#include <boost/lexical_cast.hpp>
+
+namespace boost {
+ enum graph_color_t { graph_color = 5556 };
+ BOOST_INSTALL_PROPERTY(graph, color);
+}
+
int
main()
{
using namespace boost;
- GraphvizDigraph g_dot;
- read_graphviz("figs/ospf-graph.dot", g_dot);
+ typedef
+ adjacency_list<vecS, vecS, directedS,
+ property<vertex_name_t, std::string>,
+ property<edge_color_t, std::string,
+ property<edge_weight_t, int> >,
+ property<graph_color_t, std::string> >
+ g_dot_type;
+ g_dot_type g_dot;
+
+ dynamic_properties dp(ignore_other_properties);
+ dp.property("node_id", get(vertex_name, g_dot));
+ dp.property("label", get(edge_weight, g_dot));
+ dp.property("color", get(edge_color, g_dot));
+ dp.property("color", ref_property_map<g_dot_type*, std::string>(get_property(g_dot, graph_color)));
+ {
+ std::ifstream infile("figs/ospf-graph.dot");
+ read_graphviz(infile, g_dot, dp);
+ }
typedef adjacency_list < vecS, vecS, directedS, no_property,
property < edge_weight_t, int > > Graph;
typedef graph_traits < Graph >::vertex_descriptor vertex_descriptor;
Graph g(num_vertices(g_dot));
- property_map < GraphvizDigraph, edge_attribute_t >::type
- edge_attr_map = get(edge_attribute, g_dot);
- graph_traits < GraphvizDigraph >::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g_dot); ei != ei_end; ++ei) {
- int weight = lexical_cast < int >(edge_attr_map[*ei]["label"]);
+ graph_traits < g_dot_type >::edge_iterator ei, ei_end;
+ for (boost::tie(ei, ei_end) = edges(g_dot); ei != ei_end; ++ei) {
+ int weight = get(edge_weight, g_dot, *ei);
property < edge_weight_t, int >edge_property(weight);
add_edge(source(*ei, g_dot), target(*ei, g_dot), edge_property, g);
}
vertex_descriptor router_six;
- property_map < GraphvizDigraph, vertex_attribute_t >::type
- vertex_attr_map = get(vertex_attribute, g_dot);
- graph_traits < GraphvizDigraph >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g_dot); vi != vi_end; ++vi)
- if ("RT6" == vertex_attr_map[*vi]["label"]) {
+ graph_traits < g_dot_type >::vertex_iterator vi, vi_end;
+ for (boost::tie(vi, vi_end) = vertices(g_dot); vi != vi_end; ++vi)
+ if ("RT6" == get(vertex_name, g_dot, *vi)) {
router_six = *vi;
break;
}
@@ -57,58 +75,24 @@
dijkstra_shortest_paths(g, router_six, predecessor_map(&parent[0]));
#endif
- graph_traits < GraphvizDigraph >::edge_descriptor e;
+ graph_traits < g_dot_type >::edge_descriptor e;
for (size_type i = 0; i < num_vertices(g); ++i)
if (parent[i] != i) {
e = edge(parent[i], i, g_dot).first;
- edge_attr_map[e]["color"] = "black";
+ put(edge_color, g_dot, e, "black");
}
-#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300
- // VC++ can't handle write_graphviz :(
+ get_property(g_dot, graph_color) = "grey";
{
- std::ofstream out("figs/ospf-sptree.dot");
- out << "digraph loops {\n"
- << "size=\"3,3\"\n"
- << "ratio=\"fill\"\n"
- << "shape=\"box\"\n";
- graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
- out << *vi << "[";
- for (std::map<std::string,std::string>::iterator ai = vattr_map[*vi].begin();
- ai != vattr_map[*vi].end(); ++ai) {
- out << ai->first << "=" << ai->second;
- if (next(ai) != vattr_map[*vi].end())
- out << ", ";
- }
- out<< "]";
- }
-
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
- out << source(*ei, g) << " -> " << target(*ei, g) << "[";
- std::map<std::string,std::string>& attr_map = eattr_map[*ei];
- for (std::map<std::string,std::string>::iterator eai = attr_map.begin();
- eai != attr_map.end(); ++eai) {
- out << eai->first << "=" << eai->second;
- if (next(eai) != attr_map.end())
- out << ", ";
- }
- out<< "]";
- }
- out << "}\n";
+ std::ofstream outfile("figs/ospf-sptree.dot");
+ write_graphviz_dp(outfile, g_dot, dp);
}
-#else
- graph_property < GraphvizDigraph, graph_edge_attribute_t >::type &
- graph_edge_attr_map = get_property(g_dot, graph_edge_attribute);
- graph_edge_attr_map["color"] = "grey";
- write_graphviz("figs/ospf-sptree.dot", g_dot);
-#endif
std::ofstream rtable("routing-table.dat");
rtable << "Dest Next Hop Total Cost" << std::endl;
- for (tie(vi, vi_end) = vertices(g_dot); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g_dot); vi != vi_end; ++vi)
if (parent[*vi] != *vi) {
- rtable << vertex_attr_map[*vi]["label"] << " ";
+ rtable << get(vertex_name, g_dot, *vi) << " ";
vertex_descriptor v = *vi, child;
int path_cost = 0;
property_map < Graph, edge_weight_t >::type
@@ -118,7 +102,7 @@
child = v;
v = parent[v];
} while (v != parent[v]);
- rtable << vertex_attr_map[child]["label"] << " ";
+ rtable << get(vertex_name, g_dot, child) << " ";
rtable << path_cost << std::endl;
}
Modified: branches/release/libs/graph/example/parallel-compile-time.cpp
==============================================================================
--- branches/release/libs/graph/example/parallel-compile-time.cpp (original)
+++ branches/release/libs/graph/example/parallel-compile-time.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -59,7 +59,7 @@
color[u] = ColorT::gray();
vis.discover_vertex(u, g);
typename graph_traits < Graph >::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei)
if (color[target(*ei, g)] == ColorT::white()) {
vis.tree_edge(*ei, g);
dfs_v2(g, target(*ei, g), color, vis);
@@ -77,9 +77,9 @@
typedef typename property_traits <ColorMap >::value_type ColorValue;
typedef color_traits < ColorValue > ColorT;
typename graph_traits < Graph >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
color[*vi] = ColorT::white();
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
if (color[*vi] == ColorT::white())
dfs_v2(g, *vi, color, vis);
}
@@ -134,7 +134,7 @@
id2vertex.push_back(add_vertex(g));
while (input_begin != input_end) {
size_type i, j;
- tie(i, j) = *input_begin++;
+ boost::tie(i, j) = *input_begin++;
add_edge(id2vertex[i], id2vertex[j], g);
}
#else
@@ -158,7 +158,7 @@
std::ifstream name_in("makefile-target-names.dat");
std::ifstream compile_cost_in("target-compile-costs.dat");
graph_traits < file_dep_graph2 >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
name_in >> name_map[*vi];
compile_cost_in >> compile_cost_map[*vi];
}
@@ -171,14 +171,14 @@
graph_traits < file_dep_graph2 >::adjacency_iterator vi, vi_end;
// find source vertices with zero in-degree by marking all vertices with incoming edges
- for (tie(i, i_end) = vertices(g); i != i_end; ++i)
+ for (boost::tie(i, i_end) = vertices(g); i != i_end; ++i)
color_map[*i] = white_color;
- for (tie(i, i_end) = vertices(g); i != i_end; ++i)
- for (tie(vi, vi_end) = adjacent_vertices(*i, g); vi != vi_end; ++vi)
+ for (boost::tie(i, i_end) = vertices(g); i != i_end; ++i)
+ for (boost::tie(vi, vi_end) = adjacent_vertices(*i, g); vi != vi_end; ++vi)
color_map[*vi] = black_color;
// initialize distances to zero, or for source vertices, to the compile cost
- for (tie(i, i_end) = vertices(g); i != i_end; ++i)
+ for (boost::tie(i, i_end) = vertices(g); i != i_end; ++i)
if (color_map[*i] == white_color)
distance_map[*i] = compile_cost_map[*i];
else
@@ -189,14 +189,14 @@
vertex_t
u = *
ui;
- for (tie(vi, vi_end) = adjacent_vertices(u, g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = adjacent_vertices(u, g); vi != vi_end; ++vi)
if (distance_map[*vi] < distance_map[u] + compile_cost_map[*vi])
distance_map[*vi] = distance_map[u] + compile_cost_map[*vi];
}
graph_property_iter_range < file_dep_graph2,
vertex_distance_t >::iterator ci, ci_end;
- tie(ci, ci_end) = get_property_iter_range(g, vertex_distance);
+ boost::tie(ci, ci_end) = get_property_iter_range(g, vertex_distance);
std::cout << "total (parallel) compile time: "
<< *std::max_element(ci, ci_end) << std::endl;
Modified: branches/release/libs/graph/example/prim-example.cpp
==============================================================================
--- branches/release/libs/graph/example/prim-example.cpp (original)
+++ branches/release/libs/graph/example/prim-example.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -27,7 +27,7 @@
property_map<Graph, edge_weight_t>::type weightmap = get(edge_weight, g);
for (std::size_t j = 0; j < sizeof(edges) / sizeof(E); ++j) {
graph_traits<Graph>::edge_descriptor e; bool inserted;
- tie(e, inserted) = add_edge(edges[j].first, edges[j].second, g);
+ boost::tie(e, inserted) = add_edge(edges[j].first, edges[j].second, g);
weightmap[e] = weights[j];
}
#else
Modified: branches/release/libs/graph/example/prim-telephone.cpp
==============================================================================
--- branches/release/libs/graph/example/prim-telephone.cpp (original)
+++ branches/release/libs/graph/example/prim-telephone.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -25,7 +25,7 @@
property_map < GraphvizGraph, edge_attribute_t >::type
edge_attr_map = get(edge_attribute, g_dot);
graph_traits < GraphvizGraph >::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g_dot); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g_dot); ei != ei_end; ++ei) {
int weight = lexical_cast < int >(edge_attr_map[*ei]["label"]);
property < edge_weight_t, int >edge_property(weight);
add_edge(source(*ei, g_dot), target(*ei, g_dot), edge_property, g);
Modified: branches/release/libs/graph/example/print-adjacent-vertices.cpp
==============================================================================
--- branches/release/libs/graph/example/print-adjacent-vertices.cpp (original)
+++ branches/release/libs/graph/example/print-adjacent-vertices.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -43,7 +43,7 @@
{
typename graph_traits < Graph >::adjacency_iterator vi, vi_end;
out << get(name_map, u) << " -> { ";
- for (tie(vi, vi_end) = adjacent_vertices(u, g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = adjacent_vertices(u, g); vi != vi_end; ++vi)
out << get(name_map, *vi) << " ";
out << "}" << std::endl;
}
@@ -101,7 +101,7 @@
read_graph_file(file_in, name_in, g, name_map);
graph_traits < graph_type >::vertex_iterator i, end;
- tie(i, end) = vertices(g);
+ boost::tie(i, end) = vertices(g);
i = std::find_if(i, end, name_equals("dax.h", get(vertex_name, g)));
output_adjacent_vertices(std::cout, *i, g, get(vertex_name, g));
Modified: branches/release/libs/graph/example/print-edges.cpp
==============================================================================
--- branches/release/libs/graph/example/print-edges.cpp (original)
+++ branches/release/libs/graph/example/print-edges.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -41,7 +41,7 @@
VertexNameMap name_map)
{
typename graph_traits < Graph >::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
out << get(name_map, source(*ei, g)) << " -$>$ "
<< get(name_map, target(*ei, g)) << std::endl;
}
Modified: branches/release/libs/graph/example/print-in-edges.cpp
==============================================================================
--- branches/release/libs/graph/example/print-in-edges.cpp (original)
+++ branches/release/libs/graph/example/print-in-edges.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -42,7 +42,7 @@
VertexNameMap name_map)
{
typename graph_traits < Graph >::in_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = in_edges(v, g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = in_edges(v, g); ei != ei_end; ++ei)
out << get(name_map, source(*ei, g)) << " -> "
<< get(name_map, target(*ei, g)) << std::endl;
}
@@ -101,7 +101,7 @@
read_graph_file(file_in, name_in, g, name_map);
graph_traits < graph_type >::vertex_iterator i, end;
- tie(i, end) = vertices(g);
+ boost::tie(i, end) = vertices(g);
typedef property_map < graph_type, vertex_name_t >::type name_map_t;
i = std::find_if(i, end, name_equals("libzigzag.a", get(vertex_name, g)));
output_in_edges(std::cout, g, *i, get(vertex_name, g));
Modified: branches/release/libs/graph/example/print-out-edges.cpp
==============================================================================
--- branches/release/libs/graph/example/print-out-edges.cpp (original)
+++ branches/release/libs/graph/example/print-out-edges.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -42,7 +42,7 @@
VertexNameMap name_map)
{
typename graph_traits < Graph >::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei)
out << get(name_map, source(*ei, g)) << " -> "
<< get(name_map, target(*ei, g)) << std::endl;
}
@@ -100,7 +100,7 @@
read_graph_file(file_in, name_in, g, name_map);
graph_traits < graph_type >::vertex_iterator i, end;
- tie(i, end) = vertices(g);
+ boost::tie(i, end) = vertices(g);
typedef property_map < graph_type, vertex_name_t >::type name_map_t;
name_equals_t < name_map_t > predicate("dax.h", get(vertex_name, g));
i = std::find_if(i, end, predicate);
Modified: branches/release/libs/graph/example/push-relabel-eg.cpp
==============================================================================
--- branches/release/libs/graph/example/push-relabel-eg.cpp (original)
+++ branches/release/libs/graph/example/push-relabel-eg.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -75,8 +75,8 @@
std::cout << "c flow values:" << std::endl;
graph_traits < Graph >::vertex_iterator u_iter, u_end;
graph_traits < Graph >::out_edge_iterator ei, e_end;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
+ for (boost::tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
+ for (boost::tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
if (capacity[*ei] > 0)
std::cout << "f " << *u_iter << " " << target(*ei, g) << " "
<< (capacity[*ei] - residual_capacity[*ei]) << std::endl;
Modified: branches/release/libs/graph/example/quick-tour.cpp
==============================================================================
--- branches/release/libs/graph/example/quick-tour.cpp (original)
+++ branches/release/libs/graph/example/quick-tour.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -46,7 +46,7 @@
VertexNameMap name_map)
{
typename graph_traits < Graph >::edge_iterator first, last;
- for (tie(first, last) = edges(g); first != last; ++first) {
+ for (boost::tie(first, last) = edges(g); first != last; ++first) {
print_trans_delay(*first, g, trans_delay_map, name_map);
std::cout << std::endl;
}
@@ -71,19 +71,19 @@
typename graph_traits < Graph >::edge_descriptor ed;
bool inserted;
- tie(ed, inserted) = add_edge(a, b, g);
+ boost::tie(ed, inserted) = add_edge(a, b, g);
delay_map[ed] = 1.2;
- tie(ed, inserted) = add_edge(a, d, g);
+ boost::tie(ed, inserted) = add_edge(a, d, g);
delay_map[ed] = 4.5;
- tie(ed, inserted) = add_edge(b, d, g);
+ boost::tie(ed, inserted) = add_edge(b, d, g);
delay_map[ed] = 1.8;
- tie(ed, inserted) = add_edge(c, a, g);
+ boost::tie(ed, inserted) = add_edge(c, a, g);
delay_map[ed] = 2.6;
- tie(ed, inserted) = add_edge(c, e, g);
+ boost::tie(ed, inserted) = add_edge(c, e, g);
delay_map[ed] = 5.2;
- tie(ed, inserted) = add_edge(d, c, g);
+ boost::tie(ed, inserted) = add_edge(d, c, g);
delay_map[ed] = 0.4;
- tie(ed, inserted) = add_edge(d, e, g);
+ boost::tie(ed, inserted) = add_edge(d, e, g);
delay_map[ed] = 3.3;
}
Modified: branches/release/libs/graph/example/quick_tour.cpp
==============================================================================
--- branches/release/libs/graph/example/quick_tour.cpp (original)
+++ branches/release/libs/graph/example/quick_tour.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -31,7 +31,7 @@
std::cout << "\tout-edges: ";
typename graph_traits<Graph>::out_edge_iterator out_i, out_end;
typename graph_traits<Graph>::edge_descriptor e;
- for (tie(out_i, out_end) = out_edges(v, g);
+ for (boost::tie(out_i, out_end) = out_edges(v, g);
out_i != out_end; ++out_i)
{
e = *out_i;
@@ -44,7 +44,7 @@
// Write out the incoming edges
std::cout << "\tin-edges: ";
typename graph_traits<Graph>::in_edge_iterator in_i, in_end;
- for (tie(in_i, in_end) = in_edges(v, g); in_i != in_end; ++in_i)
+ for (boost::tie(in_i, in_end) = in_edges(v, g); in_i != in_end; ++in_i)
{
e = *in_i;
Vertex src = source(e, g), targ = target(e, g);
@@ -56,7 +56,7 @@
// Write out all adjacent vertices
std::cout << "\tadjacent vertices: ";
typename graph_traits<Graph>::adjacency_iterator ai, ai_end;
- for (tie(ai,ai_end) = adjacent_vertices(v, g); ai != ai_end; ++ai)
+ for (boost::tie(ai,ai_end) = adjacent_vertices(v, g); ai != ai_end; ++ai)
std::cout << name[get(vertex_id, *ai)] << " ";
std::cout << std::endl;
}
@@ -93,7 +93,7 @@
property_map<Graph, edge_weight_t>::type weightmap = get(edge_weight, g);
for (std::size_t j = 0; j < num_edges; ++j) {
graph_traits<Graph>::edge_descriptor e; bool inserted;
- tie(e, inserted) = add_edge(edge_array[j].first, edge_array[j].second, g);
+ boost::tie(e, inserted) = add_edge(edge_array[j].first, edge_array[j].second, g);
weightmap[e] = transmission_delay[j];
}
#else
@@ -115,7 +115,7 @@
std::cout << "edges(g) = ";
graph_traits<Graph>::edge_iterator ei, ei_end;
- for (tie(ei,ei_end) = edges(g); ei != ei_end; ++ei)
+ for (boost::tie(ei,ei_end) = edges(g); ei != ei_end; ++ei)
std::cout << "(" << name[get(vertex_id, source(*ei, g))]
<< "," << name[get(vertex_id, target(*ei, g))] << ") ";
std::cout << std::endl;
Modified: branches/release/libs/graph/example/reachable-loop-head.cpp
==============================================================================
--- branches/release/libs/graph/example/reachable-loop-head.cpp (original)
+++ branches/release/libs/graph/example/reachable-loop-head.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -38,7 +38,7 @@
vattr_map = get(vertex_attribute, g);
graph_traits < GraphvizDigraph >::vertex_iterator i, i_end;
- for (tie(i, i_end) = vertices(g); i != i_end; ++i)
+ for (boost::tie(i, i_end) = vertices(g); i != i_end; ++i)
if (reachable_from_head[*i] != Color::white()) {
vattr_map[*i]["color"] = "gray";
vattr_map[*i]["style"] = "filled";
@@ -52,7 +52,7 @@
<< "ratio=\"fill\"\n"
<< "shape=\"box\"\n";
graph_traits<GraphvizDigraph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
loops_out << *vi << "[";
for (std::map<std::string,std::string>::iterator ai = vattr_map[*vi].begin();
ai != vattr_map[*vi].end(); ++ai) {
@@ -65,7 +65,7 @@
property_map<GraphvizDigraph, edge_attribute_t>::type
eattr_map = get(edge_attribute, g);
graph_traits<GraphvizDigraph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
loops_out << source(*ei, g) << " -> " << target(*ei, g) << "[";
std::map<std::string,std::string>& attr_map = eattr_map[*ei];
for (std::map<std::string,std::string>::iterator eai = attr_map.begin();
Modified: branches/release/libs/graph/example/reachable-loop-tail.cpp
==============================================================================
--- branches/release/libs/graph/example/reachable-loop-tail.cpp (original)
+++ branches/release/libs/graph/example/reachable-loop-tail.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -50,7 +50,7 @@
property_map<Graph, vertex_attribute_t>::type
vattr_map = get(vertex_attribute, g);
graph_traits < GraphvizDigraph >::vertex_iterator i, i_end;
- for (tie(i, i_end) = vertices(g_in); i != i_end; ++i) {
+ for (boost::tie(i, i_end) = vertices(g_in); i != i_end; ++i) {
loops_out << *i << "[label=\"" << vattr_map[*i]["label"]
<< "\"";
if (reachable_to_tail[*i] != Color::white()) {
@@ -59,7 +59,7 @@
loops_out << "]\n";
}
graph_traits < GraphvizDigraph >::edge_iterator e, e_end;
- for (tie(e, e_end) = edges(g_in); e != e_end; ++e)
+ for (boost::tie(e, e_end) = edges(g_in); e != e_end; ++e)
loops_out << source(*e, g) << " -> " << target(*e, g) << ";\n";
loops_out << "}\n";
return EXIT_SUCCESS;
Modified: branches/release/libs/graph/example/read_write_dimacs-eg.cpp
==============================================================================
--- branches/release/libs/graph/example/read_write_dimacs-eg.cpp (original)
+++ branches/release/libs/graph/example/read_write_dimacs-eg.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -90,12 +90,12 @@
//we take the source node and check for each outgoing edge e which has a target(p) if we can augment that path
out_edge_iterator oei,oe_end;
- for(tie(oei, oe_end) = out_edges(s, g); oei != oe_end; ++oei){
+ for(boost::tie(oei, oe_end) = out_edges(s, g); oei != oe_end; ++oei){
edge_descriptor from_source = *oei;
vertex_descriptor v = target(from_source, g);
edge_descriptor to_sink;
bool is_there;
- tie(to_sink, is_there) = edge(v, t, g);
+ boost::tie(to_sink, is_there) = edge(v, t, g);
if( is_there ){
if( get(capacity, to_sink) > get(capacity, from_source) ){
tCapMapValue to_augment = get(capacity, from_source);
Modified: branches/release/libs/graph/example/remove_edge_if_bidir.cpp
==============================================================================
--- branches/release/libs/graph/example/remove_edge_if_bidir.cpp (original)
+++ branches/release/libs/graph/example/remove_edge_if_bidir.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -79,7 +79,7 @@
int w = 0;
graph_traits<Graph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
weight[*ei] = ++w;
property_map<Graph, vertex_index_t>::type indexmap = get(vertex_index, g);
Modified: branches/release/libs/graph/example/remove_edge_if_undir.cpp
==============================================================================
--- branches/release/libs/graph/example/remove_edge_if_undir.cpp (original)
+++ branches/release/libs/graph/example/remove_edge_if_undir.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -78,7 +78,7 @@
int w = 0;
graph_traits<Graph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
weight[*ei] = ++w;
std::cout << "original graph:" << std::endl;
Modified: branches/release/libs/graph/example/roget_components.cpp
==============================================================================
--- branches/release/libs/graph/example/roget_components.cpp (original)
+++ branches/release/libs/graph/example/roget_components.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -72,12 +72,12 @@
// First add representative vertices to each component's list
graph_traits<Graph*>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
if (root[*vi] == *vi)
strong_comp[comp[index_map[*vi]]].push_back(*vi);
// Then add the other vertices of the component
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
if (root[*vi] != *vi)
strong_comp[comp[index_map[*vi]]].push_back(*vi);
@@ -117,7 +117,7 @@
for (i = 0; i < strong_comp[c].size(); ++i) {
vertex_t v = strong_comp[c][i];
graph_traits<Graph*>::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(v, g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(v, g); ei != ei_end; ++ei) {
vertex_t x = target(*ei, g);
int comp_x = comp[index_map[x]];
if (comp_x != c && mark[comp_x] != c) {
Modified: branches/release/libs/graph/example/scc.cpp
==============================================================================
--- branches/release/libs/graph/example/scc.cpp (original)
+++ branches/release/libs/graph/example/scc.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -29,7 +29,7 @@
std::string color[] = {
"white", "gray", "black", "lightgray"};
graph_traits < GraphvizDigraph >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
vertex_attr_map[*vi]["color"] = color[component[*vi]];
vertex_attr_map[*vi]["style"] = "filled";
if (vertex_attr_map[*vi]["color"] == "black")
Modified: branches/release/libs/graph/example/subgraph.cpp
==============================================================================
--- branches/release/libs/graph/example/subgraph.cpp (original)
+++ branches/release/libs/graph/example/subgraph.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -77,7 +77,7 @@
Graph::children_iterator ci, ci_end;
int num = 1;
- for (tie(ci, ci_end) = G0.children(); ci != ci_end; ++ci) {
+ for (boost::tie(ci, ci_end) = G0.children(); ci != ci_end; ++ci) {
std::cout << "G" << num++ << ":" << std::endl;
print_graph(*ci, get(vertex_index, *ci));
print_edges2(*ci, get(vertex_index, *ci), get(edge_index, *ci));
Modified: branches/release/libs/graph/example/tiernan_girth_circumference.cpp
==============================================================================
--- branches/release/libs/graph/example/tiernan_girth_circumference.cpp (original)
+++ branches/release/libs/graph/example/tiernan_girth_circumference.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -29,7 +29,7 @@
// Compute the girth and circumference simulataneously
size_t girth, circ;
- tie(girth, circ) = tiernan_girth_and_circumference(g);
+ boost::tie(girth, circ) = tiernan_girth_and_circumference(g);
// Print the result
cout << "girth: " << girth << endl;
Modified: branches/release/libs/graph/example/topo-sort-file-dep.cpp
==============================================================================
--- branches/release/libs/graph/example/topo-sort-file-dep.cpp (original)
+++ branches/release/libs/graph/example/topo-sort-file-dep.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -38,7 +38,7 @@
{
mark[u] = 1; // 1 means visited, 0 means not yet visited
graph_traits < file_dep_graph >::adjacency_iterator vi, vi_end;
- for (tie(vi, vi_end) = adjacent_vertices(u, g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = adjacent_vertices(u, g); vi != vi_end; ++vi)
if (mark[*vi] == 0)
topo_sort_dfs(g, *vi, topo_order, mark);
@@ -50,7 +50,7 @@
{
std::vector < int >mark(num_vertices(g), 0);
graph_traits < file_dep_graph >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
if (mark[*vi] == 0)
topo_sort_dfs(g, *vi, topo_order, &mark[0]);
}
@@ -70,7 +70,7 @@
file_dep_graph g(n_vertices);
while (input_begin != input_end) {
size_type i, j;
- tie(i, j) = *input_begin++;
+ boost::tie(i, j) = *input_begin++;
add_edge(i, j, g);
}
#else
@@ -80,7 +80,7 @@
std::vector < std::string > name(num_vertices(g));
std::ifstream name_in("makefile-target-names.dat");
graph_traits < file_dep_graph >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
name_in >> name[*vi];
std::vector < vertex_t > order(num_vertices(g));
Modified: branches/release/libs/graph/example/topo-sort-file-dep2.cpp
==============================================================================
--- branches/release/libs/graph/example/topo-sort-file-dep2.cpp (original)
+++ branches/release/libs/graph/example/topo-sort-file-dep2.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -42,7 +42,7 @@
color[u] = gray_color;
vis.discover_vertex(u, g);
graph_traits < file_dep_graph >::out_edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = out_edges(u, g); ei != ei_end; ++ei) {
if (color[target(*ei, g)] == white_color) {
vis.tree_edge(*ei, g);
dfs_v1(g, target(*ei, g), color, vis);
@@ -60,7 +60,7 @@
{
std::vector < default_color_type > color(num_vertices(g), white_color);
graph_traits < file_dep_graph >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
if (color[*vi] == white_color)
dfs_v1(g, *vi, &color[0], vis);
}
@@ -130,7 +130,7 @@
file_dep_graph g(n_vertices);
while (input_begin != input_end) {
size_type i, j;
- tie(i, j) = *input_begin++;
+ boost::tie(i, j) = *input_begin++;
add_edge(i, j, g);
}
#else
@@ -140,7 +140,7 @@
std::vector < std::string > name(num_vertices(g));
std::ifstream name_in("makefile-target-names.dat");
graph_traits < file_dep_graph >::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
name_in >> name[*vi];
std::vector < vertex_t > order(num_vertices(g));
Modified: branches/release/libs/graph/example/transpose-example.cpp
==============================================================================
--- branches/release/libs/graph/example/transpose-example.cpp (original)
+++ branches/release/libs/graph/example/transpose-example.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -25,7 +25,7 @@
name_map = get(vertex_name, G);
char name = 'a';
graph_traits < graph_t >::vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(G); v != v_end; ++v, ++name)
+ for (boost::tie(v, v_end) = vertices(G); v != v_end; ++v, ++name)
name_map[*v] = name;
typedef std::pair < int, int >E;
@@ -44,7 +44,7 @@
print_graph(G_T, name_map);
graph_traits < graph_t >::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(G); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = edges(G); ei != ei_end; ++ei)
assert(edge(target(*ei, G), source(*ei, G), G_T).second == true);
return 0;
}
Modified: branches/release/libs/graph/example/undirected.cpp
==============================================================================
--- branches/release/libs/graph/example/undirected.cpp (original)
+++ branches/release/libs/graph/example/undirected.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -27,10 +27,10 @@
add_edge(one, two, undigraph);
std::cout << "out_edges(0): ";
- for (tie(out, out_end) = out_edges(zero, undigraph); out != out_end; ++out)
+ for (boost::tie(out, out_end) = out_edges(zero, undigraph); out != out_end; ++out)
std::cout << *out;
std::cout << std::endl << "in_edges(0): ";
- for (tie(in, in_end) = in_edges(zero, undigraph); in != in_end; ++in)
+ for (boost::tie(in, in_end) = in_edges(zero, undigraph); in != in_end; ++in)
std::cout << *in;
std::cout << std::endl;
}
@@ -51,8 +51,8 @@
v = vertex(1, digraph);
add_edge(u, v, Weight(1.2), digraph);
add_edge(v, u, Weight(2.4), digraph);
- tie(e1, found) = edge(u, v, digraph);
- tie(e2, found) = edge(v, u, digraph);
+ boost::tie(e1, found) = edge(u, v, digraph);
+ boost::tie(e2, found) = edge(v, u, digraph);
std::cout << "in a directed graph is ";
#ifdef __GNUC__
// no boolalpha
@@ -80,8 +80,8 @@
u = vertex(0, undigraph);
v = vertex(1, undigraph);
add_edge(u, v, Weight(3.1), undigraph);
- tie(e1, found) = edge(u, v, undigraph);
- tie(e2, found) = edge(v, u, undigraph);
+ boost::tie(e1, found) = edge(u, v, undigraph);
+ boost::tie(e2, found) = edge(v, u, undigraph);
std::cout << "in an undirected graph is ";
#ifdef __GNUC__
std::cout << "(u,v) == (v,u) ? " << (e1 == e2) << std::endl;
Modified: branches/release/libs/graph/src/graphml.cpp
==============================================================================
--- branches/release/libs/graph/src/graphml.cpp (original)
+++ branches/release/libs/graph/src/graphml.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -168,7 +168,7 @@
any edge;
bool added;
- tie(edge, added) = m_g.do_add_edge(source, target);
+ boost::tie(edge, added) = m_g.do_add_edge(source, target);
if (!added) {
BOOST_THROW_EXCEPTION(bad_parallel_edge(u, v));
}
Modified: branches/release/libs/graph/test/Jamfile.v2
==============================================================================
--- branches/release/libs/graph/test/Jamfile.v2 (original)
+++ branches/release/libs/graph/test/Jamfile.v2 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -84,7 +84,7 @@
[ run king_ordering.cpp ]
[ run matching_test.cpp ]
[ run max_flow_test.cpp ]
- [ run kolmogorov_max_flow_test.cpp ]
+ [ run boykov_kolmogorov_max_flow_test.cpp ]
[ run cycle_ratio_tests.cpp ../build//boost_graph ../../regex/build//boost_regex : $(CYCLE_RATIO_INPUT_FILE) ]
[ run basic_planarity_test.cpp ]
[ run make_connected_test.cpp ]
@@ -112,10 +112,11 @@
[ run clustering_coefficient.cpp ]
[ run core_numbers_test.cpp ]
[ run read_propmap.cpp ]
- [ run mcgregor_subgraphs_test.cpp ]
+ [ run mcgregor_subgraphs_test.cpp ../build//boost_graph ]
[ compile grid_graph_cc.cpp ]
[ run grid_graph_test.cpp ]
[ run incremental_components_test.cpp ]
+ [ run random_spanning_tree_test.cpp ../build//boost_graph ]
[ run graphml_test.cpp ../build//boost_graph : : "graphml_test.xml" ]
;
Modified: branches/release/libs/graph/test/astar_search_test.cpp
==============================================================================
--- branches/release/libs/graph/test/astar_search_test.cpp (original)
+++ branches/release/libs/graph/test/astar_search_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -162,8 +162,8 @@
WeightMap weightmap = get(edge_weight, g);
for(std::size_t j = 0; j < num_edges; ++j) {
edge_descriptor e; bool inserted;
- tie(e, inserted) = add_edge(edge_array[j].first,
- edge_array[j].second, g);
+ boost::tie(e, inserted) = add_edge(edge_array[j].first,
+ edge_array[j].second, g);
weightmap[e] = weights[j];
}
Modified: branches/release/libs/graph/test/betweenness_centrality_test.cpp
==============================================================================
--- branches/release/libs/graph/test/betweenness_centrality_test.cpp (original)
+++ branches/release/libs/graph/test/betweenness_centrality_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -45,7 +45,7 @@
{
vertex_iterator v, v_end;
int index = 0;
- for (tie(v, v_end) = boost::vertices(g); v != v_end; ++v, ++index) {
+ for (boost::tie(v, v_end) = boost::vertices(g); v != v_end; ++v, ++index) {
put(vertex_index, g, *v, index);
vertices[index] = *v;
}
@@ -93,7 +93,7 @@
{
vertex_iterator v, v_end;
int index = 0;
- for (tie(v, v_end) = boost::vertices(g); v != v_end; ++v, ++index) {
+ for (boost::tie(v, v_end) = boost::vertices(g); v != v_end; ++v, ++index) {
put(vertex_index, g, *v, index);
vertices[index] = *v;
}
@@ -186,7 +186,7 @@
{
vertex_iterator v, v_end;
int index = 0;
- for (tie(v, v_end) = boost::vertices(g); v != v_end; ++v, ++index) {
+ for (boost::tie(v, v_end) = boost::vertices(g); v != v_end; ++v, ++index) {
put(vertex_index, g, *v, index);
vertices[index] = *v;
if (*v != center) {
@@ -247,7 +247,7 @@
typedef typename graph_traits<MutableGraph>::vertex_descriptor vertex;
typename graph_traits<MutableGraph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
vertex v = *vi;
typename graph_traits<MutableGraph>::vertex_iterator wi
= is_undirected? vi : vertices(g).first;
@@ -273,11 +273,11 @@
typedef typename boost::property_traits<CentralityMap>::value_type centrality_type;
vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
put(centrality, *vi, 0);
vertex_iterator si, si_end;
- for (tie(si, si_end) = vertices(g); si != si_end; ++si) {
+ for (boost::tie(si, si_end) = vertices(g); si != si_end; ++si) {
vertex s = *si;
// S <-- empty stack
@@ -313,7 +313,7 @@
S.push(v);
adjacency_iterator wi, wi_end;
- for (tie(wi, wi_end) = adjacent_vertices(v, g); wi != wi_end; ++wi) {
+ for (boost::tie(wi, wi_end) = adjacent_vertices(v, g); wi != wi_end; ++wi) {
vertex w = *wi;
// w found for the first time?
@@ -366,7 +366,7 @@
is_same<directed_category, undirected_tag>::value;
if (is_undirected) {
vertex_iterator v, v_end;
- for(tie(v, v_end) = vertices(g); v != v_end; ++v) {
+ for(boost::tie(v, v_end) = vertices(g); v != v_end; ++v) {
put(centrality, *v, get(centrality, *v) / centrality_type(2));
}
}
@@ -380,7 +380,7 @@
{
typename graph_traits<Graph>::vertex_iterator v, v_end;
int index = 0;
- for (tie(v, v_end) = boost::vertices(g); v != v_end; ++v, ++index) {
+ for (boost::tie(v, v_end) = boost::vertices(g); v != v_end; ++v, ++index) {
put(vertex_index, g, *v, index);
}
}
Modified: branches/release/libs/graph/test/biconnected_components_test.cpp
==============================================================================
--- branches/release/libs/graph/test/biconnected_components_test.cpp (original)
+++ branches/release/libs/graph/test/biconnected_components_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -42,7 +42,7 @@
std::vector<Vertex> art_points_check;
typename graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
Graph g_copy(g);
Vertex victim = vertex(get(vertex_index, g, *vi), g_copy);
clear_vertex(victim, g_copy);
@@ -121,7 +121,7 @@
}
graph_traits<Graph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
out << source(*ei, g) << " -- " << target(*ei, g)
<< "[label=\"" << g[*ei].component << "\"]\n";
out << "}\n";
Modified: branches/release/libs/graph/test/bidir_remove_edge.cpp
==============================================================================
--- branches/release/libs/graph/test/bidir_remove_edge.cpp (original)
+++ branches/release/libs/graph/test/bidir_remove_edge.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -24,7 +24,7 @@
edge_prop p = { 42 };
edge e; bool b;
- tie(e, b) = add_edge(0, 1, p, g);
+ boost::tie(e, b) = add_edge(0, 1, p, g);
BOOST_TEST( num_edges(g) == 1 );
BOOST_TEST( g[e].weight == 42 );
remove_edge(e, g);
@@ -37,7 +37,7 @@
graph g(2);
edge e; bool b;
- tie(e, b) = add_edge(0, 1, g);
+ boost::tie(e, b) = add_edge(0, 1, g);
BOOST_TEST( num_edges(g) == 1 );
remove_edge(e, g);
BOOST_TEST( num_edges(g) == 0 );
Modified: branches/release/libs/graph/test/bidir_vec_remove_edge.cpp
==============================================================================
--- branches/release/libs/graph/test/bidir_vec_remove_edge.cpp (original)
+++ branches/release/libs/graph/test/bidir_vec_remove_edge.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -40,7 +40,7 @@
// e2 has been invalidated, so grab it again
bool b2;
- tie(e2, b2) = boost::edge(1, 0, g);
+ boost::tie(e2, b2) = boost::edge(1, 0, g);
BOOST_CHECK( b2 );
BOOST_CHECK( g[e2].weight == 17 );
Copied: branches/release/libs/graph/test/boykov_kolmogorov_max_flow_test.cpp (from r63189, /trunk/libs/graph/test/boykov_kolmogorov_max_flow_test.cpp)
==============================================================================
--- /trunk/libs/graph/test/boykov_kolmogorov_max_flow_test.cpp (original)
+++ branches/release/libs/graph/test/boykov_kolmogorov_max_flow_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -68,7 +68,7 @@
//randomize edge-capacities
//randomize_property<edge_capacity, Graph, tIntGen> (g,int_gen); //we cannot use this, as we have no idea how properties are stored, right?
typename graph_traits<Graph>::edge_iterator ei, e_end;
- for(tie(ei,e_end) = edges(g); ei != e_end; ++ei)
+ for(boost::tie(ei,e_end) = edges(g); ei != e_end; ++ei)
cap[*ei] = int_gen();
//get source and sink node
@@ -79,7 +79,7 @@
//add reverse edges (ugly... how to do better?!)
std::list<edge_descriptor> edges_copy;
- tie(ei, e_end) = edges(g);
+ boost::tie(ei, e_end) = edges(g);
std::copy(ei, e_end, std::back_insert_iterator< std::list<edge_descriptor> >(edges_copy));
while(!edges_copy.empty()){
edge_descriptor old_edge = edges_copy.front();
@@ -88,7 +88,7 @@
vertex_descriptor target_vertex = source(old_edge, g);
bool inserted;
edge_descriptor new_edge;
- tie(new_edge,inserted) = add_edge(source_vertex, target_vertex, g);
+ boost::tie(new_edge,inserted) = add_edge(source_vertex, target_vertex, g);
assert(inserted);
rev[old_edge] = new_edge;
rev[new_edge] = old_edge ;
@@ -111,7 +111,7 @@
tVectorGraph g;
graph_traits<tVectorGraph>::vertex_descriptor src,sink;
- tie(src,sink) = fill_random_max_flow_graph(g, get(edge_capacity,g), get(edge_reverse, g), n_verts, n_edges, seed);
+ boost::tie(src,sink) = fill_random_max_flow_graph(g, get(edge_capacity,g), get(edge_reverse, g), n_verts, n_edges, seed);
return boykov_kolmogorov_max_flow(g, get(edge_capacity, g),
get(edge_residual_capacity, g),
@@ -137,12 +137,12 @@
tListGraph g;
graph_traits<tListGraph>::vertex_descriptor src,sink;
- tie(src,sink) = fill_random_max_flow_graph(g, get(edge_capacity,g), get(edge_reverse, g), n_verts, n_edges, seed);
+ boost::tie(src,sink) = fill_random_max_flow_graph(g, get(edge_capacity,g), get(edge_reverse, g), n_verts, n_edges, seed);
//initialize vertex indices
graph_traits<tListGraph>::vertex_iterator vi,v_end;
graph_traits<tListGraph>::vertices_size_type index = 0;
- for(tie(vi, v_end) = vertices(g); vi != v_end; ++vi){
+ for(boost::tie(vi, v_end) = vertices(g); vi != v_end; ++vi){
put(vertex_index, g, *vi, index++);
}
return boykov_kolmogorov_max_flow(g, get(edge_capacity, g),
@@ -178,7 +178,7 @@
tBundleGraph g;
graph_traits<tBundleGraph>::vertex_descriptor src,sink;
- tie(src,sink) = fill_random_max_flow_graph(g, get(&tEdge::edge_capacity,g), get(&tEdge::edge_reverse, g), n_verts, n_edges, seed);
+ boost::tie(src,sink) = fill_random_max_flow_graph(g, get(&tEdge::edge_capacity,g), get(&tEdge::edge_reverse, g), n_verts, n_edges, seed);
return boykov_kolmogorov_max_flow(g, get(&tEdge::edge_capacity, g),
get(&tEdge::edge_residual_capacity, g),
get(&tEdge::edge_reverse, g),
@@ -199,7 +199,7 @@
tGraph g;
graph_traits<tGraph>::vertex_descriptor src,sink;
- tie(src,sink) = fill_random_max_flow_graph(g, get(edge_capacity,g), get(edge_reverse, g), n_verts, n_edges, seed);
+ boost::tie(src,sink) = fill_random_max_flow_graph(g, get(edge_capacity,g), get(edge_reverse, g), n_verts, n_edges, seed);
std::vector<graph_traits<tGraph>::edge_descriptor> predecessor_vec(n_verts);
std::vector<default_color_type> color_vec(n_verts);
@@ -272,7 +272,7 @@
bool is_active = (tSuper::m_in_active_list_map[v] && (tSuper::has_parent(v) || it != tSuper::m_orphans.end() ));
if(this->get_tree(v) != tColorTraits::gray() && !is_active){
typename graph_traits<Graph>::out_edge_iterator ei,e_end;
- for(tie(ei, e_end) = out_edges(v, tSuper::m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(v, tSuper::m_g); ei != e_end; ++ei){
const tVertex& other_node = target(*ei, tSuper::m_g);
if(this->get_tree(other_node) != this->get_tree(v)){
if(this->get_tree(v) == tColorTraits::black())
@@ -342,7 +342,7 @@
void check_invariants(){
tVertexIterator vi, v_end;
- for(tie(vi, v_end) = vertices(tSuper::m_g); vi != v_end; ++vi){
+ for(boost::tie(vi, v_end) = vertices(tSuper::m_g); vi != v_end; ++vi){
invariant_four(*vi);
invariant_five(*vi);
invariant_six(*vi);
@@ -359,7 +359,7 @@
while(true){
bool path_found;
tEdge connecting_edge;
- tie(connecting_edge, path_found) = this->grow(); //find a path from source to sink
+ boost::tie(connecting_edge, path_found) = this->grow(); //find a path from source to sink
if(!path_found){
//we're finished, no more paths were found
break;
@@ -375,13 +375,13 @@
//check if flow is the sum of outgoing edges of src
tOutEdgeIterator ei, e_end;
tEdgeVal src_sum = 0;
- for(tie(ei, e_end) = out_edges(this->m_source, this->m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(this->m_source, this->m_g); ei != e_end; ++ei){
src_sum += this->m_cap_map[*ei] - this->m_res_cap_map[*ei];
}
BOOST_CHECK(this->m_flow == src_sum);
//check if flow is the sum of ingoing edges of sink
tEdgeVal sink_sum = 0;
- for(tie(ei, e_end) = out_edges(this->m_sink, this->m_g); ei != e_end; ++ei){
+ for(boost::tie(ei, e_end) = out_edges(this->m_sink, this->m_g); ei != e_end; ++ei){
tEdge in_edge = this->m_rev_edge_map[*ei];
sink_sum += this->m_cap_map[in_edge] - this->m_res_cap_map[in_edge];
}
@@ -405,7 +405,7 @@
tVectorGraph g;
graph_traits<tVectorGraph>::vertex_descriptor src, sink;
- tie(src,sink) = fill_random_max_flow_graph(g, get(edge_capacity,g), get(edge_reverse, g), n_verts, n_edges, seed);
+ boost::tie(src,sink) = fill_random_max_flow_graph(g, get(edge_capacity,g), get(edge_reverse, g), n_verts, n_edges, seed);
typedef property_map<tVectorGraph, edge_capacity_t>::type tEdgeCapMap;
typedef property_map<tVectorGraph, edge_residual_capacity_t>::type tEdgeResCapMap;
@@ -455,7 +455,7 @@
std::cout << "overloads flow: " << flow_overloads << std::endl;
BOOST_CHECK(flow_bundles == flow_overloads);
- // excessive test version where boykov-kolmogorov's algorithm invariants are
+ // excessive test version where Boykov-Kolmogorov's algorithm invariants are
// checked
long flow_invariants = test_algorithms_invariant(n_verts, n_edges, seed);
std::cout << "invariants flow: " << flow_invariants << std::endl;
Modified: branches/release/libs/graph/test/cycle_ratio_tests.cpp
==============================================================================
--- branches/release/libs/graph/test/cycle_ratio_tests.cpp (original)
+++ branches/release/libs/graph/test/cycle_ratio_tests.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -333,7 +333,7 @@
typedef graph_traits<GraphMInt>::vertex_iterator VertexItM;
typedef graph_traits<GraphMInt>::edge_descriptor EdgeM;
VertexItM vi1, vi2, vi_end;
- for (tie(vi1, vi_end) = vertices(gm); vi1 != vi_end; ++vi1)
+ for (boost::tie(vi1, vi_end) = vertices(gm); vi1 != vi_end; ++vi1)
{
for (vi2 = vertices(gm).first; vi2 != vi_end; ++vi2)
add_edge(*vi1, *vi2, gm);
Modified: branches/release/libs/graph/test/dijkstra_heap_performance.cpp
==============================================================================
--- branches/release/libs/graph/test/dijkstra_heap_performance.cpp (original)
+++ branches/release/libs/graph/test/dijkstra_heap_performance.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -100,7 +100,7 @@
std::cout << n << " vertices, " << num_edges(g) << " edges.\n";
uniform_real<double> rand01(0.0, 1.0);
graph_traits<Graph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei)
put(edge_weight, g, *ei, rand01(gen));
std::vector<double> binary_heap_distances(n);
Modified: branches/release/libs/graph/test/dijkstra_no_color_map_compare.cpp
==============================================================================
--- branches/release/libs/graph/test/dijkstra_no_color_map_compare.cpp (original)
+++ branches/release/libs/graph/test/dijkstra_no_color_map_compare.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -16,10 +16,10 @@
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/dijkstra_shortest_paths.hpp>
#include <boost/graph/dijkstra_shortest_paths_no_color_map.hpp>
-#include <boost/graph/iteration_macros.hpp>
#include <boost/graph/properties.hpp>
#include <boost/graph/random.hpp>
#include <boost/test/minimal.hpp>
+#include <boost/graph/iteration_macros.hpp>
#define INITIALIZE_VERTEX 0
#define DISCOVER_VERTEX 1
Modified: branches/release/libs/graph/test/dominator_tree_test.cpp
==============================================================================
--- branches/release/libs/graph/test/dominator_tree_test.cpp (original)
+++ branches/release/libs/graph/test/dominator_tree_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -238,7 +238,7 @@
IndexMap indexMap(get(vertex_index, g));
graph_traits<G>::vertex_iterator uItr, uEnd;
int j = 0;
- for (tie(uItr, uEnd) = vertices(g); uItr != uEnd; ++uItr, ++j)
+ for (boost::tie(uItr, uEnd) = vertices(g); uItr != uEnd; ++uItr, ++j)
{
put(indexMap, *uItr, j);
}
@@ -252,7 +252,7 @@
lengauer_tarjan_dominator_tree(g, vertex(0, g), domTreePredMap);
vector<int> idom(num_vertices(g));
- for (tie(uItr, uEnd) = vertices(g); uItr != uEnd; ++uItr)
+ for (boost::tie(uItr, uEnd) = vertices(g); uItr != uEnd; ++uItr)
{
if (get(domTreePredMap, *uItr) != graph_traits<G>::null_vertex())
idom[get(indexMap, *uItr)] =
@@ -276,7 +276,7 @@
iterative_bit_vector_dominator_tree(g, vertex(0, g), domTreePredMap);
vector<int> idom2(num_vertices(g));
- for (tie(uItr, uEnd) = vertices(g); uItr != uEnd; ++uItr)
+ for (boost::tie(uItr, uEnd) = vertices(g); uItr != uEnd; ++uItr)
{
if (get(domTreePredMap, *uItr) != graph_traits<G>::null_vertex())
idom2[get(indexMap, *uItr)] =
Modified: branches/release/libs/graph/test/graphml_test.cpp
==============================================================================
--- branches/release/libs/graph/test/graphml_test.cpp (original)
+++ branches/release/libs/graph/test/graphml_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -74,11 +74,11 @@
assert(num_edges(g) == num_edges(g2));
graph_traits<graph_t>::vertex_iterator v, v_end;
- for (tie(v,v_end) = vertices(g); v != v_end; ++v)
+ for (boost::tie(v,v_end) = vertices(g); v != v_end; ++v)
assert(get(vertex_color_t(), g, *v) == get(vertex_color_t(), g2, *v));
graph_traits<graph_t>::edge_iterator e, e_end;
- for (tie(e,e_end) = edges(g); e != e_end; ++e)
+ for (boost::tie(e,e_end) = edges(g); e != e_end; ++e)
assert(get(edge_weight_t(), g, *e) == get(edge_weight_t(), g2, *e));
return 0;
Modified: branches/release/libs/graph/test/index_graph.cpp
==============================================================================
--- branches/release/libs/graph/test/index_graph.cpp (original)
+++ branches/release/libs/graph/test/index_graph.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -77,7 +77,7 @@
// Each vertex should be numbered correctly.
Iterator i, end;
- tie(i, end) = vertices(g);
+ boost::tie(i, end) = vertices(g);
for(size_t x = 0; i != end; ++i, ++x) {
BOOST_ASSERT(get_vertex_index(*i, g) == x);
}
Deleted: branches/release/libs/graph/test/kolmogorov_max_flow_test.cpp
==============================================================================
--- branches/release/libs/graph/test/kolmogorov_max_flow_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
+++ (empty file)
@@ -1,434 +0,0 @@
-// Copyright (c) 2006, Stephan Diederich
-//
-// This code may be used under either of the following two licences:
-//
-// Permission is hereby granted, free of charge, to any person
-// obtaining a copy of this software and associated documentation
-// files (the "Software"), to deal in the Software without
-// restriction, including without limitation the rights to use,
-// copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following
-// conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-// OTHER DEALINGS IN THE SOFTWARE. OF SUCH DAMAGE.
-//
-// Or:
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#include <vector>
-#include <iterator>
-#include <iostream>
-#include <algorithm>
-#include <fstream>
-
-#include <boost/test/minimal.hpp>
-#include <boost/graph/kolmogorov_max_flow.hpp>
-//boost utilities we use
-#include <boost/graph/adjacency_list.hpp>
-#include <boost/graph/adjacency_matrix.hpp>
-#include <boost/graph/random.hpp>
-#include <boost/property_map/property_map.hpp>
-#include <boost/random/linear_congruential.hpp>
-#include <boost/lexical_cast.hpp>
-
-using namespace boost;
-
-template <typename Graph, typename CapacityMap, typename ReverseEdgeMap>
-std::pair< typename graph_traits<Graph>::vertex_descriptor,typename graph_traits<Graph>::vertex_descriptor>
-fill_random_max_flow_graph(Graph& g, CapacityMap cap, ReverseEdgeMap rev, typename graph_traits<Graph>::vertices_size_type n_verts,
- typename graph_traits<Graph>::edges_size_type n_edges, std::size_t seed)
-{
- typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
- const int cap_low = 1;
- const int cap_high = 1000;
-
- //init random numer generator
- minstd_rand gen(seed);
- //generate graph
- generate_random_graph(g, n_verts, n_edges, gen);
-
- //init an uniform distribution int generator
- typedef variate_generator<minstd_rand, uniform_int<int> > tIntGen;
- tIntGen int_gen(gen, uniform_int<int>(cap_low, cap_high));
- //randomize edge-capacities
- //randomize_property<edge_capacity, Graph, tIntGen> (g,int_gen); //we cannot use this, as we have no idea how properties are stored, right?
- typename graph_traits<Graph>::edge_iterator ei, e_end;
- for(tie(ei,e_end) = edges(g); ei != e_end; ++ei)
- cap[*ei] = int_gen();
-
- //get source and sink node
- vertex_descriptor s = random_vertex(g, gen);
- vertex_descriptor t = graph_traits<Graph>::null_vertex();
- while(t == graph_traits<Graph>::null_vertex() || t == s)
- t = random_vertex(g, gen);
-
- //add reverse edges (ugly... how to do better?!)
- std::list<edge_descriptor> edges_copy;
- tie(ei, e_end) = edges(g);
- std::copy(ei, e_end, std::back_insert_iterator< std::list<edge_descriptor> >(edges_copy));
- while(!edges_copy.empty()){
- edge_descriptor old_edge = edges_copy.front();
- edges_copy.pop_front();
- vertex_descriptor source_vertex = target(old_edge, g);
- vertex_descriptor target_vertex = source(old_edge, g);
- bool inserted;
- edge_descriptor new_edge;
- tie(new_edge,inserted) = add_edge(source_vertex, target_vertex, g);
- assert(inserted);
- rev[old_edge] = new_edge;
- rev[new_edge] = old_edge ;
- cap[new_edge] = 0;
- }
- return std::make_pair(s,t);
-}
-
-long test_adjacency_list_vecS(int n_verts, int n_edges, std::size_t seed){
- typedef adjacency_list_traits<vecS, vecS, directedS> tVectorTraits;
- typedef adjacency_list<vecS, vecS, directedS,
- property<vertex_index_t, long,
- property<vertex_predecessor_t, tVectorTraits::edge_descriptor,
- property<vertex_color_t, boost::default_color_type,
- property<vertex_distance_t, long> > > >,
- property<edge_capacity_t, long,
- property<edge_residual_capacity_t, long,
- property<edge_reverse_t, tVectorTraits::edge_descriptor > > > > tVectorGraph;
-
- tVectorGraph g;
-
- graph_traits<tVectorGraph>::vertex_descriptor src,sink;
- tie(src,sink) = fill_random_max_flow_graph(g, get(edge_capacity,g), get(edge_reverse, g), n_verts, n_edges, seed);
-
- return kolmogorov_max_flow(g, get(edge_capacity, g),
- get(edge_residual_capacity, g),
- get(edge_reverse, g),
- get(vertex_predecessor, g),
- get(vertex_color, g),
- get(vertex_distance, g),
- get(vertex_index, g),
- src, sink);
-}
-
-long test_adjacency_list_listS(int n_verts, int n_edges, std::size_t seed){
- typedef adjacency_list_traits<listS, listS, directedS> tListTraits;
- typedef adjacency_list<listS, listS, directedS,
- property<vertex_index_t, long,
- property<vertex_predecessor_t, tListTraits::edge_descriptor,
- property<vertex_color_t, boost::default_color_type,
- property<vertex_distance_t, long> > > >,
- property<edge_capacity_t, long,
- property<edge_residual_capacity_t, long,
- property<edge_reverse_t, tListTraits::edge_descriptor > > > > tListGraph;
-
- tListGraph g;
-
- graph_traits<tListGraph>::vertex_descriptor src,sink;
- tie(src,sink) = fill_random_max_flow_graph(g, get(edge_capacity,g), get(edge_reverse, g), n_verts, n_edges, seed);
-
- //initialize vertex indices
- graph_traits<tListGraph>::vertex_iterator vi,v_end;
- graph_traits<tListGraph>::vertices_size_type index = 0;
- for(tie(vi, v_end) = vertices(g); vi != v_end; ++vi){
- put(vertex_index, g, *vi, index++);
- }
- return kolmogorov_max_flow(g, get(edge_capacity, g),
- get(edge_residual_capacity, g),
- get(edge_reverse, g),
- get(vertex_predecessor, g),
- get(vertex_color, g),
- get(vertex_distance, g),
- get(vertex_index, g),
- src, sink);
-}
-
-template<typename EdgeDescriptor>
- struct Node{
- boost::default_color_type vertex_color;
- long vertex_distance;
- EdgeDescriptor vertex_predecessor;
-};
-
-template<typename EdgeDescriptor>
- struct Link{
- long edge_capacity;
- long edge_residual_capacity;
- EdgeDescriptor edge_reverse;
-};
-
-long test_bundled_properties(int n_verts, int n_edges, std::size_t seed){
- typedef adjacency_list_traits<vecS, vecS, directedS> tTraits;
- typedef Node<tTraits::edge_descriptor> tVertex;
- typedef Link<tTraits::edge_descriptor> tEdge;
- typedef adjacency_list<vecS, vecS, directedS, tVertex, tEdge> tBundleGraph;
-
- tBundleGraph g;
-
- graph_traits<tBundleGraph>::vertex_descriptor src,sink;
- tie(src,sink) = fill_random_max_flow_graph(g, get(&tEdge::edge_capacity,g), get(&tEdge::edge_reverse, g), n_verts, n_edges, seed);
- return kolmogorov_max_flow(g, get(&tEdge::edge_capacity, g),
- get(&tEdge::edge_residual_capacity, g),
- get(&tEdge::edge_reverse, g),
- get(&tVertex::vertex_predecessor, g),
- get(&tVertex::vertex_color, g),
- get(&tVertex::vertex_distance, g),
- get(vertex_index, g),
- src, sink);
-}
-
-long test_overloads(int n_verts, int n_edges, std::size_t seed){
- typedef adjacency_list_traits<vecS, vecS, directedS> tTraits;
- typedef property <edge_capacity_t, long,
- property<edge_residual_capacity_t, long,
- property<edge_reverse_t, tTraits::edge_descriptor> > >tEdgeProperty;
- typedef adjacency_list<vecS, vecS, directedS, no_property, tEdgeProperty> tGraph;
-
- tGraph g;
-
- graph_traits<tGraph>::vertex_descriptor src,sink;
- tie(src,sink) = fill_random_max_flow_graph(g, get(edge_capacity,g), get(edge_reverse, g), n_verts, n_edges, seed);
-
- std::vector<graph_traits<tGraph>::edge_descriptor> predecessor_vec(n_verts);
- std::vector<default_color_type> color_vec(n_verts);
- std::vector<graph_traits<tGraph>::vertices_size_type> distance_vec(n_verts);
-
- long flow_overload_1 = kolmogorov_max_flow(g, get(edge_capacity,g), get(edge_residual_capacity,g), get(edge_reverse,g), get(vertex_index,g), src, sink);
-
- long flow_overload_2 = kolmogorov_max_flow(g, get(edge_capacity,g), get(edge_residual_capacity,g), get(edge_reverse,g),
- &(color_vec[0]), get(vertex_index,g), src, sink);
-
- BOOST_CHECK(flow_overload_1 == flow_overload_2);
- return flow_overload_1;
-}
-
-template <class Graph, class EdgeCapacityMap, class ResidualCapacityEdgeMap, class ReverseEdgeMap, class PredecessorMap, class ColorMap,
- class DistanceMap, class IndexMap>
-class kolmogorov_test:public detail::kolmogorov<Graph,EdgeCapacityMap,ResidualCapacityEdgeMap,ReverseEdgeMap,PredecessorMap,ColorMap,DistanceMap,IndexMap>
-{
-
- typedef typename graph_traits<Graph>::edge_descriptor tEdge;
- typedef typename graph_traits<Graph>::vertex_descriptor tVertex;
- typedef typename property_traits< typename property_map<Graph, edge_capacity_t>::const_type>::value_type tEdgeVal;
- typedef typename graph_traits<Graph>::vertex_iterator tVertexIterator;
- typedef typename graph_traits<Graph>::out_edge_iterator tOutEdgeIterator;
- typedef typename property_traits<ColorMap>::value_type tColorValue;
- typedef color_traits<tColorValue> tColorTraits;
- typedef typename property_traits<DistanceMap>::value_type tDistanceVal;
- typedef typename detail::kolmogorov<Graph,EdgeCapacityMap,ResidualCapacityEdgeMap,ReverseEdgeMap,PredecessorMap,ColorMap,DistanceMap,IndexMap> tSuper;
- public:
- kolmogorov_test(Graph& g, typename graph_traits<Graph>::vertex_descriptor src, typename graph_traits<Graph>::vertex_descriptor sink):
- detail::kolmogorov<Graph,EdgeCapacityMap,ResidualCapacityEdgeMap,ReverseEdgeMap,PredecessorMap,ColorMap,DistanceMap,IndexMap>
- (g, get(edge_capacity,g), get(edge_residual_capacity,g), get(edge_reverse, g), get(vertex_predecessor, g), get(vertex_color, g),
- get(vertex_distance, g), get(vertex_index, g), src, sink){
- }
-
- void invariant_four(tVertex v) const{
- //passive nodes in S or T
- if(v == tSuper::m_source || v == tSuper::m_sink)
- return;
- typename std::list<tVertex>::const_iterator it = find(tSuper::m_orphans.begin(), tSuper::m_orphans.end(), v);
- // a node is active, if its in the active_list AND (is has_a_parent, or its already in the orphans_list or its the sink, or its the source)
- bool is_active = (tSuper::m_in_active_list_map[v] && (tSuper::has_parent(v) || it != tSuper::m_orphans.end() ));
- if(this->get_tree(v) != tColorTraits::gray() && !is_active){
- typename graph_traits<Graph>::out_edge_iterator ei,e_end;
- for(tie(ei, e_end) = out_edges(v, tSuper::m_g); ei != e_end; ++ei){
- const tVertex& other_node = target(*ei, tSuper::m_g);
- if(this->get_tree(other_node) != this->get_tree(v)){
- if(this->get_tree(v) == tColorTraits::black())
- BOOST_CHECK(tSuper::m_res_cap_map[*ei] == 0);
- else
- BOOST_CHECK(tSuper::m_res_cap_map[tSuper::m_rev_edge_map[*ei]] == 0);
- }
- }
- }
- }
-
- void invariant_five(const tVertex& v) const{
- BOOST_CHECK(this->get_tree(v) != tColorTraits::gray() || tSuper::m_time_map[v] <= tSuper::m_time);
- }
-
- void invariant_six(const tVertex& v) const{
- if(this->get_tree(v) == tColorTraits::gray() || tSuper::m_time_map[v] != tSuper::m_time)
- return;
- else{
- tVertex current_node = v;
- tDistanceVal distance = 0;
- tColorValue color = this->get_tree(v);
- tVertex terminal = (color == tColorTraits::black()) ? tSuper::m_source : tSuper::m_sink;
- while(current_node != terminal){
- BOOST_CHECK(tSuper::has_parent(current_node));
- tEdge e = this->get_edge_to_parent(current_node);
- ++distance;
- current_node = (color == tColorTraits::black())? source(e, tSuper::m_g) : target(e, tSuper::m_g);
- if(distance > tSuper::m_dist_map[v])
- break;
- }
- BOOST_CHECK(distance == tSuper::m_dist_map[v]);
- }
- }
-
- void invariant_seven(const tVertex& v) const{
- if(this->get_tree(v) == tColorTraits::gray())
- return;
- else{
- tColorValue color = this->get_tree(v);
- long time = tSuper::m_time_map[v];
- tVertex current_node = v;
- while(tSuper::has_parent(current_node)){
- tEdge e = this->get_edge_to_parent(current_node);
- current_node = (color == tColorTraits::black()) ? source(e, tSuper::m_g) : target(e, tSuper::m_g);
- BOOST_CHECK(tSuper::m_time_map[current_node] >= time);
- }
- }
- }//invariant_seven
-
- void invariant_eight(const tVertex& v) const{
- if(this->get_tree(v) == tColorTraits::gray())
- return;
- else{
- tColorValue color = this->get_tree(v);
- long time = tSuper::m_time_map[v];
- tDistanceVal distance = tSuper::m_dist_map[v];
- tVertex current_node = v;
- while(tSuper::has_parent(current_node)){
- tEdge e = this->get_edge_to_parent(current_node);
- current_node = (color == tColorTraits::black()) ? source(e, tSuper::m_g) : target(e, tSuper::m_g);
- if(tSuper::m_time_map[current_node] == time)
- BOOST_CHECK(tSuper::m_dist_map[current_node] < distance);
- }
- }
- }//invariant_eight
-
- void check_invariants(){
- tVertexIterator vi, v_end;
- for(tie(vi, v_end) = vertices(tSuper::m_g); vi != v_end; ++vi){
- invariant_four(*vi);
- invariant_five(*vi);
- invariant_six(*vi);
- invariant_seven(*vi);
- invariant_eight(*vi);
- }
- }
-
- tEdgeVal test(){
- this->add_active_node(this->m_sink);
- this->augment_direct_paths();
- check_invariants();
- //start the main-loop
- while(true){
- bool path_found;
- tEdge connecting_edge;
- tie(connecting_edge, path_found) = this->grow(); //find a path from source to sink
- if(!path_found){
- //we're finished, no more paths were found
- break;
- }
- check_invariants();
- this->m_time++;
- this->augment(connecting_edge); //augment that path
- check_invariants();
- this->adopt(); //rebuild search tree structure
- check_invariants();
- }
-
- //check if flow is the sum of outgoing edges of src
- tOutEdgeIterator ei, e_end;
- tEdgeVal src_sum = 0;
- for(tie(ei, e_end) = out_edges(this->m_source, this->m_g); ei != e_end; ++ei){
- src_sum += this->m_cap_map[*ei] - this->m_res_cap_map[*ei];
- }
- BOOST_CHECK(this->m_flow == src_sum);
- //check if flow is the sum of ingoing edges of sink
- tEdgeVal sink_sum = 0;
- for(tie(ei, e_end) = out_edges(this->m_sink, this->m_g); ei != e_end; ++ei){
- tEdge in_edge = this->m_rev_edge_map[*ei];
- sink_sum += this->m_cap_map[in_edge] - this->m_res_cap_map[in_edge];
- }
- BOOST_CHECK(this->m_flow == sink_sum);
- return this->m_flow;
- }
-};
-
-long test_algorithms_invariant(int n_verts, int n_edges, std::size_t seed)
-{
- typedef adjacency_list_traits<vecS, vecS, directedS> tVectorTraits;
- typedef adjacency_list<vecS, vecS, directedS,
- property<vertex_index_t, long,
- property<vertex_predecessor_t, tVectorTraits::edge_descriptor,
- property<vertex_color_t, default_color_type,
- property<vertex_distance_t, long> > > >,
- property<edge_capacity_t, long,
- property<edge_residual_capacity_t, long,
- property<edge_reverse_t, tVectorTraits::edge_descriptor > > > > tVectorGraph;
-
- tVectorGraph g;
-
- graph_traits<tVectorGraph>::vertex_descriptor src, sink;
- tie(src,sink) = fill_random_max_flow_graph(g, get(edge_capacity,g), get(edge_reverse, g), n_verts, n_edges, seed);
-
- typedef property_map<tVectorGraph, edge_capacity_t>::type tEdgeCapMap;
- typedef property_map<tVectorGraph, edge_residual_capacity_t>::type tEdgeResCapMap;
- typedef property_map<tVectorGraph, edge_reverse_t>::type tRevEdgeMap;
- typedef property_map<tVectorGraph, vertex_predecessor_t>::type tVertexPredMap;
- typedef property_map<tVectorGraph, vertex_color_t>::type tVertexColorMap;
- typedef property_map<tVectorGraph, vertex_distance_t>::type tDistanceMap;
- typedef property_map<tVectorGraph, vertex_index_t>::type tIndexMap;
- typedef kolmogorov_test<tVectorGraph, tEdgeCapMap, tEdgeResCapMap, tRevEdgeMap, tVertexPredMap, tVertexColorMap, tDistanceMap, tIndexMap> tKolmo;
- tKolmo instance(g, src, sink);
- return instance.test();
-}
-
-int test_main(int argc, char* argv[])
-{
- int n_verts = 10;
- int n_edges = 500;
- std::size_t seed = 1;
-
- if (argc > 1) n_verts = lexical_cast<int>(argv[1]);
- if (argc > 2) n_edges = lexical_cast<int>(argv[2]);
- if (argc > 3) seed = lexical_cast<std::size_t>(argv[3]);
-
- //we need at least 2 vertices to create src and sink in random graphs
- //this case is also caught in kolmogorov_max_flow
- if (n_verts<2)
- n_verts = 2;
-
- /*
- * below are checks for different calls to kolmogorov_max_flow and different graph-types
- */
- //checks support of vecS storage
- long flow_vecS = test_adjacency_list_vecS(n_verts, n_edges, seed);
- std::cout << "vecS flow: " << flow_vecS << std::endl;
- //checks support of listS storage (especially problems with vertex indices)
- long flow_listS = test_adjacency_list_listS(n_verts, n_edges, seed);
- std::cout << "listS flow: " << flow_listS << std::endl;
- BOOST_CHECK(flow_vecS == flow_listS);
- //checks bundled properties
- long flow_bundles = test_bundled_properties(n_verts, n_edges, seed);
- std::cout << "bundles flow: " << flow_bundles << std::endl;
- BOOST_CHECK(flow_listS == flow_bundles);
- //checks overloads
- long flow_overloads = test_overloads(n_verts, n_edges, seed);
- std::cout << "overloads flow: " << flow_overloads << std::endl;
- BOOST_CHECK(flow_bundles == flow_overloads);
- /*
- * excessive test version where kolmogorov's algorithm invariants are checked
- */
- long flow_invariants = test_algorithms_invariant(n_verts, n_edges, seed);
- std::cout << "invariants flow: " << flow_invariants << std::endl;
- BOOST_CHECK(flow_overloads == flow_invariants);
- return 0;
-}
Modified: branches/release/libs/graph/test/layout_test.cpp
==============================================================================
--- branches/release/libs/graph/test/layout_test.cpp (original)
+++ branches/release/libs/graph/test/layout_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -41,7 +41,7 @@
typename graph_traits<Graph>::vertex_iterator vi, vi_end;
// Find vertex at this position
typename graph_traits<Graph>::vertices_size_type index = 0;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi, ++index) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi, ++index) {
if ((int)position[*vi][0] == x && (int)position[*vi][1] == y)
break;
}
@@ -60,14 +60,14 @@
out << "graph " << name << " {" << std::endl;
typename graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) {
out << " n" << get(vertex_index, g, *vi) << "[ pos=\""
<< (int)position[*vi][0] + 25 << ", " << (int)position[*vi][1] + 25
<< "\" ];\n";
}
typename graph_traits<Graph>::edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
out << " n" << get(vertex_index, g, source(*ei, g)) << " -- n"
<< get(vertex_index, g, target(*ei, g)) << ";\n";
}
@@ -172,11 +172,11 @@
vertex_iterator vi, vi_end;
int i = 0;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
put(vertex_index, g, *vi, i++);
edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
put(edge_weight, g, *ei, 1.0);
std::cerr << "(" << (char)(get(vertex_index, g, source(*ei, g)) + 'A')
<< ", " << (char)(get(vertex_index, g, target(*ei, g)) + 'A')
@@ -241,11 +241,11 @@
vertex_iterator vi, vi_end;
int i = 0;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
put(vertex_index, g, *vi, i++);
edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
put(edge_weight, g, *ei, 1.0);
std::cerr << "(" << (char)(get(vertex_index, g, source(*ei, g)) + 'A')
<< ", " << (char)(get(vertex_index, g, target(*ei, g)) + 'A')
@@ -313,11 +313,11 @@
vertex_iterator vi, vi_end;
int i = 0;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
put(vertex_index, g, *vi, i++);
edge_iterator ei, ei_end;
- for (tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
+ for (boost::tie(ei, ei_end) = edges(g); ei != ei_end; ++ei) {
put(edge_weight, g, *ei, 1.0);
std::cerr << "(" << (char)(get(vertex_index, g, source(*ei, g)) + 'A')
<< ", " << (char)(get(vertex_index, g, target(*ei, g)) + 'A')
Modified: branches/release/libs/graph/test/matching_test.cpp
==============================================================================
--- branches/release/libs/graph/test/matching_test.cpp (original)
+++ branches/release/libs/graph/test/matching_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -51,7 +51,7 @@
vertex_iterator_t vi, vi_end;
v_size_t i = 0;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi, ++i)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi, ++i)
put(vertex_index, g, *vi, i);
}
};
@@ -66,8 +66,8 @@
g = Graph(n);
vertex_iterator_t vi, vi_end, wi;
- tie(vi,vi_end) = vertices(g);
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ boost::tie(vi,vi_end) = vertices(g);
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
{
wi = vi;
++wi;
@@ -92,7 +92,7 @@
vertex_iterator_t vi, vi_end, ui, ui_end, halfway;
- tie(ui,ui_end) = vertices(g);
+ boost::tie(ui,ui_end) = vertices(g);
halfway = ui;
for(int i = 0; i < n; ++i)
@@ -111,7 +111,7 @@
++ui;
}
- tie(ui,ui_end) = vertices(g);
+ boost::tie(ui,ui_end) = vertices(g);
while(halfway != ui_end)
{
@@ -233,7 +233,7 @@
//Now remove an edge from the edmonds_mate matching.
vertex_iterator_t vi,vi_end;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
if (edmonds_mate[*vi] != graph_traits<Graph>::null_vertex())
break;
@@ -299,7 +299,7 @@
vertex_descriptor_t v = random_vertex(j,rand_num);
if (u != v)
{
- tie(tuples::ignore, success) = add_edge(u, v, j);
+ boost::tie(tuples::ignore, success) = add_edge(u, v, j);
if (success)
num_edges++;
}
@@ -316,7 +316,7 @@
}
//Now remove an edge from the random_mate matching.
- for(tie(vi,vi_end) = vertices(j); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(j); vi != vi_end; ++vi)
if (random_mate[*vi] != graph_traits<Graph>::null_vertex())
break;
Modified: branches/release/libs/graph/test/max_flow_test.cpp
==============================================================================
--- branches/release/libs/graph/test/max_flow_test.cpp (original)
+++ branches/release/libs/graph/test/max_flow_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -37,7 +37,7 @@
#include <boost/test/minimal.hpp>
//three max_flows we test here
-#include <boost/graph/kolmogorov_max_flow.hpp>
+#include <boost/graph/boykov_kolmogorov_max_flow.hpp>
#include <boost/graph/push_relabel_max_flow.hpp>
#include <boost/graph/edmonds_karp_max_flow.hpp>
//boost utilities we use
@@ -107,7 +107,7 @@
property_map < Graph, edge_capacity_t >::type cap = get(edge_capacity, g);
std::list<tEdge> edges_copy;
graph_traits<Graph>::edge_iterator ei, e_end;
- tie(ei, e_end) = edges(g);
+ boost::tie(ei, e_end) = edges(g);
std::copy(ei, e_end, std::back_insert_iterator< std::list<tEdge> >(edges_copy));
while( ! edges_copy.empty()){
tEdge old_edge=edges_copy.front();
@@ -116,7 +116,7 @@
tVertex target_vertex = source(old_edge, g);
bool inserted;
tEdge new_edge;
- tie(new_edge,inserted) = add_edge(source_vertex, target_vertex, g);
+ boost::tie(new_edge,inserted) = add_edge(source_vertex, target_vertex, g);
assert(inserted);
rev[old_edge] = new_edge;
rev[new_edge] = old_edge ;
@@ -125,11 +125,11 @@
typedef property_traits< property_map<Graph, edge_capacity_t>::const_type>::value_type tEdgeVal;
- tEdgeVal kolmo = kolmogorov_max_flow(g,source_vertex,sink_vertex);
+ tEdgeVal bk = boykov_kolmogorov_max_flow(g,source_vertex,sink_vertex);
tEdgeVal push_relabel = push_relabel_max_flow(g,source_vertex,sink_vertex);
tEdgeVal edmonds_karp = edmonds_karp_max_flow(g,source_vertex,sink_vertex);
- BOOST_REQUIRE( kolmo == push_relabel );
+ BOOST_REQUIRE( bk == push_relabel );
BOOST_REQUIRE( push_relabel == edmonds_karp );
return 0;
Modified: branches/release/libs/graph/test/metric_tsp_approx.cpp
==============================================================================
--- branches/release/libs/graph/test/metric_tsp_approx.cpp (original)
+++ branches/release/libs/graph/test/metric_tsp_approx.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -65,7 +65,7 @@
pow(static_cast<double>(points[vmap[*dest]].y -
points[vmap[*src]].y), 2.0)));
- tie(e, inserted) = add_edge(*src, *dest, g);
+ boost::tie(e, inserted) = add_edge(*src, *dest, g);
wmap[e] = weight;
}
@@ -152,7 +152,7 @@
//create vertex index map
VItr vi, ve;
int idx(0);
- for (tie(vi, ve) = vertices(g); vi != ve; ++vi)
+ for (boost::tie(vi, ve) = vertices(g); vi != ve; ++vi)
{
Vertex v(*vi);
v_pmap[v] = idx;
Modified: branches/release/libs/graph/test/property_iter.cpp
==============================================================================
--- branches/release/libs/graph/test/property_iter.cpp (original)
+++ branches/release/libs/graph/test/property_iter.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -123,7 +123,7 @@
TLinkIterator itEdgeBegin, itEdgeEnd;
- tie(itEdgeBegin, itEdgeEnd) = get_property_iter_range(g, edge_id);
+ boost::tie(itEdgeBegin, itEdgeEnd) = get_property_iter_range(g, edge_id);
cout << "Edge iteration:" << endl;
for (; itEdgeBegin != itEdgeEnd; ++itEdgeBegin)
@@ -134,7 +134,7 @@
TNodeIterator itVertexBegin, itVertexEnd;
- tie(itVertexBegin, itVertexEnd) = get_property_iter_range(g, vertex_id);
+ boost::tie(itVertexBegin, itVertexEnd) = get_property_iter_range(g, vertex_id);
cout << "Vertex iteration:" << endl;
for (; itVertexBegin != itVertexEnd; ++itVertexBegin)
Modified: branches/release/libs/graph/test/random_matching_test.cpp
==============================================================================
--- branches/release/libs/graph/test/random_matching_test.cpp (original)
+++ branches/release/libs/graph/test/random_matching_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -60,7 +60,7 @@
if (u != v)
{
if (!edge(u,v,g).second)
- tie(tuples::ignore, success) = add_edge(u, v, g);
+ boost::tie(tuples::ignore, success) = add_edge(u, v, g);
else
success = false;
@@ -79,13 +79,13 @@
std::cout << "Graph has edges: ";
typedef graph_traits<undirected_graph>::edge_iterator edge_iterator_t;
edge_iterator_t ei,ei_end;
- for(tie(ei,ei_end) = edges(g); ei != ei_end; ++ei)
+ for(boost::tie(ei,ei_end) = edges(g); ei != ei_end; ++ei)
std:: cout << *ei << ", ";
std::cout << std::endl;
std::cout << "Matching is: ";
vertex_iterator_t vi, vi_end;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
if (mate[*vi] != graph_traits<undirected_graph>::null_vertex() &&
*vi < mate[*vi])
std::cout << "{" << *vi << "," << mate[*vi] << "}, ";
@@ -94,7 +94,7 @@
//Now remove an edge from the random_mate matching.
vertex_iterator_t vi, vi_end;
- for(tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
+ for(boost::tie(vi,vi_end) = vertices(g); vi != vi_end; ++vi)
if (mate[*vi] != graph_traits<undirected_graph>::null_vertex())
break;
Modified: branches/release/libs/graph/test/subgraph.cpp
==============================================================================
--- branches/release/libs/graph/test/subgraph.cpp (original)
+++ branches/release/libs/graph/test/subgraph.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -105,7 +105,7 @@
subgraph_t sub = g.create_subgraph(vertices(g).first, vertices(g).second);
graph_t::edge_iterator ei, ee;
- for (tie(ei, ee) = edges(sub); ei != ee; ++ei) {
+ for (boost::tie(ei, ee) = edges(sub); ei != ee; ++ei) {
// This used to segfault.
get(edge_weight, sub, *ei);
}
Modified: branches/release/libs/graph/test/subgraph_bundled.cpp
==============================================================================
--- branches/release/libs/graph/test/subgraph_bundled.cpp (original)
+++ branches/release/libs/graph/test/subgraph_bundled.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -125,7 +125,7 @@
Subgraph sub = g.create_subgraph(vertices(g).first, vertices(g).second);
graph_traits<Graph>::edge_iterator ei, ee;
- for (tie(ei, ee) = edges(sub); ei != ee; ++ei) {
+ for (boost::tie(ei, ee) = edges(sub); ei != ee; ++ei) {
// This used to segfault.
get(edge_weight, sub, *ei);
}
Modified: branches/release/libs/graph/test/transitive_closure_test.cpp
==============================================================================
--- branches/release/libs/graph/test/transitive_closure_test.cpp (original)
+++ branches/release/libs/graph/test/transitive_closure_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -42,7 +42,7 @@
{
typename graph_traits<Graph>::degree_size_type d = 0;
typename graph_traits<Graph>::out_edge_iterator i, i_end;
- for (tie(i, i_end) = out_edges(u, g); i != i_end; ++i)
+ for (boost::tie(i, i_end) = out_edges(u, g); i != i_end; ++i)
if (target(*i, g) == v)
++d;
return d;
@@ -57,13 +57,13 @@
bool check_transitive_closure(Graph& g, GraphTC& tc)
{
typename graph_traits<Graph>::vertex_iterator i, i_end;
- for (tie(i, i_end) = vertices(g); i != i_end; ++i) {
+ for (boost::tie(i, i_end) = vertices(g); i != i_end; ++i) {
typename graph_traits<Graph>::vertex_iterator j, j_end;
- for (tie(j, j_end) = vertices(g); j != j_end; ++j) {
+ for (boost::tie(j, j_end) = vertices(g); j != j_end; ++j) {
bool g_has_edge;
typename graph_traits<Graph>::edge_descriptor e_g;
typename graph_traits<Graph>::degree_size_type num_tc;
- tie (e_g, g_has_edge) = edge(*i, *j, g);
+ boost::tie (e_g, g_has_edge) = edge(*i, *j, g);
num_tc = num_incident(*i, *j, tc);
if (*i == *j) {
if (g_has_edge) {
@@ -72,7 +72,7 @@
} else {
bool can_reach = false;
typename graph_traits<Graph>::adjacency_iterator k, k_end;
- for (tie(k, k_end) = adjacent_vertices(*i, g); k != k_end; ++k) {
+ for (boost::tie(k, k_end) = adjacent_vertices(*i, g); k != k_end; ++k) {
std::vector<default_color_type> color_map_vec(num_vertices(g));
if (is_reachable(*k, *i, g, &color_map_vec[0])) {
can_reach = true;
Modified: branches/release/libs/graph_parallel/test/adjlist_build_test.cpp
==============================================================================
--- branches/release/libs/graph_parallel/test/adjlist_build_test.cpp (original)
+++ branches/release/libs/graph_parallel/test/adjlist_build_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -127,8 +127,8 @@
// Check the in-degree and out-degree of each vertex
graph_traits<Graph>::vertex_iterator vfirst1, vlast1, vfirst2, vlast2;
- tie(vfirst1, vlast1) = vertices(g1);
- tie(vfirst2, vlast2) = vertices(g2);
+ boost::tie(vfirst1, vlast1) = vertices(g1);
+ boost::tie(vfirst2, vlast2) = vertices(g2);
for(; vfirst1 != vlast1 && vfirst2 != vlast2; ++vfirst1, ++vfirst2) {
if (out_degree(*vfirst1, g1) != out_degree(*vfirst2, g2)) {
std::cerr << g1.processor() << ": out-degree mismatch ("
@@ -216,8 +216,8 @@
}
// Check the in-degree and out-degree of each vertex
- tie(vfirst1, vlast1) = vertices(g1);
- tie(vfirst2, vlast2) = vertices(g3);
+ boost::tie(vfirst1, vlast1) = vertices(g1);
+ boost::tie(vfirst2, vlast2) = vertices(g3);
for(; vfirst1 != vlast1 && vfirst2 != vlast2; ++vfirst1, ++vfirst2) {
if (out_degree(*vfirst1, g1) != out_degree(*vfirst2, g3)) {
std::cerr << g1.processor() << ": out-degree mismatch ("
Modified: branches/release/libs/graph_parallel/test/adjlist_redist_test.cpp
==============================================================================
--- branches/release/libs/graph_parallel/test/adjlist_redist_test.cpp (original)
+++ branches/release/libs/graph_parallel/test/adjlist_redist_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -149,7 +149,7 @@
// Randomly assign a new distribution
typename graph_traits<Graph>::vertex_iterator vi, vi_end;
- for (tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
+ for (boost::tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi)
put(to_processor_map, *vi, gen() % num_processes(pg));
if (process_id(pg) == 0)
Modified: branches/release/libs/graph_parallel/test/distributed_adjacency_list_test.cpp
==============================================================================
--- branches/release/libs/graph_parallel/test/distributed_adjacency_list_test.cpp (original)
+++ branches/release/libs/graph_parallel/test/distributed_adjacency_list_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -67,7 +67,7 @@
graph_traits<Graph1>::vertex_iterator v, v_end;
int counter = 0;
- for (tie(v, v_end) = vertices(g1); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = vertices(g1); v != v_end; ++v) {
std::cout << "Processor #" << process_id(pg) << ": vertex " << ++counter
<< std::endl;
@@ -142,7 +142,7 @@
graph_traits<Graph2>::vertex_iterator v, v_end;
int counter = 0;
- for (tie(v, v_end) = vertices(g2); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = vertices(g2); v != v_end; ++v) {
std::cout << "Processor #" << process_id(pg) << ": vertex " << ++counter
<< std::endl;
@@ -188,7 +188,7 @@
graph_traits<Graph3>::vertex_iterator v, v_end;
int counter = 0;
- for (tie(v, v_end) = vertices(g3); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = vertices(g3); v != v_end; ++v) {
std::cout << "Processor #" << process_id(pg) << ": vertex " << ++counter
<< std::endl;
@@ -228,7 +228,7 @@
}
// Add some remote edges
- for (tie(v, v_end) = vertices(g3); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = vertices(g3); v != v_end; ++v) {
graph_traits<Graph1>::vertex_descriptor other = *v;
other.owner = (other.owner + 1) % num_processes(pg);
other.local = 0;
Modified: branches/release/libs/graph_parallel/test/distributed_betweenness_centrality_test.cpp
==============================================================================
--- branches/release/libs/graph_parallel/test/distributed_betweenness_centrality_test.cpp (original)
+++ branches/release/libs/graph_parallel/test/distributed_betweenness_centrality_test.cpp 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -248,7 +248,7 @@
typedef graph_traits<Graph>::vertex_iterator vertex_iterator;
vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(g); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = vertices(g); v != v_end; ++v) {
if (get(centrality, *v) != seqCentralityS[(n/p) * get(owner, *v) + get(local, *v)]) {
std::cerr << " " << id << ": Error - centrality of " << get(local, *v) << "@" << get(owner, *v)
<< " does not match the sequential result (" << get(centrality, *v) << " vs. "
@@ -269,7 +269,7 @@
typedef graph_traits<seqGraph>::vertex_iterator vertex_iterator;
vertex_iterator v, v_end;
- for (tie(v, v_end) = vertices(sg); v != v_end; ++v) {
+ for (boost::tie(v, v_end) = vertices(sg); v != v_end; ++v) {
if (get(seqCentrality, *v) != get(nonDistributedCentrality, *v)) {
std::cerr << " " << id << ": Error - non-distributed centrality of " << *v
<< " does not match the sequential result (" << get(nonDistributedCentrality, *v)
Modified: branches/release/status/explicit-failures-markup.xml
==============================================================================
--- branches/release/status/explicit-failures-markup.xml (original)
+++ branches/release/status/explicit-failures-markup.xml 2010-07-03 14:37:39 EDT (Sat, 03 Jul 2010)
@@ -1874,7 +1874,7 @@
<note author="Jim Douglas" date="18 Feb 06" refid="27"/>
</mark-expected-failures>
<mark-expected-failures>
- <test name="kolmogorov_max_flow_test"/>
+ <test name="boykov_kolmogorov_max_flow_test"/>
<test name="max_flow_test"/>
<toolset name="acc*"/>
<note author="Markus Schoepflin" refid="45"/>
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk