Compare commits

...

148 Commits

Author SHA1 Message Date
jzmaddock 8f5e1f1bf9 Merge pull request #164 from boostorg/develop
merge develop to master for release
2019-04-28 14:54:05 +01:00
jzmaddock a2f6aa7317 Merge pull request #168 from tinko92/develop
Fix for a number of broken links.
2019-04-24 18:48:39 +01:00
Tinko Bartels d483524c83 Fix for a number of broken links. 2019-04-24 08:49:53 +02:00
jzmaddock 146f6f7b3d Merge pull request #165 from ahhz/dijkstra_uses_std_plus
Dijkstra uses std::plus
2019-04-17 17:18:30 +01:00
Alex Hagen-Zanker 3a388e5843 Dijkstra uses std::plus
This commit changes the relax function that dijkstra shortest paths uses to only update the distance and predecessor map of the target vertex of each edge. This has the benefit that from now on we can use std::plus as the default combine function.
2019-03-08 17:56:20 +00:00
John Maddock 887e63d34e Merge branch 'develop' of https://github.com/aleden/graph into develop 2019-01-26 09:31:03 +00:00
jzmaddock 15ffe0e5cf Remove comments from examples about them being broken - as they're now fixed. 2019-01-26 09:26:11 +00:00
jzmaddock e694fc7e9e Merge branch 'bucket_sorter' of https://github.com/deinst/graph into develop
Fixed Conflicts:
	example/Jamfile.v2
2019-01-26 09:05:44 +00:00
jzmaddock 338f917cfb Merge branch 'csr-example' of https://github.com/deinst/graph into develop
Fixed Conflicts:
	example/Jamfile.v2
2019-01-26 09:03:55 +00:00
jzmaddock 487347fc08 Add astar_maze.cpp back into the tests. 2019-01-26 08:39:43 +00:00
jzmaddock 36a395a14c Merge branch 'develop' of https://github.com/boostorg/graph into develop 2019-01-26 08:38:19 +00:00
jzmaddock a7a78f0df8 cycle_ratio_example.cpp: adjust tolerance on assert: otherwise we can get random failures. 2019-01-26 08:37:59 +00:00
jzmaddock 32bc0e1dff Modify astar_maze.cpp to not return a dangling reference from random_maze().
See discussion in https://github.com/boostorg/graph/issues/148.
2019-01-26 08:34:54 +00:00
jzmaddock c314b5518b Merge pull request #144 from boostorg/testing-fixup
Fix up tests and examples so that more are tested
2019-01-25 19:01:01 +00:00
jzmaddock 0310bbee74 Add maximum weighting matching to the table of contents. 2019-01-23 19:34:20 +00:00
jzmaddock ac0a340d0b maximum_weighted_matching: change initialization order to suppress GCC warnings. 2019-01-23 19:30:42 +00:00
John Maddock 4d45af8b80 Merge branch 'develop' of https://github.com/yi-ji/graph into develop 2019-01-23 17:40:05 +00:00
David Einstein 4e270bd62b Fix bucket_sorter example. Bug #151
Changed ID toidentity_property_map.
Added concept check to bucket_sorter.hpp.
Fixed minor grammar nits.
2019-01-22 14:25:42 -05:00
jzmaddock 1dfbbe2a16 Don't test adj_list_invalidation.cpp - it deliberately creates graphs in an invalid state which runtime-crash. 2019-01-22 19:18:08 +00:00
John Maddock 32087dd0b6 Merge branch 'develop' into testing-fixup 2019-01-22 19:03:28 +00:00
jzmaddock ee71134160 Merge pull request #154 from CromwellEnage/doc_stl_links
Documentation cleanup
2019-01-22 18:05:43 +00:00
jzmaddock a0d87b4467 Merge pull request #138 from CromwellEnage/min_degree_empty
Fix minimum_degree_ordering
2019-01-22 17:59:52 +00:00
CromwellEnage bf217327df Documentation cleanup
Replace links to Hewlett Packard's retired Silicon Graphics STL website.
2019-01-21 16:09:17 -05:00
Cromwell D. Enage aa7f76d79d Merge with boostorg/graph 2019-01-21 16:07:19 -05:00
David Einstein 002c56a108 Make csr-example compile
github bug #150 for boost/graph
Changed write_graphviz to write_graphviz_dp to handle dynamic properties
2019-01-20 20:52:52 -05:00
jzmaddock 12be045f8d Merge branch 'develop' into testing-fixup 2019-01-16 18:15:35 +00:00
jzmaddock 1324532d83 Merge pull request #152 from CromwellEnage/parameter_usage
Fix regressions & update .yml scripts
2019-01-16 18:13:54 +00:00
yi-ji 04f8155cbb [CI SKIP] update bibliography for max weighted matching labeling procedure 2018-12-23 01:32:23 +09:00
CromwellEnage d73f1d2a76 Fix regressions & update .yml scripts
<boost/graph/named_function_params.hpp>
* Original fix worked only when one boost::parameter::keyword was bound and passed in.  This fix now works when binding and passing in one or more boost::parameter::keyword objects.

<boost/graph/isomorphism.hpp>
* Make isomorphism_impl a metafunction that returns the function object result_type for the fix to work.

"test/isomorphism.cpp"
* Test the fix with two boost::parameter::keyword objects.

".travis.yml"
"appveyor.yml"
* Update as per Peter Dimov's message announcing the merging of CMake into boostorg/develop.
2018-12-19 23:32:51 -05:00
jzmaddock 32a83a7479 Add notes to examples that are outdated and either crash or do not compile. 2018-12-18 18:35:20 +00:00
jzmaddock e2851a6b8c Disable one more example which segfaults under VC12, correct file handling in graphviz.cpp. 2018-12-18 13:22:49 +00:00
jzmaddock cec1b39f43 Fix up paths to .dot files so they can be used in the tests. 2018-12-17 18:57:50 +00:00
jzmaddock 0048ae1b7e Remove reference to deleted file. 2018-12-16 20:12:07 +00:00
jzmaddock 972f3c49d0 Fix examples that don't build and/or run, rationalize Jamfile.v2 to place them all in alphabetical order, run those that can be run, and document those that are terminally broken. 2018-12-16 18:53:35 +00:00
jzmaddock 40f15af259 Add more untested files to Jamfile.v2. 2018-12-16 10:33:57 +00:00
jzmaddock 0157743b8e Add filter_graph_vp_test.cpp to Jamfile.v2. 2018-12-16 10:19:48 +00:00
jzmaddock 31375672d7 Include csr_graph_test.cpp in Jamfile.v2 2018-12-16 10:17:23 +00:00
jzmaddock 977560b917 Remove adj_list_test.cpp as it could never be portably run, replace with updated version of graph_type.hpp which tests all the same permutations that adj_list_test.cpp was intended to handle. Update Jamfile.v2 to run all the permutations. 2018-12-16 10:10:04 +00:00
CromwellEnage 1b177b75a8 Consolidate variable declaration & definition 2018-12-16 01:19:35 -05:00
jzmaddock 44663dd46f Suppress msvc warnings, add adj_list_invalidation.cpp to tests and fix buggy #include. 2018-12-15 18:34:41 +00:00
CromwellEnage 48af7e0237 Merge branch 'min_degree_empty' of https://github.com/CromwellEnage/graph into min_degree_empty 2018-12-15 11:34:41 -05:00
Cromwell D. Enage 833589ebdf Merge with boostorg/graph 2018-12-15 11:30:23 -05:00
jzmaddock 174ed2ed11 Merge pull request #137 from CromwellEnage/parameter_usage
Fix compiler errors
2018-12-15 15:50:00 +00:00
CromwellEnage f234920446 Merge branch 'parameter_usage' into min_degree_empty 2018-12-14 12:20:59 -05:00
CromwellEnage 8a2381f9c2 Fix memory access violations
Algorithms affected: astar_search and random_spanning_tree
2018-12-14 12:20:12 -05:00
CromwellEnage d81e8612d3 Fix memory access violations
Algorithms affected: boyer_myrvold_planar_test, maximum_adjacency_search, stoer_wagner_min_cut
2018-12-13 15:25:05 -05:00
CromwellEnage 0201705aa3 Fix memory access violations in boyer_myrvold_planar_test 2018-12-12 17:59:01 -05:00
CromwellEnage cb8e9738b6 Merge branch 'parameter_usage' into min_degree_empty 2018-12-11 22:47:55 -05:00
CromwellEnage 9aff046cb5 Split jobs
Reduce chances of timeout errors.
2018-12-11 22:47:30 -05:00
Anthony Eden f2bd3d1be7 couldn't infer unused template argument 2018-12-11 15:10:09 -05:00
CromwellEnage ec34a721b3 Merge branch 'parameter_usage' into min_degree_empty 2018-12-11 14:04:59 -05:00
CromwellEnage 91291eab78 Revert unnecessary changes & update test suite
<boost/graph/named_function_params.hpp>
* Revert unnecessary changes.

"test/Jamfile.v2"
* Add alias statements to deal with xcode compile failures stemming from Boost.Filesystem.
* Mark regressions as expected.

"travis.yml"
* Remove xcode6.4 from test suite since Travis Cl deprecated it.
* Add xcode9.4.1 to test suite.
2018-12-11 13:58:52 -05:00
CromwellEnage df1d52790c Fix minimum_degree_ordering
Handle degenerate case where input graph contains no edges.
2018-11-23 01:18:28 -05:00
CromwellEnage 484ccb08c9 Revert unnecessary changes 2018-11-23 01:07:43 -05:00
CromwellEnage b3cefefb76 Revert unnecessary changes 2018-11-23 01:00:03 -05:00
CromwellEnage a62de4ae41 Revert unnecessary changes
<boost/pending/bucket_sorter.hpp>
"example/Jamfile.v2"
* Revert

"test/Jamfile.v2"
* Remove <preserve-target-tests>off
2018-11-23 00:58:30 -05:00
CromwellEnage 52978e2ac1 Fix test/Jamfile.v2
Mark msvc-14.0 failures as expected.
2018-11-21 02:17:57 -05:00
CromwellEnage 392b280fc7 Revert test suite
...but also remove "sudo: false" from .travis.yml because Travis Cl just deprecated it.  (See <https://blog.travis-ci.com/2018-10-04-combining-linux-infrastructures>.)
2018-11-20 16:38:51 -05:00
CromwellEnage 038fe2890a Fix test suite
Mark ICE failures as expected for correct test configurations.
2018-11-16 18:57:15 -05:00
CromwellEnage c1e69486d6 Update test suite
Mark ICE failures as expected.
2018-11-16 17:46:58 -05:00
CromwellEnage 6a46e45fee Fix compiler errors
<boost/pending/bucket_sorter.hpp>
* Work around OSX implementation of iterator copy constructor defined in private scope.

<boost/graph/named_function_params.hpp>
* Use typename add_const<remove_reference<typename T::value_type>::type>::type vice const typename T::value_type within boost::parameter::aux::tagged_argument type definition.
* Use boost::mpl::has_key vice boost::detail::parameter_exists.
* Add missing boost::graph::[function_name] overload defintion that takes in ArgumentPack as the last parameter.

"example/Jamfile.v2"
* Define BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=0 where applicable to suppress generation of exponential boost::parameter::parameters::operator() overloads and prevent ICE failures.

"test/Jamfile.v2"
* Define BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=0 where applicable to suppress generation of exponential boost::parameter::parameters::operator() overloads and prevent ICE failures.
2018-11-16 14:23:38 -05:00
yi-ji d05622a677 [CI SKIP] documentation for maximum weighted matching 2018-11-16 01:09:22 +09:00
jzmaddock f7dfafb5af Merge pull request #128 from ZaMaZaN4iK/develop
Fix typo in the documentation
2018-11-05 18:24:56 +00:00
Alexander Zaitsev 741bff6b7c Fix typo in the documentation 2018-11-05 00:52:48 +03:00
jzmaddock 023bca04f6 Merge pull request #121 from kenkangxgwe/develop
Fix the copy constructor of the subgraph.
2018-11-01 18:07:44 +00:00
jzmaddock c731e2a29c Split gcc-6 tests into 2 blocks to prevent timeouts. 2018-11-01 17:59:34 +00:00
yi-ji 4f937d1617 Name VERTEX_STATE to anonymous enum; change brute-force verification to pre-computed answers comparison 2018-10-24 22:35:26 +09:00
康小广 5d17aeb1ae Fix the copy constructor of the subgraph.
In the previous version, the children and their properties are not copied correctly.
Please see the test case.
2018-10-18 03:06:14 -04:00
jzmaddock fa7fe4d622 Merge pull request #115 from pavelkryukov/gcc8
Fix G++8 warnings: catch by reference and unused variables
2018-10-17 18:38:49 +01:00
jzmaddock b27d731c1e Merge pull request #83 from e-kwsm/exterior
fix comments about boost::detail::vector_matrix
2018-10-17 18:38:11 +01:00
jzmaddock 8f11f4b51f Merge branch 'develop' of https://github.com/boostorg/graph into develop 2018-10-15 13:36:57 +01:00
jzmaddock 8934754552 Reduce clang testing load as tests time out. 2018-10-15 13:36:43 +01:00
jzmaddock f30f9ca2b3 Merge pull request #101 from DanielaE/fix/no-iterator-inheritance
Inheriting std::iterator is deprecated in C++17
2018-10-15 08:34:53 +01:00
jzmaddock 6bfc5b5b79 Change fibonacci_heap.cpp to use <random> where possible - not all versions of std::shuffle work with Boost's rng's. 2018-10-15 08:33:54 +01:00
jzmaddock 8c7ea35cc8 Testing 4 std versions in one go takes too long - reduce to 2 or 3 at a time. 2018-10-15 08:23:22 +01:00
jzmaddock 9cc83d86d8 Merge branch 'develop' of https://github.com/boostorg/graph into develop
Resolved Conflicts:
	example/astar_maze.cpp
	example/gerdemann.cpp
2018-10-14 13:43:54 +01:00
jzmaddock d51ba76e20 Include examples in tests -
Fix C++17 build errors in examples.
Disable some examples that use Unix-ism's from building on other platforms.
2018-10-14 13:40:56 +01:00
jzmaddock 38b65d2afd Merge pull request #99 from pavelkryukov/patch-2
Remove deprecated std::unary_function and std::binary_function from examples
2018-10-14 08:47:59 +01:00
jzmaddock 948eb2455a Merge branch 'fix/replace-deprecated-allocator-members' of https://github.com/DanielaE/boost.graph into develop
Resolved Conflicts:
	include/boost/graph/r_c_shortest_paths.hpp
2018-10-14 08:45:04 +01:00
Peter Dimov bdccbcdde2 Merge pull request #120 from boostorg/pr/move-graph_test
Move graph_test.hpp to test/ to avoid a dependency on Boost.Test
2018-10-14 08:02:28 +03:00
yi-ji 650291caf6 remove decltype of anonymous enum; decrease test time 2018-10-14 10:09:46 +09:00
jzmaddock affdd15565 Merge pull request #94 from jedrezej/subgraph_docs_fix
Fix subgraph usage example in the documentation.
2018-10-13 08:38:58 +01:00
jzmaddock 462d4bbc9b Merge pull request #108 from mywtfmp3/fix-type-error-in-example
fix type error in grid graph example
2018-10-13 08:38:03 +01:00
jiyi 10242dd583 decrease test batch size to avoid travis-ci timeout 2018-10-13 16:34:17 +09:00
jiyi 71f544d41d O(n^3) maximum weighted matching 2018-10-13 13:10:23 +09:00
jiyi 79b32f5d6e some examples for maximum weighted matching 2018-10-13 13:10:23 +09:00
jiyi 5fd3b3d078 tests for maxmimum weighted matching using brute-force verifier 2018-10-13 13:10:23 +09:00
jiyi 400eed8f02 Maximum weighted matching of O(n^4) time complexity, with brute-force verifier 2018-10-13 13:10:23 +09:00
Pavel I. Kryukov 3d737c34af Fix G++8 warnings: catch by reference and unused variables 2018-10-12 23:11:07 +03:00
Peter Dimov 5809e70e60 Move graph_test.hpp to test/ to avoid a dependency on Boost.Test 2018-10-12 22:15:17 +03:00
jzmaddock 48aff2213e Merge pull request #107 from mywtfmp3/fix-typo
fix typos
2018-10-12 19:15:19 +01:00
jzmaddock 084e55f5d5 Merge pull request #109 from katrinleinweber/resolve-DOIs-securely
Hyperlink DOIs against preferred resolver
2018-10-12 18:41:29 +01:00
jzmaddock a01537012d Reinstate assert in subgraph.hpp.
Refer to discussion in https://github.com/boostorg/graph/pull/101
Original PR was https://github.com/boostorg/graph/pull/80.
2018-10-12 18:32:08 +01:00
jzmaddock b7c9394c22 Merge branch 'develop' of https://github.com/anadon/graph into develop
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2018-10-12 17:58:56 +01:00
Peter Dimov 1e2a8ccf03 Merge pull request #119 from boostorg/feature/mpi-include
Include graph_parallel headers through a BOOST_GRAPH_MPI_INCLUDE macro
2018-10-09 06:20:19 +03:00
Peter Dimov 0d56559460 Avoid including an mpi header in property_serialize.hpp 2018-10-08 01:34:25 +03:00
Jeremiah Willcock 6f9a4a9468 Changed property lookup code to simplify graph implementations (remove most special-casing of bundled properties), made CSR graph work with non-bundled properties (probably), split named parameter algorithms to not use property map code
[SVN r77549]
2018-10-08 01:34:25 +03:00
Jeremiah Willcock 0fcc4dd80e Fixed warnings
[SVN r57559]
2018-10-08 01:34:25 +03:00
Jeremiah Willcock 0a0b58c6bb Merged headers and source files (but not examples, tests, or docs) from Parallel BGL
[SVN r52300]
2018-10-08 01:34:25 +03:00
Douglas Gregor 785306781f Adjacency list serialization fixes, from David Keller
[SVN r36838]
2018-10-08 01:34:25 +03:00
Douglas Gregor dd85022178 boost/pending/property_serialize.hpp: - Moved serialization code here
boost/pending/property.hpp:
  - From here

boost/graph/adj_list_serialize.hpp:
  - Include the new property_serialization header

[SVN r32275]
2018-10-08 01:34:25 +03:00
Peter Dimov 5f1edca51c Include graph_parallel headers through a BOOST_GRAPH_MPI_INCLUDE macro to hide them from boostdep 2018-10-06 19:03:11 +03:00
Peter Dimov 6039d918eb Re-add g++-4.6 to Travis 2018-09-30 02:57:44 +03:00
Josh Marshall 183a67fdc4 Merge branch 'boostorg-develop' into develop 2018-09-29 19:45:29 -04:00
Josh Marshall d31aa184af Rebasing to new develop 2018-09-29 19:44:58 -04:00
Peter Dimov 878d6f6b22 Fix xcode configs (8.2, 8.1, 8.0 don't exist, were interpreted as default (9.4) 2018-09-29 18:26:26 +03:00
Peter Dimov a65f604d54 Deprecate relaxed_heap.hpp, do not test (fails on g++-8) 2018-09-29 17:20:25 +03:00
Peter Dimov 23b26724c2 Merge pull request #118 from apolukhin/antoshkka/visibility-issues
fix visibility of exceptions within Boost.Graph
2018-09-29 17:14:43 +03:00
jrmarsha 2e54007e75 Merge pull request #6 from apolukhin/antoshkka/visibility-issues
Antoshkka/visibility issues
2018-09-29 10:05:34 -04:00
Peter Dimov 80806fdfb7 Enable Travis testing of feature branches 2018-09-29 16:50:59 +03:00
Josh Marshall 5dd748307c Realized the while loop in reindex_edge_list(), and so changed this. 2018-09-28 09:47:26 -04:00
Josh Marshall 5d6c7f6695 Reverting a block comment removal at jzmaddock's request. 2018-09-25 09:59:16 -04:00
Antony Polukhin ab9299f9c6 fix visibility of exceptions within Boost.Graph 2018-09-25 11:05:31 +03:00
Josh Marshall 5d0f5a6b03 Clang had some helpful warnings about typename usage which were applied. 2018-09-22 22:03:15 -04:00
Josh Marshall 9cfddda9cf I don't recall messing with these to make them auto, but they were auto. I've still been unable to reproduce the TravisCI errors, but this should still bring this branch closer to merging. 2018-09-22 21:25:21 -04:00
Josh Marshall 21bdac5709 Silencing some build warnings about a trivial faux pas 2018-09-14 14:45:11 -04:00
Josh Marshall 6808062c07 First possible complete fixes for r_c_shortest_paths. 2018-09-11 17:00:43 -04:00
Josh Marshall a10f17eb99 Made typename fixes more broad and complete. 2018-09-11 17:00:05 -04:00
Josh Marshall 8551039ae3 Learned more of how typename works, changed to using that. 2018-09-08 03:02:13 -04:00
Josh Marshall 3cc890e854 Changing c++11 auto type usage to delctype() boilerplate in order to allow compatability with C++03. This has only been tested locally, and this is being uploaded to test aginst the automated test suite. 2018-09-07 00:03:57 -04:00
Josh Marshall 037af4db54 Fixing incorrect use of typedef's via macro. 2018-09-06 10:06:07 -04:00
Josh Marshall 82fa79e783 Inappropriate overuse of 'typename' removed. 2018-09-05 14:35:26 -04:00
Josh Marshall 283675d792 Use of nullptr when it is too soon to include that feature. 2018-09-05 14:33:43 -04:00
Pavel I. Kryukov 2f430a19e1 Remove deprecated code from examples
std::unary_function and std::binary_function were
removed in C++17 and are no longer available
while compiling with MS Visual Studio 2017
2018-09-02 14:05:50 +03:00
Josh Marshall 98164bf937 Removed dead code/comment block from iteration macros. 2018-09-01 17:59:02 -04:00
Josh Marshall 19c23ca255 Removing references and testing to relaxed heap; relaxed heap is now marked as depreciated. This is due to some testing failures and a lack of use of relaxed_heap. 2018-09-01 14:51:42 -04:00
jzmaddock 4aaf5307db CI: disable toolsets that fail for reasons unconnected to us.
[CI SKIP]
2018-09-01 13:05:23 +01:00
jzmaddock f36a7bab16 Touch travis.yml. 2018-09-01 09:39:12 +01:00
jzmaddock 458594d43a Add better Appveyor and Travis support. 2018-09-01 09:03:11 +01:00
Josh Marshall 84122c8049 Fixed an incorrect file name in tests and added a git ignore for generated testing files. 2018-08-31 23:53:45 -04:00
jrmarsha c0450496a8 Merge pull request #5 from anadon/fix-add-vertex-subgraph
Getting together PR's for first batch of merges.
2018-08-31 22:07:36 -04:00
jrmarsha 19dd94ee70 Merge pull request #4 from boostorg/develop
Updating development branch that I'm merging to.
2018-08-31 22:03:34 -04:00
jrmarsha e2f742d584 Merge pull request #2 from asomers/develop
Creating first batch merge for well formed bug fixes.
2018-08-31 21:58:43 -04:00
jrmarsha 03b6e8acd6 Merge pull request #3 from raahlb/fix_remove_vertex
Creating first batch of merges for well formed bug fixes.
2018-08-31 21:58:28 -04:00
jrmarsha a499be87cb Merge pull request #1 from pmateusz/develop
Creating first batch merge to bring in well formed bugfixing pull requests.
2018-08-31 21:58:08 -04:00
Rasmus Ahlberg e8d7c9fe9b Added test case for removing edges bug from previous commit. 2018-08-23 16:22:06 +02:00
Rasmus Ahlberg e2db737d1b Don't copy value if not needed, as source's m_property will be set to null when copied.
See https://svn.boost.org/trac10/ticket/13544.
2018-07-30 12:15:25 +02:00
Katrin Leinweber 94b4c662f8 Hyperlink DOIs against preferred resolver 2018-06-24 08:17:22 +02:00
John Zhang bcc8ed65b5 fix type error in grid graph example 2018-05-15 11:55:21 +08:00
John Zhang 30d0faa665 fix typos 2018-05-12 13:27:24 +08:00
Daniela Engert 32d5b35e2e Most members of std::allocate are deprecated in C++17
Replace them by their cousins from std::allocator_traits. Without that, heaps of deprecation warnings will fall onto humble users when compiling with MSVC 15 in C++17 mode.

Signed-off-by: Daniela Engert <dani@ngrt.de>
2018-04-14 18:14:41 +02:00
Daniela Engert 93cfa18f3d Inheriting std::iterator is deprecated in C++17
Boost's iterator.hpp is deprecated, too. Therefore get rid of all of that and replace inheritance by lifting std::iterator's members into the derived class.

Signed-off-by: Daniela Engert <dani@ngrt.de>
2018-04-14 18:11:05 +02:00
Alan Somers 726e9530d6 Replace /bin/bash with /bin/sh
/bin/bash is a Linuxism.  /bin/sh is portable, and this script isn't
using any bash-specific features.
2017-07-27 14:34:07 -06:00
Jedrzej Solecki 2999dc735b Fix subgraph usage example in the documentation.
Make the docs match the example.
2017-07-13 09:33:52 -07:00
Mateusz Polnik 67a32c26b2 Fix read/writes outside allocated memory. Remove is_valid assertions - explain a scenario where they do not work correctly. 2017-07-04 23:26:54 +01:00
Mateusz Polnik faef224193 Reproduce memory issue with resource constrained shortest paths. Valgrind confirms reads/writes outside allocated memory. 2017-07-04 23:26:54 +01:00
E Kawashima 9757b9e44c fix comments about boost::detail::vector_matrix 2016-11-07 21:36:55 +09:00
Stefan Hammer f07d91397c [subgraph.hpp] add_vertex(u_global, g) on a subgraph does not recursively add to parent subgraphs 2016-11-02 11:02:39 +01:00
255 changed files with 54800 additions and 1939 deletions
+8
View File
@@ -0,0 +1,8 @@
cube-fr.dot
cube.dot
disconnected-fr.dot
graphml_test_out.xml
kevin-bacon2.dat
random.dot
triangular-fr.dot
triangular-kk.dot
+287 -54
View File
@@ -1,65 +1,298 @@
# Use, modification, and distribution are
# subject to 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)
#
# Mael Valais, 2016
# This travis file has been inspired from boostorg/geometry/circle.yml.
#
# This file is intended to make use of travis-ci, a continuous integration
# service. The purpose is to build and run the tests on the graph module
# on every push, and be able to know if those commits are "clean" or if
# they break the build.
#
# I think that we shouldn't restrict on branches: PRs must also be tested
# So for now, I disabled the "only on branches" feature
#branches:
# only:
# - master
# - develop
# - test
# Copyright 2016, 2017 Peter Dimov
# Copyright 2018 Joh Maddock
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
language: cpp
compiler: gcc
python: "2.7"
os:
- linux
- osx
branches:
only:
- master
- develop
- /feature\/.*/
env:
global:
- BOOST_BRANCH=$([[ "$TRAVIS_BRANCH" = "master" ]] && echo master || echo develop)
- BOOST=boost-local # must be different from graph/boost dir name
addons:
apt:
sources: ubuntu-toolchain-r-test
packages: g++-4.8
matrix:
- BOGUS_JOB=true
before_install:
# Clone boost repository
- cd
- mkdir $BOOST && cd $BOOST
- git init .
- git remote add --no-tags -t $BOOST_BRANCH origin https://github.com/boostorg/boost.git
- git fetch --depth=1
- git checkout $BOOST_BRANCH
- git submodule update --init --merge
- git remote set-branches --add origin $BOOST_BRANCH
- git pull --recurse-submodules
- git submodule update --init
- git checkout $BOOST_BRANCH
- git submodule foreach "git reset --quiet --hard; git clean -fxd"
- git reset --hard; git clean -fxd
- git status
matrix:
# replace the content of the library with the currently tested repo
- cd && pwd && ls
- rm -rf $BOOST/libs/graph
- cd $TRAVIS_BUILD_DIR && cd ..
- mv graph $HOME/$BOOST/libs/
exclude:
- env: BOGUS_JOB=true
# build b2 and create headers
- cd && cd $BOOST
include:
- os: linux
compiler: g++-4.4
env: TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98,0x
addons:
apt:
packages:
- g++-4.4
sources:
- ubuntu-toolchain-r-test
- os: linux
compiler: g++-4.6
env: TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x
addons:
apt:
packages:
- g++-4.6
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11
addons:
apt:
packages:
- g++-4.7
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11
addons:
apt:
packages:
- g++-4.8
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11
addons:
apt:
packages:
- g++-4.9
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14
addons:
apt:
packages:
- g++-5
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11
addons:
apt:
packages:
- g++-6
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=14,1z
addons:
apt:
packages:
- g++-6
sources:
- ubuntu-toolchain-r-test
- os: linux
dist: trusty
compiler: g++-7
env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11
addons:
apt:
packages:
- g++-7
sources:
- ubuntu-toolchain-r-test
- os: linux
dist: trusty
compiler: g++-7
env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=14,17
addons:
apt:
packages:
- g++-7
sources:
- ubuntu-toolchain-r-test
- os: linux
dist: trusty
compiler: g++-8
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=03,11
addons:
apt:
packages:
- g++-8
sources:
- ubuntu-toolchain-r-test
- os: linux
dist: trusty
compiler: g++-8
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=14,17
addons:
apt:
packages:
- g++-8
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11
addons:
apt:
packages:
- clang-3.5
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.5
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11
addons:
apt:
packages:
- clang-3.6
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.6
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11
addons:
apt:
packages:
- clang-3.7
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.7
# Fails to compile std lib headers (toolset issue):
#- os: linux
# env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z
# addons:
# apt:
# packages:
# - clang-3.8
# sources:
# - ubuntu-toolchain-r-test
# - llvm-toolchain-precise-3.8
#
#- os: linux
# env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z
# addons:
# apt:
# packages:
# - clang-3.9
# sources:
# - ubuntu-toolchain-r-test
# - llvm-toolchain-precise-3.9
- os: linux
compiler: clang++-4.0
env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,1z
addons:
apt:
packages:
- clang-4.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-4.0
- os: linux
compiler: clang++-5.0
env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11
addons:
apt:
packages:
- clang-5.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-5.0
- os: linux
compiler: clang++-5.0
env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=14,1z
addons:
apt:
packages:
- clang-5.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-5.0
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03
osx_image: xcode7.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=11
osx_image: xcode7.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=14,1z
osx_image: xcode7.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03
osx_image: xcode8.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=11
osx_image: xcode8.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=14,1z
osx_image: xcode8.3
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03
osx_image: xcode9.4.1
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=11
osx_image: xcode9.4.1
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=14,1z
osx_image: xcode9.4.1
install:
- BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
- cd ..
- git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
- cd boost-root
- git submodule update --init tools/boost_install
- git submodule update --init libs/headers
- git submodule update --init tools/build
- git submodule update --init libs/config
- git submodule update --init tools/boostdep
- cp -r $TRAVIS_BUILD_DIR/* libs/graph
- python tools/boostdep/depinst/depinst.py graph
- ./bootstrap.sh
- ./b2 headers
# This part is meant for unit tests
script:
- cd $HOME/$BOOST/libs/graph/test
- ../../../b2 toolset=gcc-4.8 cxxflags=-std=c++11
- |-
echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
- IFS=','
- for CXXLOCAL in $CXXSTD; do (cd libs/config/test && ../../../b2 config_info_travis_install toolset=$TOOLSET cxxstd=$CXXLOCAL && ./config_info_travis && rm ./config_info_travis) done
- unset IFS
- ./b2 -j3 libs/graph/test toolset=$TOOLSET cxxstd=$CXXSTD
notifications:
email:
on_success: always
+64
View File
@@ -0,0 +1,64 @@
# Copyright 2016 Peter Dimov
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
version: 1.0.{build}-{branch}
shallow_clone: true
branches:
only:
- master
- develop
platform:
- x64
environment:
matrix:
- ARGS: --toolset=msvc-9.0 address-model=32
- ARGS: --toolset=msvc-10.0 address-model=32
- ARGS: --toolset=msvc-11.0 address-model=32
- ARGS: --toolset=msvc-12.0 address-model=32
- ARGS: --toolset=msvc-14.0 address-model=32
- ARGS: --toolset=msvc-12.0 address-model=64
- ARGS: --toolset=msvc-14.0 address-model=64
- ARGS: --toolset=msvc-14.0 address-model=64 cxxflags=-std:c++latest
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=64
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=32
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=64 cxxflags=-std:c++latest
- ARGS: --toolset=gcc address-model=64
PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
- ARGS: --toolset=gcc address-model=64 cxxflags=-std=gnu++1z
PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
- ARGS: --toolset=gcc address-model=32
PATH: C:\mingw-w64\i686-5.3.0-posix-dwarf-rt_v4-rev0\mingw32\bin;%PATH%
- ARGS: --toolset=gcc address-model=32 linkflags=-Wl,-allow-multiple-definition
PATH: C:\MinGW\bin;%PATH%
install:
- cd ..
- git clone -b %APPVEYOR_REPO_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
- cd boost-root
- git submodule update --init tools/boost_install
- git submodule update --init libs/headers
- git submodule update --init tools/build
- git submodule update --init libs/config
- xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\graph
- git submodule update --init tools/boostdep
- python tools/boostdep/depinst/depinst.py graph
- bootstrap
- b2 headers
build: off
test_script:
- cd libs\config\test
- ..\..\..\b2 config_info_travis_install %ARGS%
- config_info_travis
- cd ..\..\graph\test
- ..\..\..\b2 -j3 --hash %ARGS%
+2 -2
View File
@@ -32,7 +32,7 @@ href="./astar_search.html">astar_search()</a>.
<h3>Refinement of</h3>
<a href="http://www.sgi.com/tech/stl/UnaryFunction.html">Unary
<a href="http://www.boost.org/sgi/stl/UnaryFunction.html">Unary
Function</a> (must take a single argument -- a graph vertex -- and
return a cost value) and <a
href="../../utility/CopyConstructible.html">Copy Constructible</a>
@@ -129,7 +129,7 @@ Called for the target of every out edge of a vertex being examined.
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy; 2004</TD><TD>
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
<A HREF="http://cs.krisbeevers.com/">Kristopher Beevers</A>,
Rensselaer Polytechnic Institute (<A
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -204,7 +204,7 @@ happens after all of its out-edges have been examined.
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy; 2004</TD><TD>
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
<A HREF="http://cs.krisbeevers.com/">Kristopher Beevers</A>,
Rensselaer Polytechnic Institute (<A
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -211,7 +211,7 @@ class count_tree_edges_bfs_visitor(bgl.Graph.BFSVisitor):
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -175,7 +175,7 @@ class count_tree_edges_bellman_ford_visitor(bgl.Graph.BellmanFordVisitor):
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+2 -2
View File
@@ -45,7 +45,7 @@ For a type to model the Buffer concept it must have the following members.
<tr> <td> <tt>value_type</tt> </td>
<td> The type of object stored in the Buffer. The value type
must be <A href="http://www.sgi.com/tech/stl/Assignable.html">Assignable</a>.</td>
must be <A href="http://www.boost.org/sgi/stl/Assignable.html">Assignable</a>.</td>
</tr>
<tr> <td> <tt>size_type</tt> </td>
@@ -99,7 +99,7 @@ most linear time complexity in the size of the Generalized Queue.
<h3>Models</h3>
<UL>
<LI><a href="http://www.sgi.com/tech/stl/stack.html"><tt>std::stack</tt></a>
<LI><a href="http://www.boost.org/sgi/stl/stack.html"><tt>std::stack</tt></a>
<LI><a href="../../../boost/pending/mutable_queue.hpp"><tt>boost::mutable_queue</tt></a>
</UL>
+3 -3
View File
@@ -28,9 +28,9 @@ mark which vertices have been visited.
<P>
<h3>Refinement of</h3> <a
href="http://www.sgi.com/tech/stl/EqualityComparable.html">EqualityComparable</a>
href="http://www.boost.org/sgi/stl/EqualityComparable.html">EqualityComparable</a>
and <a
href="http://www.sgi.com/tech/stl/DefaultConstructible.html">DefaultConstructible</a>
href="http://www.boost.org/sgi/stl/DefaultConstructible.html">DefaultConstructible</a>
<h3>Notation</h3>
@@ -99,7 +99,7 @@ href="http://www.sgi.com/tech/stl/DefaultConstructible.html">DefaultConstructibl
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -212,7 +212,7 @@ class count_tree_edges_dfs_visitor(bgl.Graph.DFSVisitor):
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -213,7 +213,7 @@ class count_tree_edges_dijkstra_visitor(bgl.Graph.DijkstraVisitor):
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -152,7 +152,7 @@ either a vertex or edge descriptor of the graph.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -118,7 +118,7 @@ std::make_pair(<i>visitor1</i>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+7 -7
View File
@@ -24,7 +24,7 @@ The Graph concept contains a few requirements that are common to all
the graph concepts. These include some associated types for
<tt>vertex_descriptor</tt>, <tt>edge_descriptor</tt>, etc. One should
note that a model of Graph is <B>not</B> required to be a model of <a
href="http://www.sgi.com/tech/stl/Assignable.html">Assignable</a>,
href="http://www.boost.org/sgi/stl/Assignable.html">Assignable</a>,
so algorithms should pass graph objects by reference.
<P>
@@ -51,9 +51,9 @@ so algorithms should pass graph objects by reference.
A vertex descriptor corresponds to a unique vertex in an abstract
graph instance. A vertex descriptor must be
<a
href="http://www.sgi.com/tech/stl/DefaultConstructible.html">Default Constructible</a>,
<a href="http://www.sgi.com/tech/stl/Assignable.html">Assignable</a>, and
<a href="http://www.sgi.com/tech/stl/EqualityComparable.html">Equality Comparable</a>.
href="http://www.boost.org/sgi/stl/DefaultConstructible.html">Default Constructible</a>,
<a href="http://www.boost.org/sgi/stl/Assignable.html">Assignable</a>, and
<a href="http://www.boost.org/sgi/stl/EqualityComparable.html">Equality Comparable</a>.
</td>
</tr>
@@ -61,9 +61,9 @@ href="http://www.sgi.com/tech/stl/DefaultConstructible.html">Default Constructib
<td><pre>boost::graph_traits&lt;G&gt;::edge_descriptor</pre>
An edge descriptor corresponds to a unique edge <i>(u,v)</i> in a
graph. An edge descriptor must be <a
href="http://www.sgi.com/tech/stl/DefaultConstructible.html">Default Constructible</I>,
<a href="http://www.sgi.com/tech/stl/Assignable.html">Assignable</a>, and
<a href="http://www.sgi.com/tech/stl/EqualityComparable.html">Equality Comparable</a>.
href="http://www.boost.org/sgi/stl/DefaultConstructible.html">Default Constructible</I>,
<a href="http://www.boost.org/sgi/stl/Assignable.html">Assignable</a>, and
<a href="http://www.boost.org/sgi/stl/EqualityComparable.html">Equality Comparable</a>.
</td>
</tr>
+1 -1
View File
@@ -193,7 +193,7 @@ Therefore, the extra requirement is added that the out-edge connecting
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+3 -3
View File
@@ -22,7 +22,7 @@ IteratorConstructibleGraph
The IteratorConstructibleGraph concept describes the interface for
graph types that can be constructed using a kind of edge iterator. The
edge iterator can be any <a
href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
href="http://www.boost.org/sgi/stl/InputIterator.html">InputIterator</a>
that dereferences to a pair of integers <i>(i,j)</i>, which represent
an edge that should be in the graph. The two integers <i>i</i> and
<i>j</i> represent vertices where <i>0 <= i < |V|</i> and <i>0 <= j <
@@ -44,7 +44,7 @@ the second constructor can be more efficient than the first.
The following exampe creates two graph objects from an array of edges
(vertex pairs). The type <tt>Edge*</tt> satisfies the requirements for
an <a
href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
href="http://www.boost.org/sgi/stl/InputIterator.html">InputIterator</a>
and can therefore be used to construct a graph.
<pre>
@@ -152,7 +152,7 @@ constructor lacking the graph size information.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+2 -2
View File
@@ -33,7 +33,7 @@ The element type must be a model of <a
href="../../utility/Assignable.html">Assignable</a> and <a
href="../../utility/CopyConstructible.html">CopyConstructible</a>.
The function object type must be a model of <a
href="http://www.sgi.com/tech/stl/BinaryFunction.html">BinaryFunction</a>.
href="http://www.boost.org/sgi/stl/BinaryFunction.html">BinaryFunction</a>.
<h3>Notation</h3>
@@ -113,7 +113,7 @@ Return type: <TT>bool</TT>
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -58,7 +58,7 @@ edges and vertices.
<TR>
<TD><tt>p</tt></TD>
<TD>is an object of a type that models <a
href="http://www.sgi.com/tech/stl/Predicate.html">Predicate</a>
href="http://www.boost.org/sgi/stl/Predicate.html">Predicate</a>
and whose argument type matches the <tt>edge_descriptor</tt> type.
</TR>
+1 -1
View File
@@ -67,7 +67,7 @@ href="../../../boost/pending/property.hpp"><tt>boost/pending/property.hpp</tt></
<h3>Refinement of</h3>
<a
href="http://www.sgi.com/tech/stl/DefaultConstructible.html">Default Constructible</a>
href="http://www.boost.org/sgi/stl/DefaultConstructible.html">Default Constructible</a>
<h3>Models</h3>
+1 -1
View File
@@ -28,7 +28,7 @@ implementation does the rest.
<H3>Refinement of</H3>
<a href="./Graph.html">Graph</a> and <a
href="http://www.sgi.com/tech/stl/DefaultConstructible.html">DefaultConstructible</a>
href="http://www.boost.org/sgi/stl/DefaultConstructible.html">DefaultConstructible</a>
<H3>Associated Types</H3>
+1 -1
View File
@@ -67,7 +67,7 @@ Science of the U.S. Department of Energy.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -115,7 +115,7 @@ href="../../utility/MultiPassInputIterator.html">Multi-Pass Input Iterator</a>
The adjacency iterator type implements the member functions and
operators required of the <a
href="http://www.sgi.com/tech/stl/RandomAccessIterator.html">Random Access Iterator</a>
href="http://www.boost.org/sgi/stl/RandomAccessIterator.html">Random Access Iterator</a>
concept, except that the <tt>reference</tt> type is the same as the <tt>value_type</tt>
so <tt>operator*()</tt> returns by-value. In addition it has the following constructor:
+12 -12
View File
@@ -397,9 +397,9 @@ The type for the iterators returned by <TT>vertices()</TT>.
When <tt>VertexList=vecS</tt> then the <tt>vertex_iterator</tt> models
<a
href="http://www.sgi.com/tech/stl/RandomAccessIterator.html">RandomAccessIterator</a>. Otherwise
href="http://www.boost.org/sgi/stl/RandomAccessIterator.html">RandomAccessIterator</a>. Otherwise
the <tt>vertex_iterator</tt> models <a
href="http://www.sgi.com/tech/stl/BidirectionalIterator.html">BidirectionalIterator</a>.
href="http://www.boost.org/sgi/stl/BidirectionalIterator.html">BidirectionalIterator</a>.
<hr>
@@ -407,7 +407,7 @@ href="http://www.sgi.com/tech/stl/BidirectionalIterator.html">BidirectionalItera
<br><br>
The type for the iterators returned by <TT>edges()</TT>.
The <tt>edge_iterator</tt> models <a
href="http://www.sgi.com/tech/stl/BidirectionalIterator.html">BidirectionalIterator</a>.
href="http://www.boost.org/sgi/stl/BidirectionalIterator.html">BidirectionalIterator</a>.
<hr>
@@ -418,13 +418,13 @@ href="http://www.sgi.com/tech/stl/BidirectionalIterator.html">BidirectionalItera
The type for the iterators returned by <TT>out_edges()</TT>.
When <tt>OutEdgeList=vecS</tt> then the <tt>out_edge_iterator</tt> models
<a href="http://www.sgi.com/tech/stl/RandomAccessIterator.html">
<a href="http://www.boost.org/sgi/stl/RandomAccessIterator.html">
RandomAccessIterator</a>. When <tt>OutEdgeList=slistS</tt> then the
<tt>out_edge_iterator</tt> models <a
href="http://www.sgi.com/tech/stl/ForwardIterator.html">
href="http://www.boost.org/sgi/stl/ForwardIterator.html">
ForwardIterator</a>. Otherwise the <tt>out_edge_iterator</tt> models
<a
href="http://www.sgi.com/tech/stl/BidirectionalIterator.html">
href="http://www.boost.org/sgi/stl/BidirectionalIterator.html">
BidirectionalIterator</a>.
<hr>
@@ -578,7 +578,7 @@ adjacency_list(EdgeIterator&nbsp;first, EdgeIterator&nbsp;last,
Creates a graph object with <TT>n</TT> vertices and with the edges
specified in the edge list given by the range <TT>[first, last)</TT>.
The <tt>EdgeIterator</tt> must be a model of <a
href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>.
href="http://www.boost.org/sgi/stl/InputIterator.html">InputIterator</a>.
The value type of the <TT>EdgeIterator</TT> must be a
<TT>std::pair</TT>, where the type in the pair is an integer type. The
integers will correspond to vertices, and they must all fall in the
@@ -599,7 +599,7 @@ Creates a graph object with <TT>n</TT> vertices and with the edges
specified in the edge list given by the range <TT>[first, last)</TT>.
The <tt>EdgeIterator</tt> and <tt>EdgePropertyIterator</tt> must be a
model of <a
href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>.
href="http://www.boost.org/sgi/stl/InputIterator.html">InputIterator</a>.
The value type of the <TT>EdgeIterator</TT> must be a
<TT>std::pair</TT>, where the type in the pair is an integer type. The
integers will correspond to vertices, and they must all fall in the
@@ -884,7 +884,7 @@ has time complexity <i>O(E/V)</i>.
<hr>
<pre>
template &lt;class <a href="http://www.sgi.com/tech/stl/Predicate.html">Predicate</a>&gt;
template &lt;class <a href="http://www.boost.org/sgi/stl/Predicate.html">Predicate</a>&gt;
void remove_out_edge_if(vertex_descriptor u, Predicate predicate,
adjacency_list&amp; g)
</pre>
@@ -899,7 +899,7 @@ invoking <tt>remove_edge()</tt> on each of the removed edges.
<pre>
template &lt;class <a
href="http://www.sgi.com/tech/stl/Predicate.html">Predicate</a>&gt;
href="http://www.boost.org/sgi/stl/Predicate.html">Predicate</a>&gt;
void remove_in_edge_if(vertex_descriptor v, Predicate predicate,
adjacency_list&amp; g)
</pre>
@@ -917,7 +917,7 @@ This operation is available for undirected and bidirectional
<hr>
<pre>
template &lt;class <a href="http://www.sgi.com/tech/stl/Predicate.html">Predicate</a>&gt;
template &lt;class <a href="http://www.boost.org/sgi/stl/Predicate.html">Predicate</a>&gt;
void remove_edge_if(Predicate predicate, adjacency_list&amp; g)
</pre>
Removes all edges from the graph that satisfy
@@ -1127,7 +1127,7 @@ Include <a href="../../../boost/graph/adj_list_serialize.hpp"><tt>boost/graph/ad
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+3 -3
View File
@@ -79,8 +79,8 @@ The selector type whether the graph is directed or undirected.
<h3>Model of</h3>
<a
href="http://www.sgi.com/tech/stl/DefaultConstructible.html">DefaultConstructible</a> and
<a href="http://www.sgi.com/tech/stl/Assignable.html">Assignable</a>
href="http://www.boost.org/sgi/stl/DefaultConstructible.html">DefaultConstructible</a> and
<a href="http://www.boost.org/sgi/stl/Assignable.html">Assignable</a>
<h3>Type Requirements</h3>
@@ -149,7 +149,7 @@ parallel edges (<tt>disallow_parallel_edge_tag</tt>).
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -237,7 +237,7 @@ The type for the edge descriptors associated with the
<tt>graph_traits&lt;adjacency_matrix&gt;::vertex_iterator</tt>
<br><br>
The type for the iterators returned by <tt>vertices()</tt>.
The vertex iterator models <a href="http://www.sgi.com/tech/stl/RandomAccessIterator.html">RandomAccessIterator</a>. <br>
The vertex iterator models <a href="http://www.boost.org/sgi/stl/RandomAccessIterator.html">RandomAccessIterator</a>. <br>
(Required by <a href="VertexListGraph.html">VertexListGraph</a>.)
<hr>
+1 -1
View File
@@ -87,7 +87,7 @@ to a goal.
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy; 2004</TD><TD>
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
<A HREF="http://cs.krisbeevers.com/">Kristopher Beevers</A>,
Rensselaer Polytechnic Institute (<A
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
</TD></TR></TABLE>
+9 -9
View File
@@ -65,7 +65,7 @@ template &lt;typename VertexListGraph, typename AStarHeuristic,
typename CostMap, typename DistanceMap,
typename WeightMap, typename VertexIndexMap,
typename ColorMap,
typename <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">CompareFunction</a>, typename <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">CombineFunction</a>,
typename <a href="http://www.boost.org/sgi/stl/BinaryPredicate.html">CompareFunction</a>, typename <a href="http://www.boost.org/sgi/stl/BinaryFunction.html">CombineFunction</a>,
typename CostInf, typename CostZero&gt;
inline void
astar_search
@@ -82,7 +82,7 @@ template &lt;typename VertexListGraph, typename AStarHeuristic,
typename <a href="AStarVisitor.html">AStarVisitor</a>, typename PredecessorMap,
typename CostMap, typename DistanceMap,
typename WeightMap,
typename <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">CompareFunction</a>, typename <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">CombineFunction</a>,
typename <a href="http://www.boost.org/sgi/stl/BinaryPredicate.html">CompareFunction</a>, typename <a href="http://www.boost.org/sgi/stl/BinaryFunction.html">CombineFunction</a>,
typename CostInf, typename CostZero&gt;
inline void
astar_search_tree
@@ -100,7 +100,7 @@ template &lt;typename IncidenceGraph, typename AStarHeuristic,
typename CostMap, typename DistanceMap,
typename WeightMap, typename ColorMap,
typename VertexIndexMap,
typename <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">CompareFunction</a>, typename <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">CombineFunction</a>,
typename <a href="http://www.boost.org/sgi/stl/BinaryPredicate.html">CompareFunction</a>, typename <a href="http://www.boost.org/sgi/stl/BinaryFunction.html">CombineFunction</a>,
typename CostInf, typename CostZero&gt;
inline void
astar_search_no_init
@@ -121,7 +121,7 @@ template &lt;typename IncidenceGraph, typename AStarHeuristic,
typename <a href="AStarVisitor.html">AStarVisitor</a>, typename PredecessorMap,
typename CostMap, typename DistanceMap,
typename WeightMap,
typename <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">CompareFunction</a>, typename <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">CombineFunction</a>,
typename <a href="http://www.boost.org/sgi/stl/BinaryPredicate.html">CompareFunction</a>, typename <a href="http://www.boost.org/sgi/stl/BinaryFunction.html">CombineFunction</a>,
typename CostInf, typename CostZero&gt;
inline void
astar_search_no_init_tree
@@ -394,7 +394,7 @@ UTIL/OUT: <tt>distance_map(DistanceMap d_map)</tt>
href="./Monoid.html"><tt>Monoid</tt></a> formed with the
<tt>combine</tt> function object and the zero object for the
identity element. Also the distance value type must have a <a
href="http://www.sgi.com/tech/stl/StrictWeakOrdering.html"><tt>StrictWeakOrdering</tt></a>
href="http://www.boost.org/sgi/stl/StrictWeakOrdering.html"><tt>StrictWeakOrdering</tt></a>
provided by the <tt>compare</tt> function object. A
<tt>constant_writable_property_map</tt> returning the infinity value can be
used for this parameter in tree versions of the algorithm when the graph does
@@ -424,7 +424,7 @@ UTIL/OUT: <tt>rank_map(CostMap c_map)</tt>
href="./Monoid.html"><tt>Monoid</tt></a> formed with the
<tt>combine</tt> function object and the zero object for the
identity element. Also the distance value type must have a <a
href="http://www.sgi.com/tech/stl/StrictWeakOrdering.html"><tt>StrictWeakOrdering</tt></a>
href="http://www.boost.org/sgi/stl/StrictWeakOrdering.html"><tt>StrictWeakOrdering</tt></a>
provided by the <tt>compare</tt> function object. The value type
for this map must be the same as the value type for the distance
map. In tree versions of the algorithm, <tt>null_property_map</tt> can be
@@ -466,7 +466,7 @@ IN: <tt>distance_compare(CompareFunction cmp)</tt>
is closer to the start vertex, and to compare <i>f</i>-values to
determine which vertex on the OPEN list to examine next. The
<tt>CompareFunction</tt> type must be a model of <a
href="http://www.sgi.com/tech/stl/BinaryPredicate.html"><tt>Binary
href="http://www.boost.org/sgi/stl/BinaryPredicate.html"><tt>Binary
Predicate</tt></a> and have argument types that match the value type
of the <tt>DistanceMap</tt> property map.<br>
@@ -481,7 +481,7 @@ IN: <tt>distance_combine(CombineFunction cmb)</tt>
of a path, and to combine distance and heuristic values to compute
the <i>f</i>-value of a vertex. The <tt>CombineFunction</tt> type
must be a model of <a
href="http://www.sgi.com/tech/stl/BinaryFunction.html"><tt>Binary
href="http://www.boost.org/sgi/stl/BinaryFunction.html"><tt>Binary
Function</tt></a>. Both argument types of the binary function must
match the value type of the <tt>DistanceMap</tt> property map (which
is the same as that of the <tt>WeightMap</tt> and <tt>CostMap</tt>
@@ -580,7 +580,7 @@ this state by pointer or reference.
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy; 2004</TD><TD>
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
<A HREF="http://cs.krisbeevers.com/">Kristopher Beevers</A>,
Rensselaer Polytechnic Institute (<A
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -99,7 +99,7 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy; 2004</TD><TD>
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
<A HREF="http://cs.krisbeevers.com/">Kristopher Beevers</A>,
Rensselaer Polytechnic Institute (<A
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -142,7 +142,7 @@ IN: <tt>VertexIndexMap vertex_index</tt>
<td nowrap>Copyright &copy; 2004</td>
<td><a href="http://www.boost.org/people/doug_gregor.html">Douglas Gregor</a>,
Indiana University (dgregor@cs.indiana.edu)<br>
<a href="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</a>, Indiana
<a href="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</a>, Indiana
University (<a href=
"mailto:lums@osl.iu.edu">lums@osl.iu.edu</a>)</td>
</tr>
+2 -2
View File
@@ -34,7 +34,7 @@ bool bellman_ford_shortest_paths(const VertexAndEdgeListGraph&amp; g,
<i>// non-named parameter version</i>
template &lt;class <a href="./EdgeListGraph.html">EdgeListGraph</a>, class Size, class WeightMap,
class PredecessorMap, class DistanceMap,
class <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">BinaryFunction</a>, class <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">BinaryPredicate</a>,
class <a href="http://www.boost.org/sgi/stl/BinaryFunction.html">BinaryFunction</a>, class <a href="http://www.boost.org/sgi/stl/BinaryPredicate.html">BinaryPredicate</a>,
class <a href="./BellmanFordVisitor.html">BellmanFordVisitor</a>&gt;
bool bellman_ford_shortest_paths(EdgeListGraph&amp; g, Size N,
WeightMap weight, PredecessorMap pred, DistanceMap distance,
@@ -236,7 +236,7 @@ IN/OUT: <tt>distance_map(DistanceMap d)</tt>
Property Map</a>. The key type of the property map must be the
vertex descriptor type of the graph, and the value type of the
distance map must be <a
href="http://www.sgi.com/tech/stl/LessThanComparable.html"> Less
href="http://www.boost.org/sgi/stl/LessThanComparable.html"> Less
Than Comparable</a>.<br> <b>Default:</b> <tt>get(vertex_distance,
g)</tt><br>
<b>Python</b>: Must be a <tt>vertex_double_map</tt> for the graph.<br>
+1 -1
View File
@@ -102,7 +102,7 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -297,7 +297,7 @@ is <em>O(VE)</em>.
<TR valign=top>
<TD nowrap>Copyright &copy; 2004</TD><TD>
<A HREF="http://www.boost.org/people/doug_gregor.html">Douglas Gregor</A>, Indiana University (dgregor@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -119,7 +119,7 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -87,7 +87,7 @@ like <tt>boost::weight_map</tt> that create an instance of
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+16 -1
View File
@@ -148,7 +148,7 @@ J.&nbsp;W.&nbsp;H. Liu.
<P></P><DT><A NAME="mehlhorn99:_leda">22</A>
<DD>
K.&nbsp;Mehlhorn and S.&nbsp;Näher.
K.&nbsp;Mehlhorn and S.&nbsp;Näher.
<BR><EM>The LEDA Platform of Combinatorial and Geometric Computing</EM>.
<BR>Cambridge University Press, 1999.
@@ -438,6 +438,21 @@ David&nbsp;Bruce&nbsp;Wilson
<BR><em>Generating random spanning trees more quickly than the cover time</em>.
ACM Symposium on the Theory of Computing, pp. 296-303, 1996.
<p></p><dt><a name="edmonds65:_max_weighted_match">74</a>
<dd>J. Edmonds<br>
<em>Maximum Matching and a Polyhedron with 0, 1-Vertices</em><br>
Journal of Research of the National Bureau of Standards B 69, pp. 125-130, 1965.
<p></p><dt><a name="gabow76">75</a>
<dd>Harold N. Gabow<br>
<em>An Efficient Implementation of Edmonds' Algorithm for Maximum Matching on Graphs</em><br>
Journal of the ACM (JACM), 23(2): 221-234, 1976.
<p></p><dt><a name="gabow90">76</a>
<dd>Harold N. Gabow<br>
<em>Data Structures for Weighted Matching and Nearest Common Ancestors with Linking</em><br>
Proceedings of the First Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 434-443, 1990.
</dl>
<br>
+2 -2
View File
@@ -61,12 +61,12 @@ polygons.</li>
<li>Rewrite the Qhull algorithm using the Boost Graph Library (this is
high difficulty challenge). Or, for a more manageable challenge,
write an interface for Qhull with the BGL. <a
href="http://www.geom.umn.edu/locate/qhull">Qhull</a> computes the
href="http://www.qhull.org/">Qhull</a> computes the
convex hull, Delaunay triangulation, Voronoi diagram, and halfspace
intersection about a point. Qhull runs in 2-d, 3-d, 4-d, and higher
dimensions. Qhull is used for collision detection, animation, plate
tectonics, 3-d modeling, robot motion planning, and other <a
href="http://www.geom.umn.edu/~bradb/qhull-news.html#use">applications</a>.
href="http://www.qhull.org/news/qhull-news.html#users">applications</a>.
It is currently difficult to use from a C++ program.
</li>
+1 -1
View File
@@ -45,7 +45,7 @@ IN: <tt>Radius radius</tt>
<TR valign=top>
<TD nowrap>Copyright &copy; 2004</TD><TD>
<A HREF="http://www.boost.org/people/doug_gregor.html">Douglas Gregor</A>, Indiana University (dgregor -at- cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (lums -at- osl.iu.edu)
</TD></TR></TABLE>
</body></html>
+9 -9
View File
@@ -416,7 +416,7 @@ void <a href="#add_edges_sorted_prop">add_edges_sorted</a>(BidirectionalIterator
edges are specified by the iterator range <code>[edge_begin,
edge_end)</code>. The <tt>InputIterator</tt> must be a model of
<a
href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
href="http://www.boost.org/sgi/stl/InputIterator.html">InputIterator</a>
whose <code>value_type</code> is an <code>std::pair</code> of
integer values. These integer values are the source and target
vertices for the edges, and must fall within the range <code>[0,
@@ -448,7 +448,7 @@ void <a href="#add_edges_sorted_prop">add_edges_sorted</a>(BidirectionalIterator
to the <a href="#edge-const">edge range constructor</a>, except
that edge properties are also initialized. The type
<tt>EdgePropertyIterator</tt> must be a model of the <a
href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
href="http://www.boost.org/sgi/stl/InputIterator.html">InputIterator</a>
concept whose <tt>value_type</tt> is convertible to
<tt>EdgeProperty</tt>. The iterator range <tt>[ep_iter, ep_ter +
m)</tt> will be used to initialize the properties on the edges
@@ -532,7 +532,7 @@ void <a href="#add_edges_sorted_prop">add_edges_sorted</a>(BidirectionalIterator
<code>edges_are_sorted</code> can be used to initialize this parameter.
The <tt>InputIterator</tt> must be a model of
<a
href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
href="http://www.boost.org/sgi/stl/InputIterator.html">InputIterator</a>
whose <code>value_type</code> is an <code>std::pair</code> of
integer values. These integer values are the source and target
vertices for the edges, and must fall within the range <code>[0,
@@ -572,7 +572,7 @@ void <a href="#add_edges_sorted_prop">add_edges_sorted</a>(BidirectionalIterator
to the <a href="#edge-const">edge range constructor</a>, except
that edge properties are also initialized. The type
<tt>EdgePropertyIterator</tt> must be a model of the <a
href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
href="http://www.boost.org/sgi/stl/InputIterator.html">InputIterator</a>
concept whose <tt>value_type</tt> is convertible to
<tt>EdgeProperty</tt>. The iterator range <tt>[ep_iter, ep_ter +
m)</tt> will be used to initialize the properties on the edges
@@ -844,7 +844,7 @@ void add_edges(InputIterator first, InputIterator last, compressed_sparse_row_gr
<p class="indent">
Add a range of edges (from <tt>first</tt> to <tt>last</tt>) to the graph.
The <tt>InputIterator</tt> must be a model of <a
href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
href="http://www.boost.org/sgi/stl/InputIterator.html">InputIterator</a>
whose <code>value_type</code> is an <code>std::pair</code> of integer
values. These integer values are the source and target vertices of the
new edges. The edges do not need to be sorted.
@@ -862,7 +862,7 @@ void add_edges(InputIterator first, InputIterator last, EPIter ep_first, EPIter
corresponding edge properties (from <tt>ep_first</tt> to
<tt>ep_last</tt>) to the graph. The <tt>InputIterator</tt> and
<tt>EPIter</tt> must be models of <a
href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>;
href="http://www.boost.org/sgi/stl/InputIterator.html">InputIterator</a>;
the <code>value_type</code> of <tt>InputIterator</tt> must be an
<code>std::pair</code> of integer values, and the <code>value_type</code>
of <tt>EPIter</tt> must be the edge property type of the graph. The
@@ -880,7 +880,7 @@ void add_edges_sorted(BidirectionalIterator first, BidirectionalIterator last, c
<p class="indent">
Add a range of edges (from <tt>first</tt> to <tt>last</tt>) to the graph.
The <tt>BidirectionalIterator</tt> must be a model of <a
href="http://www.sgi.com/tech/stl/BidirectionalIterator.html">BidirectionalIterator</a>
href="http://www.boost.org/sgi/stl/BidirectionalIterator.html">BidirectionalIterator</a>
whose <code>value_type</code> is an <code>std::pair</code> of integer
values. These integer values are the source and target vertices of the
new edges. The edges must be sorted in increasing order by source vertex
@@ -898,7 +898,7 @@ void add_edges_sorted(BidirectionalIterator first, BidirectionalIterator last, E
Add a range of edges (from <tt>first</tt> to <tt>last</tt>) to the graph.
The <tt>BidirectionalIterator</tt> and <tt>EPIter</tt> must be models of
<a
href="http://www.sgi.com/tech/stl/BidirectionalIterator.html">BidirectionalIterator</a>.
href="http://www.boost.org/sgi/stl/BidirectionalIterator.html">BidirectionalIterator</a>.
The <code>value_type</code> of the <tt>BidirectionalIterator</tt> must be
an <code>std::pair</code> of integer
values. These integer values are the source and target vertices of the
@@ -964,7 +964,7 @@ BGL_FORALL_EDGES(e, g, WebGraph)
<TD nowrap>Copyright &copy; 2005</TD><TD>
<A HREF="http://www.boost.org/people/doug_gregor.html">Doug Gregor</A>, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
Jeremiah Willcock, Indiana University (<script language="Javascript">address("osl.iu.edu", "jewillco")</script>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
</TD></TR></TABLE>
</body>
+1 -1
View File
@@ -174,7 +174,7 @@ namespace boost {
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+2 -2
View File
@@ -52,7 +52,7 @@ href="./MutableGraph.html">Mutable Graph</a>.
IN: <tt>vertex_copy(VertexCopier vc)</tt>
<blockquote>
This is a <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">Binary Function</a> that copies the properties of a vertex in the original graph
This is a <a href="http://www.boost.org/sgi/stl/BinaryFunction.html">Binary Function</a> that copies the properties of a vertex in the original graph
into the corresponding vertex in the copy.<br>
<b>Default:</b> <tt>vertex_copier&lt;VertexListGraph, MutableGraph&gt;</tt>
@@ -62,7 +62,7 @@ map from the graph.
IN: <tt>edge_copy(EdgeCopier ec)</tt>
<blockquote>
This is a <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">Binary Function</a> that copies the properties of an edge in the original graph
This is a <a href="http://www.boost.org/sgi/stl/BinaryFunction.html">Binary Function</a> that copies the properties of an edge in the original graph
into the corresponding edge in the copy.<br>
<b>Default:</b> <tt>edge_copier&lt;VertexListGraph, MutableGraph&gt;</tt>
+3 -3
View File
@@ -151,7 +151,7 @@ For version 1:
<li> <tt>OutputIterator inverse_permutation</tt> &nbsp(OUT) <br>
The new vertex ordering. The vertices are written to the <a
href="http://www.sgi.com/tech/stl/OutputIterator.html">output
href="http://www.boost.org/sgi/stl/OutputIterator.html">output
iterator</a> in their new order.<br>
<b>Python</b>: This parameter is unused in Python. The new vertex
ordering is returned as a Python <tt>list</tt>.
@@ -176,7 +176,7 @@ For version 2:
href="./VertexListGraph.html">VertexListGraph</a> and <a href="./IncidenceGraph.html">IncidenceGraph</a>.<br>
<b>Python</b>: The parameter is named <tt>graph</tt>.
<li> <tt><a href="http://www.sgi.com/tech/stl/OutputIterator.html">
<li> <tt><a href="http://www.boost.org/sgi/stl/OutputIterator.html">
OutputIterator</a> inverse_permutation</tt> &nbsp(OUT) <br>
The new vertex ordering. The vertices are written to the
output iterator in their new order.<br>
@@ -209,7 +209,7 @@ For version 3:
<li> <tt>OutputIterator inverse_permutation</tt> &nbsp(OUT) <br>
The new vertex ordering. The vertices are written to the <a
href="http://www.sgi.com/tech/stl/OutputIterator.html">output
href="http://www.boost.org/sgi/stl/OutputIterator.html">output
iterator</a> in their new order.<br>
<b>Python</b>: This parameter is unused in Python. The new vertex
ordering is returned as a Python <tt>list</tt>.
+3 -3
View File
@@ -153,7 +153,7 @@ UTIL/OUT: <tt>distance_map(DistanceMap d_map)</tt>
href="./Monoid.html">Monoid</tt> formed with the <tt>combine</tt>
function object and the <tt>zero</tt> object for the identity
element. Also the distance value type must have a <a
href="http://www.sgi.com/tech/stl/StrictWeakOrdering.html">
href="http://www.boost.org/sgi/stl/StrictWeakOrdering.html">
StrictWeakOrdering</a> provided by the <tt>compare</tt> function
object.<br>
<b>Default:</b> <a
@@ -171,7 +171,7 @@ IN: <tt>distance_compare(CompareFunction cmp)</tt>
This function is use to compare distances to determine which vertex
is closer to the source vertex. The <tt>CompareFunction</tt> type
must be a model of <a
href="http://www.sgi.com/tech/stl/BinaryPredicate.html">Binary
href="http://www.boost.org/sgi/stl/BinaryPredicate.html">Binary
Predicate</a> and have argument types that match the value type of
the <tt>DistanceMap</tt> property map.<br>
@@ -186,7 +186,7 @@ IN: <tt>distance_combine(CombineFunction cmb)</tt>
<blockquote>
This function is used to combine distances to compute the distance
of a path. The <tt>CombineFunction</tt> type must be a model of <a
href="http://www.sgi.com/tech/stl/BinaryFunction.html">Binary
href="http://www.boost.org/sgi/stl/BinaryFunction.html">Binary
Function</a>. The first argument type of the binary function must
match the value type of the <tt>DistanceMap</tt> property map and
the second argument type must match the value type of the
+1 -1
View File
@@ -311,7 +311,7 @@ The example in <a href="../example/dfs-example.cpp">
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -102,7 +102,7 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+5 -5
View File
@@ -31,7 +31,7 @@ dijkstra_shortest_paths(Graph&amp; g,
<i>// non-named parameter version</i>
template &lt;typename Graph, typename <a href="DijkstraVisitor.html">DijkstraVisitor</a>,
typename PredecessorMap, typename DistanceMap,
typename WeightMap, typename VertexIndexMap, typename <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">CompareFunction</a>, typename <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">CombineFunction</a>,
typename WeightMap, typename VertexIndexMap, typename <a href="http://www.boost.org/sgi/stl/BinaryPredicate.html">CompareFunction</a>, typename <a href="http://www.boost.org/sgi/stl/BinaryFunction.html">CombineFunction</a>,
typename DistInf, typename DistZero, typename ColorMap = <i>default</i>&gt;
void dijkstra_shortest_paths
(const Graph&amp; g,
@@ -280,7 +280,7 @@ UTIL/OUT: <tt>distance_map(DistanceMap d_map)</tt>
href="./Monoid.html">Monoid</a> formed with the <tt>combine</tt>
function object and the <tt>zero</tt> object for the identity
element. Also the distance value type must have a <a
href="http://www.sgi.com/tech/stl/StrictWeakOrdering.html">
href="http://www.boost.org/sgi/stl/StrictWeakOrdering.html">
StrictWeakOrdering</a> provided by the <tt>compare</tt> function
object.<br>
<b>Default:</b> <a
@@ -298,7 +298,7 @@ IN: <tt>distance_compare(CompareFunction cmp)</tt>
This function is use to compare distances to determine which vertex
is closer to the source vertex. The <tt>CompareFunction</tt> type
must be a model of <a
href="http://www.sgi.com/tech/stl/BinaryPredicate.html">Binary
href="http://www.boost.org/sgi/stl/BinaryPredicate.html">Binary
Predicate</a> and have argument types that match the value type of
the <tt>DistanceMap</tt> property map.<br>
@@ -313,14 +313,14 @@ IN: <tt>distance_combine(CombineFunction cmb)</tt>
<blockquote>
This function is used to combine distances to compute the distance
of a path. The <tt>CombineFunction</tt> type must be a model of <a
href="http://www.sgi.com/tech/stl/BinaryFunction.html">Binary
href="http://www.boost.org/sgi/stl/BinaryFunction.html">Binary
Function</a>. The first argument type of the binary function must
match the value type of the <tt>DistanceMap</tt> property map and
the second argument type must match the value type of the
<tt>WeightMap</tt> property map. The result type must be the same
type as the distance value type.<br>
<b>Default:</b> <tt>closed_plus&lt;D&gt;</tt> with
<b>Default:</b> <tt>std::plus&lt;D&gt;</tt> with
<tt>D=typename property_traits&lt;DistanceMap&gt;::value_type</tt><br>
<b>Python</b>: Unsupported parameter.
@@ -31,7 +31,7 @@ void dijkstra_shortest_paths_no_color_map
<i>// non-named parameter version</i>
template &lt;typename Graph, typename <a href="DijkstraVisitor.html">DijkstraVisitor</a>,
typename PredecessorMap, typename DistanceMap,
typename WeightMap, typename VertexIndexMap, typename <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">DistanceCompare</a>, typename <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">DistanceWeightCombine</a>,
typename WeightMap, typename VertexIndexMap, typename <a href="http://www.boost.org/sgi/stl/BinaryPredicate.html">DistanceCompare</a>, typename <a href="http://www.boost.org/sgi/stl/BinaryFunction.html">DistanceWeightCombine</a>,
typename DistanceInfinity, typename DistanceZero&gt;
void dijkstra_shortest_paths_no_color_map
(const Graph&amp; graph,
@@ -44,7 +44,7 @@ void dijkstra_shortest_paths_no_color_map
<i>// version that does not initialize the property maps</i>
template &lt;typename Graph, typename <a href="DijkstraVisitor.html">DijkstraVisitor</a>,
typename PredecessorMap, typename DistanceMap,
typename WeightMap, typename VertexIndexMap, typename <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">DistanceCompare</a>, typename <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">DistanceWeightCombine</a>,
typename WeightMap, typename VertexIndexMap, typename <a href="http://www.boost.org/sgi/stl/BinaryPredicate.html">DistanceCompare</a>, typename <a href="http://www.boost.org/sgi/stl/BinaryFunction.html">DistanceWeightCombine</a>,
typename DistanceInfinity, typename DistanceZero&gt;
void dijkstra_shortest_paths_no_color_map_no_init
(const Graph&amp; graph,
@@ -243,7 +243,7 @@ UTIL/OUT: <tt>distance_map(DistanceMap distance_map)</tt>
href="./Monoid.html">Monoid</a> formed with the <tt>distance_weight_combine</tt>
function object and the <tt>distance_zero</tt> object for the identity
element. Also the distance value type must have a <a
href="http://www.sgi.com/tech/stl/StrictWeakOrdering.html">
href="http://www.boost.org/sgi/stl/StrictWeakOrdering.html">
StrictWeakOrdering</a> provided by the <tt>distance_compare</tt> function
object.<br>
<b>Default:</b> <a
@@ -259,7 +259,7 @@ IN: <tt>distance_compare(CompareFunction distance_compare)</tt>
This function is use to compare distances to determine which vertex
is closer to the source vertex. The <tt>DistanceCompareFunction</tt> type
must be a model of <a
href="http://www.sgi.com/tech/stl/BinaryPredicate.html">Binary
href="http://www.boost.org/sgi/stl/BinaryPredicate.html">Binary
Predicate</a> and have argument types that match the value type of
the <tt>DistanceMap</tt> property map.<br>
@@ -272,7 +272,7 @@ IN: <tt>distance_combine(CombineFunction distance_weight_combine)</tt>
<blockquote>
This function is used to combine distances to compute the distance
of a path. The <tt>DistanceWeightCombineFunction</tt> type must be a model of <a
href="http://www.sgi.com/tech/stl/BinaryFunction.html">Binary
href="http://www.boost.org/sgi/stl/BinaryFunction.html">Binary
Function</a>. The first argument type of the binary function must
match the value type of the <tt>DistanceMap</tt> property map and
the second argument type must match the value type of the
+1 -1
View File
@@ -116,7 +116,7 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -87,7 +87,7 @@ A simple examples of creating a directed_graph is available here <a href="../../
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -167,7 +167,7 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+2 -2
View File
@@ -104,7 +104,7 @@ of each vertex in the shortest paths tree.
</tr>
<TR><TD><TT>EdgeIterator</TT></TD> <TD>Must be model of <a
href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
href="http://www.boost.org/sgi/stl/InputIterator.html">InputIterator</a>
who's <TT>value_type</TT> must be a pair of vertex descriptors.</TD>
</TR>
@@ -212,7 +212,7 @@ Returns the target vertex of edge <TT>e</TT>.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -182,7 +182,7 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -144,7 +144,7 @@ int main()
<TR valign=top>
<TD nowrap>Copyright &copy; 2005</TD><TD>
<A HREF="http://www.boost.org/people/doug_gregor.html">Doug Gregor</A>, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
</TD></TR></TABLE>
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

+1 -1
View File
@@ -163,7 +163,7 @@ href="./topological_sort.html"><TT>topological_sort()</TT></a>. The
traditional form of the output for topological sort is a linked-list
of the sorted vertices. The BGL algorithm instead puts the sorted
vertices into any <a
href="http://www.sgi.com/tech/stl/OutputIterator.html">OutputIterator</a>,
href="http://www.boost.org/sgi/stl/OutputIterator.html">OutputIterator</a>,
which allows for much more flexibility. Here we use the
<TT>std::front_insert_iterator</TT> to create an output iterator that
inserts the vertices on the front of a linked list. Other possible
+6 -6
View File
@@ -129,10 +129,10 @@ E -->
<TD><TT>EdgePredicate</TT></TD> <TD>A function object that selects
which edges from the original graph will appear in the filtered
graph. The function object must model <a
href="http://www.sgi.com/tech/stl/Predicate.html">Predicate</a>. The
href="http://www.boost.org/sgi/stl/Predicate.html">Predicate</a>. The
argument type for the function object must be the edge descriptor type
of the graph. Also, the predicate must be <a
href="http://www.sgi.com/tech/stl/DefaultConstructible.html">Default Constructible</a> <a href="#1">[1]</a>.</TD>
href="http://www.boost.org/sgi/stl/DefaultConstructible.html">Default Constructible</a> <a href="#1">[1]</a>.</TD>
<TD>&nbsp;</TD>
</TR>
@@ -141,10 +141,10 @@ href="http://www.sgi.com/tech/stl/DefaultConstructible.html">Default Constructib
<TD>A function object that selects
which vertices from the original graph will appear in the filtered
graph. The function object must model <a
href="http://www.sgi.com/tech/stl/Predicate.html">Predicate</a>. The
href="http://www.boost.org/sgi/stl/Predicate.html">Predicate</a>. The
argument type for the function object must be the vertex descriptor type
of the graph. Also, the predicate must be <a
href="http://www.sgi.com/tech/stl/DefaultConstructible.html">Default Constructible</a> <a href="#1">[1]</a>.</TD>
href="http://www.boost.org/sgi/stl/DefaultConstructible.html">Default Constructible</a> <a href="#1">[1]</a>.</TD>
<TD><TT>keep_all</TT></TD>
</TR>
@@ -501,7 +501,7 @@ This sets the property value for <tt>x</tt> to
<p>
<a name="1">[1]</a> The reason for requiring <a
href="http://www.sgi.com/tech/stl/DefaultConstructible.html">Default
href="http://www.boost.org/sgi/stl/DefaultConstructible.html">Default
Constructible</a> in the <tt>EdgePredicate</tt> and
<tt>VertexPredicate</tt> types is that these predicates are stored
by-value (for performance reasons) in the filter iterator adaptor, and
@@ -526,7 +526,7 @@ num_edges(g))</tt>) which is assumed in many of the algorithms.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -113,7 +113,7 @@ OUT: <tt>OutputIterator result</tt>
The <tt>find_odd_cycle</tt> function finds an odd-length cycle if the graph is
not bipartite. The sequence of vertices producing such a cycle is written
into this iterator. The <tt>OutputIterator</tt> type must be a model of
<a class="external" href="http://www.sgi.com/tech/stl/OutputIterator.html">
<a class="external" href="http://www.boost.org/sgi/stl/OutputIterator.html">
OutputIterator</a>. The graph's vertex descriptor type must be in the set
of value types of the iterator. The final value is returned by the
function. If the graph is bipartite (i.e. no odd-length cycle exists), nothing
+1 -1
View File
@@ -130,7 +130,7 @@ computes the attractive force as <code>dist<sup>2</sup>/k</code>.<br>
IN: <tt>repulsive_force(RepulsiveForce fr)</tt>
<blockquote>
Computes the magnitude of the repulsive force between any two
vertices. The function object <tt>fa</tt> must accept five
vertices. The function object <tt>fr</tt> must accept five
parameters: the two vertex descriptors, <tt>k</tt>, the distance between the
vertices, and the graph. <tt>k</tt> is the square root of the ratio
of the display area to the number of vertices. <br>
+1 -1
View File
@@ -182,7 +182,7 @@ namespace boost {
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -26,7 +26,7 @@ the reader has some previous acquaintance with graph algorithms, this
chapter should be enough to get started. If the reader has no
previous background in graph algorithms we suggest a more thorough
introduction such as <a
href="http://toc.lcs.mit.edu/~clr/">Introduction to Algorithms</a>
href="https://mitpress.mit.edu/algorithms">Introduction to Algorithms</a>
by Cormen, Leiserson, and Rivest.
<P>
+4 -4
View File
@@ -22,7 +22,7 @@ graph_traits&lt;<a href="./Graph.html">Graph</a>&gt;
</H1>
Just like the <a
href="http://www.sgi.com/tech/stl/iterator_traits.html">
href="http://www.boost.org/sgi/stl/iterator_traits.html">
iterators</a> of STL, graphs have <b>associated types</b>. As stated
in the various <a href="./graph_concepts.html">graph concepts</a>, a
graph has quite a few associated types: <tt>vertex_descriptor</tt>,
@@ -83,8 +83,8 @@ The graph type whose associated types are being accessed.
<h3>Model of</h3>
<a
href="http://www.sgi.com/tech/stl/DefaultConstructible.html">DefaultConstructible</a> and
<a href="http://www.sgi.com/tech/stl/Assignable.html">Assignable</a>
href="http://www.boost.org/sgi/stl/DefaultConstructible.html">DefaultConstructible</a> and
<a href="http://www.boost.org/sgi/stl/Assignable.html">Assignable</a>
<h3>Type Requirements</h3>
@@ -247,7 +247,7 @@ of vertices in the graph.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+2 -2
View File
@@ -111,7 +111,7 @@
<h4>Example</h4>
<pre class="code">
<span class="comment">// Define dimension lengths, a 3x3 in this case</span>
<span class="name">boost</span>::<span class="type">array</span>&lt;<span class="keyword">int</span>, <span class="literal">2</span>&gt; lengths = { { <span class="literal">3</span>, <span class="literal">3</span> } };
<span class="name">boost</span>::<span class="type">array</span>&lt;<span class="name">std</span>::<span class="type">size_t</span>, <span class="literal">2</span>&gt; lengths = { { <span class="literal">3</span>, <span class="literal">3</span> } };
<span class="comment">// Create a 3x3 two-dimensional, unwrapped grid graph (Figure 1)</span>
<span class="type">grid_graph</span>&lt;<span class="literal">2</span>&gt; graph(lengths);
@@ -185,7 +185,7 @@ in_edge_at(<span class="name">Traits</span>::<span class="type">vertex_descripto
<span class="keyword">typedef</span> <span class="type">graph_traits</span>&lt;<span class="name">Graph</span>&gt; <span class="name">Traits</span>;
<span class="comment">// Create a 3x3, unwrapped grid_graph (Figure 3)</span>
<span class="name">boost</span>::<span class="type">array</span>&lt;<span class="keyword">int</span>, <span class="literal">2</span>&gt; lengths = { { <span class="literal">3</span>, <span class="literal">3</span> } };
<span class="name">boost</span>::<span class="type">array</span>&lt;<span class="name">std</span>::<span class="type">size_t</span>, <span class="literal">2</span>&gt; lengths = { { <span class="literal">3</span>, <span class="literal">3</span> } };
<span class="name">Graph</span> graph(lengths);
<span class="comment">// Do a round-trip test of the vertex index functions</span>
+2 -2
View File
@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/sh
#=======================================================================
# Copyright 2009 Trustees of Indiana University.
@@ -16,4 +16,4 @@ inkscape --export-png grid_graph_unwrapped.png --export-id g3150 --export-id-onl
inkscape --export-png grid_graph_wrapped.png grid_graph_unindexed.svg
# Indexed, unwrapped
inkscape --export-png grid_graph_indexed.png grid_graph_indexed.svg
inkscape --export-png grid_graph_indexed.png grid_graph_indexed.svg
+1 -1
View File
@@ -231,7 +231,7 @@ Equivalent to the non-named <tt>vertex_index_map</tt> parameter.<br>
<TD nowrap>Copyright &copy; 2004 Trustees of Indiana University</TD><TD>
Jeremiah Willcock, Indiana University (<script language="Javascript">address("osl.iu.edu", "jewillco")</script>)<br>
<A HREF="http://www.boost.org/people/doug_gregor.html">Doug Gregor</A>, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
</TD></TR></TABLE>
+1 -1
View File
@@ -25,7 +25,7 @@ self-loops and redundant circuits caused by parallel edges are enumerated too.
edges are not desired.</p>
<p>The algorithm is described in detail in
<a href="http://complexity.massey.ac.nz/cstn/013/cstn-013.pdf">http://complexity.massey.ac.nz/cstn/013/cstn-013.pdf</a>.</p>
<a href="https://www.researchgate.net/publication/221440635_Enumerating_Circuits_and_Loops_in_Graphs_with_Self-Arcs_and_Multiple-Arcs">https://www.researchgate.net/publication/221440635_Enumerating_Circuits_and_Loops_in_Graphs_with_Self-Arcs_and_Multiple-Arcs</a>.</p>
<h3 id="where-defined">Where defined</h3>
+4 -4
View File
@@ -19,16 +19,16 @@
The Boost Graph Library began its life as the Generic Graph Component
Library (GGCL), a software project at the <a
href="http://www.lsc.nd.edu">Lab for Scientific Computing (LSC)</a> at
href="https://web.archive.org/web/20010516042117/http://www.lsc.nd.edu/">Lab for Scientific Computing (LSC)</a> at
the University of Notre Dame, under the direction of Professor <a
href="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</a>. The Lab's
href="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</a>. The Lab's
research directions include numerical linear algebra, parallel
computing, and software engineering (including generic programming).
<p>
Soon after the Standard Template Library was released, work began at
the LSC to apply generic programming to scientific computing. The <a
href="http://www.lsc.nd.edu/research/mtl">Matrix Template Library</a>
href="https://en.wikipedia.org/wiki/Matrix_Template_Library">Matrix Template Library</a>
(Jeremy Siek's masters thesis) was one of the first projects. Many of
the lessons learned during construction of the MTL were applied to the
design and implementation of the GGCL.
@@ -199,7 +199,7 @@ September 27, 2000.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+2 -2
View File
@@ -97,7 +97,7 @@ The algorithm is due to Howard's iteration policy algorithm, descibed in
<A HREF="./cochet-terrasson98numerical.pdf">[1]</A>.
Ali Dasdan, Sandy S. Irani and Rajesh K.Gupta in their paper
<A HREF="./dasdan-dac99.pdf">Efficient Algorithms for Optimum Cycle Mean and Optimum Cost to Time Ratio
Problems</A>state that this is the most efficient algorithm to the time being (1999).</P>
Problems</A> state that this is the most efficient algorithm to the time being (1999).</P>
<p>
For the convenience, functions <tt>maximum_cycle_mean()</tt> and <tt>minimum_cycle_mean()</tt>
@@ -224,7 +224,7 @@ generates a random graph and computes its maximum cycle ratio.
<P>Copyright &copy; 2006-2009</P>
</TD>
<TD>
<P><A HREF="http://www.lsi.upc.edu/~dmitry">Dmitry
<P><A HREF="https://web.archive.org/web/20081122083634/http://www.lsi.upc.edu/~dmitry">Dmitry
Bufistov</A>, Andrey Parfenov</P>
</TD>
</TR>
+1 -1
View File
@@ -70,7 +70,7 @@ is the target. This function is equivalent to the expression
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -411,7 +411,7 @@ Returns a pair of iterators for the component at <tt>index</tt> where <tt>index<
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -297,7 +297,7 @@ iterator and implements an <a href="./EdgeListGraph.html">Edge List Graph</a>.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -117,7 +117,7 @@ href="../../utility/MultiPassInputIterator.html">Multi-Pass Input Iterator</a>
The inverse adjacency iterator type implements the member functions and
operators required of the <a
href="http://www.sgi.com/tech/stl/RandomAccessIterator.html">Random Access Iterator</a>
href="http://www.boost.org/sgi/stl/RandomAccessIterator.html">Random Access Iterator</a>
concept, except that the <tt>reference</tt> type is the same as the <tt>value_type</tt>
so <tt>operator*()</tt> returns by-value. In addition it has the following constructor:
+1 -1
View File
@@ -25,7 +25,7 @@
\fi
\ifpdf
\newcommand{\stlconcept}[1]{\href{http://www.sgi.com/tech/stl/#1.html}{{\small \textsf{#1}}}}
\newcommand{\stlconcept}[1]{\href{https://boost.org/sgi/stl/#1.html}{{\small \textsf{#1}}}}
\newcommand{\bglconcept}[1]{\href{http://www.boost.org/libs/graph/doc/#1.html}{{\small \textsf{#1}}}}
\newcommand{\pmconcept}[1]{\href{http://www.boost.org/libs/property_map/#1.html}{{\small \textsf{#1}}}}
\newcommand{\myhyperref}[2]{\hyperref[#1]{#2}}
+1 -1
View File
@@ -31,7 +31,7 @@
\fi
\ifpdf
\newcommand{\stlconcept}[1]{\href{http://www.sgi.com/tech/stl/#1.html}{{\small \textsf{#1}}}}
\newcommand{\stlconcept}[1]{\href{https://boost.org/sgi/stl/#1.html}{{\small \textsf{#1}}}}
\newcommand{\bglconcept}[1]{\href{http://www.boost.org/libs/graph/doc/#1.html}{{\small \textsf{#1}}}}
\newcommand{\pmconcept}[1]{\href{http://www.boost.org/libs/property_map/#1.html}{{\small \textsf{#1}}}}
\newcommand{\myhyperref}[2]{\hyperref[#1]{#2}}
+1 -1
View File
@@ -25,7 +25,7 @@
\fi
\ifpdf
\newcommand{\stlconcept}[1]{\href{http://www.sgi.com/tech/stl/#1.html}{{\small \textsf{#1}}}}
\newcommand{\stlconcept}[1]{\href{https://boost.org/sgi/stl/#1.html}{{\small \textsf{#1}}}}
\newcommand{\bglconcept}[1]{\href{http://www.boost.org/libs/graph/doc/#1.html}{{\small \textsf{#1}}}}
\newcommand{\pmconcept}[1]{\href{http://www.boost.org/libs/property_map/#1.html}{{\small \textsf{#1}}}}
\newcommand{\myhyperref}[2]{\hyperref[#1]{#2}}
+1 -1
View File
@@ -111,7 +111,7 @@ This mapping can be used either to speed up the search (as is done by the
default value, which requires that the degrees of <i>v1</i> and <i>v2</i> are
equal) or to impose extra conditions on the result. The
<tt>VertexInvariant1</tt> and <tt>VertexInvariant2</tt> types must model <a
href="http://www.sgi.com/tech/stl/UnaryFunction.html">UnaryFunction</a>, with
href="http://www.boost.org/sgi/stl/UnaryFunction.html">UnaryFunction</a>, with
the argument type of <tt>vertex_invariant1</tt> being <tt>Graph1</tt>'s vertex
descriptor type, the argument type of <tt>vertex_invariant2</tt> being
<tt>Graph2</tt>'s vertex descriptor type, and both functions having integral
+2 -2
View File
@@ -129,7 +129,7 @@ IN: <tt>distance_compare(CompareFunction cmp)</tt>
This function is use to compare distances to determine
which vertex is closer to the source vertex.
The <tt>CompareFunction</tt> type must be a model of
<a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">Binary Predicate</a>
<a href="http://www.boost.org/sgi/stl/BinaryPredicate.html">Binary Predicate</a>
and have argument types that
match the value type of the <tt>WeightMap</tt> property map.<br>
<b>Default:</b> <tt>std::less&lt;DT&gt;</tt> with
@@ -140,7 +140,7 @@ IN: <tt>distance_combine(CombineFunction cmb)</tt>
<blockquote>
This function is used to combine distances to compute the distance
of a path. The <tt>CombineFunction</tt> type must be a model of <a
href="http://www.sgi.com/tech/stl/BinaryFunction.html">Binary
href="http://www.boost.org/sgi/stl/BinaryFunction.html">Binary
Function</a>. Both argument types and the return type of the binary function
must match the value type of the <tt>WeightMap</tt> property map. This operation is required to act as the sum operation for the weight type; in particular, it must be the inverse of the binary <tt>-</tt> operator on that type.<br>
<b>Default:</b> <tt>std::plus&lt;DT&gt;</tt> with
+1 -1
View File
@@ -314,7 +314,7 @@ an <tt>std::vector</tt> of <tt>Topology::point_difference_type</tt>.<br>
<td nowrap>Copyright &copy; 2004, 2010 Trustees of Indiana University</td>
<td><a href="http://www.boost.org/people/doug_gregor.html">Douglas Gregor</a>,
Indiana University (dgregor -at cs.indiana.edu)<br>
<a href="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</a>, Indiana
<a href="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</a>, Indiana
University (<a href=
"mailto:lums@osl.iu.edu">lums@osl.iu.edu</a>)</td>
</tr>
+1 -1
View File
@@ -130,7 +130,7 @@ pair of actor names. As we add vertices to the graph, we'll need to
create a map from actor names to their vertices so that later
appearances of the same actor (on a different edge) can be linked with
the correct vertex in the graph. The <a
href="http://www.sgi.com/tech/stl/Map.html"><TT>std::map</TT></a>
href="http://www.boost.org/sgi/stl/Map.html"><TT>std::map</TT></a>
can be used to implement this mapping.
<P>
+3 -3
View File
@@ -135,7 +135,7 @@ For version 1:
<li> <tt>OutputIterator permutation</tt> &nbsp(OUT) <br>
The new vertex ordering. The vertices are written to the <a
href="http://www.sgi.com/tech/stl/OutputIterator.html">output
href="http://www.boost.org/sgi/stl/OutputIterator.html">output
iterator</a> in their new order. <br>
<b>Python</b>: This parameter is unused in Python. The new vertex
ordering is returned as a Python <tt>list</tt>.
@@ -162,7 +162,7 @@ For version 2:
href="./VertexListGraph.html">VertexListGraph</a>.<br>
<b>Python</b>: The name of this parameter is <tt>graph</tt>.
<li> <tt><a href="http://www.sgi.com/tech/stl/OutputIterator.html">
<li> <tt><a href="http://www.boost.org/sgi/stl/OutputIterator.html">
OutputIterator</a> permutation</tt> &nbsp(OUT) <br>
The new vertex ordering. The vertices are written to the
output iterator in their new order.<br>
@@ -196,7 +196,7 @@ For version 3:
<li> <tt>OutputIterator permutation</tt> &nbsp(OUT) <br>
The new vertex ordering. The vertices are written to the <a
href="http://www.sgi.com/tech/stl/OutputIterator.html">output
href="http://www.boost.org/sgi/stl/OutputIterator.html">output
iterator</a> in their new order.<br>
<b>Python</b>: This parameter is unused in Python. The new vertex
ordering is returned as a Python <tt>list</tt>.
+1 -1
View File
@@ -53,7 +53,7 @@ versions.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+2 -2
View File
@@ -91,7 +91,7 @@ IN: <tt>const Graph&amp; g</tt>
IN: <tt>OutputIterator spanning_tree_edges</tt>
<blockquote>
The edges of the minimum spanning tree are output to this <a
href="http://www.sgi.com/tech/stl/OutputIterator.html">Output
href="http://www.boost.org/sgi/stl/OutputIterator.html">Output
Iterator</a>.<br>
<b>Python</b>: This parameter is not used in Python. Instead, a
@@ -108,7 +108,7 @@ The weight or ``length'' of
each edge in the graph. The <tt>WeightMap</tt> type must be a model
of <a href="../../property_map/doc/ReadablePropertyMap.html">Readable
Property Map</a> and its value type must be <a
href="http://www.sgi.com/tech/stl/LessThanComparable.html">Less Than
href="http://www.boost.org/sgi/stl/LessThanComparable.html">Less Than
Comparable</a>. The key type of this map needs to be the graph's
edge descriptor type.<br>
<b>Default:</b> <tt>get(edge_weight, g)</tt><br>
+2 -2
View File
@@ -41,7 +41,7 @@ call this free function wrapper approach <I>external adaptation</I>.
<P>
One of the more commonly used graph classes is the LEDA parameterized
<a
href="http://www.mpi-sb.mpg.de/LEDA/MANUAL/bgraph.html"><TT>GRAPH</TT></a>
href="https://algorithmic-solutions.info/leda_guide/graphs/param_graph.html"><TT>GRAPH</TT></a>
class&nbsp;[<A HREF="bibliography.html#mehlhorn99:_leda">22</A>]. In
this section we will show how to create a BGL interface for this
class. The first question is which BGL interfaces (or concepts) we
@@ -254,7 +254,7 @@ href="../test/graph.cpp"><TT>test/graph.cpp</TT></a>.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -123,7 +123,7 @@ IN: <tt>const UndirectedGraph&amp; g</tt></p>
<tt>WeightMap</tt> type must be a model of
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable
Property Map</a> and its value type must be <a class="external"
href="http://www.sgi.com/tech/stl/LessThanComparable.html">
href="http://www.boost.org/sgi/stl/LessThanComparable.html">
Less Than Comparable</a> and summable. The key type of this map
needs to be the graph's edge descriptor type.
<b>Default:</b> <tt>get(edge_weight, g)</tt><br>
+163
View File
@@ -0,0 +1,163 @@
<html><head><!--
Copyright 2018 Yi Ji
Use, modification and distribution is subject to 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)
Author: Yi Ji
--><title>Boost Graph Library: Maximum Weighted Matching</title></head>
<body alink="#ff0000" bgcolor="#ffffff" link="#0000ee" text="#000000" vlink="#551a8b">
<img src="../../../boost.png" alt="C++ Boost" height="86" width="277">
<br clear="">
<h1>
<a name="sec:maximum_weighted_matching">Maximum Weighted Matching</a>
</h1>
<pre>
template &lt;typename Graph, typename MateMap&gt;
void maximum_weighted_matching(const Graph&amp; g, MateMap mate);
template &lt;typename Graph, typename MateMap, typename VertexIndexMap&gt;
void maximum_weighted_matching(const Graph&amp; g, MateMap mate, VertexIndexMap vm);
template &lt;typename Graph, typename MateMap&gt;
void brute_force_maximum_weighted_matching(const Graph&amp; g, MateMap mate);
template &lt;typename Graph, typename MateMap, typename VertexIndexMap&gt;
void brute_force_maximum_weighted_matching(const Graph&amp; g, MateMap mate, VertexIndexMap vm);
</pre>
<p>
<a name="sec:weighted_matching">Before you continue, it is recommended to read
about <a href="./maximum_matching.html">maximal cardinality matching</a> first.
A <i>maximum weighted matching</i> of an edge-weighted graph is a matching
for which the sum of the weights of the edges is maximum.
Two different matchings (edges in the matching are colored blue) in the same graph are illustrated below.
The matching on the left is a maximum cardinality matching of size 8 and a maximal
weighted matching of weight sum 30, meaning that is has maximum size over all matchings in the graph
and its weight sum can't be increased by adding edges.
The matching on the right is a maximum weighted matching of size 7 and weight sum 38, meaning that it has maximum
weight sum over all matchings in the graph.
</a></p><p></p><center>
<table border="0">
<tr>
<td><a name="fig:maximal_weighted_matching"><img src="figs/maximal-weighted-match.png"></a></td>
<td width="150"></td>
<td><a name="fig:maximum_weighted_matching"><img src="figs/maximum-weighted-match.png"></a></td>
</tr>
</table>
</center>
<p>
Both <tt>maximum_weighted_matching</tt> and
<tt>brute_force_maximum_weighted_matching</tt> find a
maximum weighted matching in any undirected graph. The matching is returned in a
<tt>MateMap</tt>, which is a
<a href="../../property_map/doc/ReadWritePropertyMap.html">ReadWritePropertyMap</a>
that maps vertices to vertices. In the mapping returned, each vertex is either mapped
to the vertex it's matched to, or to <tt>graph_traits&lt;Graph&gt;::null_vertex()</tt> if it
doesn't participate in the matching. If no <tt>VertexIndexMap</tt> is provided, both functions
assume that the <tt>VertexIndexMap</tt> is provided as an internal graph property accessible
by calling <tt>get(vertex_index, g)</tt>.
<p>
The maximum weighted matching problem was solved by Edmonds in [<a href="bibliography.html#edmonds65:_max_weighted_match">74</a>].
The implementation of <tt>maximum_weighted_matching</tt> followed Chapter 6, Section 10 of [<a href="bibliography.html#lawler76:_comb_opt">20</a>] and
was written in a consistent style with <tt>edmonds_maximum_cardinality_matching</tt> because of their algorithmic similarity.
In addition, a brute-force verifier <tt>brute_force_maximum_weighted_matching</tt> simply searches all possible matchings in any graph and selects one with the maximum weight sum.
</p><h3>Algorithm Description</h3>
Primal-dual method in linear programming is introduced to solve weighted matching problems. Edmonds proved that for any graph,
the maximum number of edges in a matching is equal to the minimum capacity of an odd-set cover; this further enable us to prove a max-min duality theorem for weighted matching.
Let <i>H<sub>k-1</sub></i> denote any graph obtained from G by contracting odd sets of three or more nodes and deleting single nodes,
where the capacity of the family of odd sets (not necessarily a cover of G) is <i>k-1</i>. Let <i>X<sub>k</sub></i> denote any matching containing <i>k</i> edges.
Each edge <i>(i, j)</i> has a weight <i>w<sub>ij</sub></i>. We have:
<math>
max<i><sub>X<sub>k</sub></sub></i> min {<i>w<sub>ij</sub>|(i, j) ϵ X<sub>k</sub></i>} = min<i><sub>H<sub>k-1</sub></sub></i> max {<i>w<sub>ij</sub>|(i, j) ϵ H<sub>k-1</sub></i>}.
</math>
This matching duality theorem gives an indication of how the matching problem should be formulated as a linear programming problem. That is,
the theorem suggests a set of linear inequalities which are satisfied by any matching, and it is anticipated that these inequalities describe a convex polyhedron
with integer vertices corresponding to feasible matchings.
<p>
For <tt>maximum_weighted_matching</tt>, the management of blossoms is much more involved than in the case of <tt>max_cardinality_matching</tt>.
It is not sufficient to record only the outermost blossoms. When an outermost blossom is expanded,
it is necessary to know which blossom are nested immediately with it, so that these blossoms can be restored to the status of the outermost blossoms.
When augmentation occurs, blossoms with strictly positive dual variables must be maintained for use in the next application of the labeling procedure.
<p>
The outline of the algorithm is as follow:
<ol start="0">
<li>Start with an empty matching and initialize dual variables as a half of maximum edge weight.</li>
<li>(Labeling) Root an alternate tree at each exposed node, and proceed to construct alternate trees by labeling, using only edges with zero slack value.
If an augmenting path is found, go to step 2. If a blossom is formed, go to step 3. Otherwise, go to step 4. </li>
<li>(Augmentation) Find the augmenting path, tracing the path through shrunken blossoms. Augment the matching,
correct labels on nodes in the augmenting path, expand blossoms with zero dual variables and remove labels from all base nodes. Go to step 1.</li>
<li>(Blossoming) Determine the membership and base node of the new blossom and supply missing labels for all non-base nodes in the blossom.
Return to step 1.</li>
<li>(Revision of Dual Solution) Adjust the dual variables based on the primal-dual method. Go to step 1 or halt, accordingly.</li>
</ol>
Note that in <tt>maximum_weighted_matching</tt>, all edge weights are multiplied by 4, so that all dual variables always remain as integers if all edge weights are integers.
Unlike <tt>max_cardinality_matching</tt>, the initial matching and augmenting path finder are not parameterized,
because the algorithm maintains blossoms, dual variables and node labels across all augmentations.
The algorithm's time complexity is reduced from <i>O(V<sup>4</sup>)</i> (naive implementation of [<a href="bibliography.html#edmonds65:_max_weighted_match">74</a>])
to <i>O(V<sup>3</sup>)</i>, by a delicate labeling procedure [<a href="bibliography.html#gabow76">75</a>] to avoid re-scanning labels after revision of the dual solution.
Special variables <i>pi, tau, gamma</i> and two arrays <i>critical_edge, tau_idx</i> are introduced for this purpose.
Please refer to [<a href="bibliography.html#lawler76:_comb_opt">20</a>] and code comments for more implementation details.
</p><h3>Where Defined</h3>
<p>
<a href="../../../boost/graph/maximum_weighted_matching.hpp"><tt>boost/graph/maximum_weighted_matching.hpp</tt></a>
</p><h3>Parameters</h3>
IN: <tt>const Graph&amp; g</tt>
<blockquote>
An undirected graph. The graph type must be a model of
<a href="VertexAndEdgeListGraph.html">Vertex and Edge List Graph</a> and
<a href="IncidenceGraph.html">Incidence Graph</a>.
The edge property of the graph <tt>property_map&lt;Graph, edge_weight_t&gt;</tt> must exist and have numeric value type.<br>
</blockquote>
IN: <tt>VertexIndexMap vm</tt>
<blockquote>
Must be a model of <a href="../../property_map/doc/ReadablePropertyMap.html">ReadablePropertyMap</a>, mapping vertices to integer indices.
</blockquote>
OUT: <tt>MateMap mate</tt>
<blockquote>
Must be a model of <a href="../../property_map/doc/ReadWritePropertyMap.html">ReadWritePropertyMap</a>, mapping
vertices to vertices. For any vertex v in the graph, <tt>get(mate,v)</tt> will be the vertex that v is matched to, or
<tt>graph_traits<Graph>::null_vertex()</tt> if v isn't matched.
</blockquote>
<h3>Complexity</h3>
<p>
Let <i>m</i> and <i>n</i> be the number of edges and vertices in the input graph, respectively. Assuming the
<tt>VertexIndexMap</tt> supplied allows constant-time lookup, the time complexity for
<tt>maximum_weighted_matching</tt> is <i>O(n<sup>3</sup>)</i>. For <tt>brute_force_maximum_weighted_matching</tt>, the time complexity is exponential of <i>m</i>.
Note that the best known time complexity for maximum weighted matching in general graph
is <i>O(nm+n<sup>2</sup>log(n))</i> by [<a href="bibliography.html#gabow90">76</a>], but relies on an
efficient algorithm for solving nearest ancestor problem on trees, which is not provided in Boost C++ libraries.
</p><p>
</p><h3>Example</h3>
<p> The file <a href="../example/weighted_matching_example.cpp"><tt>example/weighted_matching_example.cpp</tt></a>
contains an example.
<br>
</p><hr>
<table>
<tbody><tr valign="top">
<td nowrap="nowrap">Copyright © 2018</td><td>
Yi Ji (<a href="mailto:jiy@pku.edu.cn">jiy@pku.edu.cn</a>)<br>
</td></tr></tbody></table>
</body></html>
+4 -4
View File
@@ -56,8 +56,8 @@ template &lt;typename GraphFirst,
typename GraphSecond,
typename <a href="../../property_map/doc/ReadablePropertyMap.html">VertexIndexMapFirst</a>,
typename <a href="../../property_map/doc/ReadablePropertyMap.html">VertexIndexMapSecond</a>,
typename <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">EdgeEquivalencePredicate</a>,
typename <a href="http://www.sgi.com/tech/stl/BinaryFunction.html">VertexEquivalencePredicate</a>,
typename <a href="http://www.boost.org/sgi/stl/BinaryFunction.html">EdgeEquivalencePredicate</a>,
typename <a href="http://www.boost.org/sgi/stl/BinaryFunction.html">VertexEquivalencePredicate</a>,
typename SubGraphCallback&gt;
void mcgregor_common_subgraphs
(const GraphFirst&amp; graph1,
@@ -215,7 +215,7 @@ bool operator()(CorrespondenceMapFirstToSecond correspondence_map_1_to_2,
This function is used to determine if edges
between <tt>graph1</tt> and <tt>graph2</tt> are equivalent.
The <tt>EdgeEquivalencePredicate</tt> type must be a model
of <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">Binary
of <a href="http://www.boost.org/sgi/stl/BinaryPredicate.html">Binary
Predicate</a> and have argument types
of <tt>graph_traits&lt;GraphFirst&gt;::edge_descriptor</tt>
and <tt>graph_traits&lt;GraphSecond&gt;::edge_descriptor</tt>.
@@ -229,7 +229,7 @@ bool operator()(CorrespondenceMapFirstToSecond correspondence_map_1_to_2,
This function is used to determine if vertices
between <tt>graph1</tt> and <tt>graph2</tt> are equivalent.
The <tt>VertexEquivalencePredicate</tt> type must be a model
of <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">Binary
of <a href="http://www.boost.org/sgi/stl/BinaryPredicate.html">Binary
Predicate</a> and have argument types
of <tt>graph_traits&lt;GraphFirst&gt;::vertex_descriptor</tt>
and <tt>graph_traits&lt;GraphSecond&gt;::vertex_descriptor</tt>.
+1 -1
View File
@@ -85,7 +85,7 @@ This does nothing.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -70,7 +70,7 @@ assert(u == opposite(e, v, g));
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -131,7 +131,7 @@ int main()
<TR valign=top>
<TD nowrap>Copyright &copy; 2005</TD><TD>
<A HREF="http://www.boost.org/people/doug_gregor.html">Doug Gregor</A>, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
</TD></TR></TABLE>
+1 -1
View File
@@ -177,7 +177,7 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -173,7 +173,7 @@ IN: <tt>weight_map(WeightMap w_map)</tt>
the graph needs to be usable as the key type for the weight
map. The value type for the map must be
the same as the value type of the distance map, and that type must be <a
href="http://www.sgi.com/tech/stl/LessThanComparable.html">Less Than
href="http://www.boost.org/sgi/stl/LessThanComparable.html">Less Than
Comparable</a>.<br>
<b>Default:</b> <tt>get(edge_weight, g)</tt><br>
<b>Python</b>: Must be an <tt>edge_double_map</tt> for the graph.<br>
+1 -1
View File
@@ -77,7 +77,7 @@ href="../../property_map/doc/property_map.html">property map</a>.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -172,7 +172,7 @@ and <a href="./time_stamper.html"><tt>time_stamper</tt></a>.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR>
+2 -2
View File
@@ -87,7 +87,7 @@ to the <tt>value_type</tt> of the <tt>OutputIterator</tt>.
<TD>
The iterator type used to write out the property values, which must be
a model of <a
href="http://www.sgi.com/tech/stl/OutputIterator.html">OutputIterator</a>.
href="http://www.boost.org/sgi/stl/OutputIterator.html">OutputIterator</a>.
</TD>
<TD>&nbsp;</TD>
</TR>
@@ -188,7 +188,7 @@ and <a href="./time_stamper.html"><tt>time_stamper</tt></a>.
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+2 -2
View File
@@ -21,7 +21,7 @@
<li><a href="http://www.ddj.com/articles/2000/0009/0009toc.htm">Dr. Dobb's Sept. 2000 Article</a></a></li>
<li><a href="http://www.acm.org/pubs/citations/proceedings/oops/320384/p399-siek/">OOPSLA'99 GGCL Paper</a></li>
<li>Lie-Quan Lee's Master's Thesis about GGCL<a href="http://www.lsc.nd.edu/downloads/research/ggcl/papers/thesis.ps">(ps)</a> <a href="http://www.lsc.nd.edu/downloads/research/ggcl/papers/thesis.pdf">(pdf)</a></li>
<li>Lie-Quan Lee's Master's Thesis about GGCL<a href="https://web.archive.org/web/20030824105142/http://www.lsc.nd.edu/downloads/research/ggcl/papers/thesis.ps">(ps)</a> <a href="https://web.archive.org/web/20030824113405/http://www.lsc.nd.edu/downloads/research/ggcl/papers/thesis.pdf">(pdf)</a></li>
<li><a href="http://www.dietmar-kuehl.de/generic-graph-algorithms.pdf">Dietmar K&uuml;hl's Master's Thesis: Design Pattern for the Implementation of Graph Algorithms</a></li>
<li>ISCOPE'99 Sparse Matrix Ordering <a href="./iscope99.pdf">(pdf)</a></li>
<li><a href="http://www.oonumerics.org/tmpw00/">C++ Template Workshop 2000</a>, Concept Checking</li>
@@ -37,7 +37,7 @@
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+2 -2
View File
@@ -36,7 +36,7 @@
using the BGL in Python.</p>
<p>The Python bindings for the BGL are now part of a <a
href="http://www.osl.iu.edu/~dgregor/bgl-python/">separate
href="https://web.archive.org/web/20121030074643/http://www.osl.iu.edu:80/~dgregor/bgl-python/">separate
project</a>. They are no longer available within the Boost
tree.</p>
<HR>
@@ -44,7 +44,7 @@
<TR valign=top>
<TD nowrap>Copyright &copy; 2005</TD><TD>
<A HREF="http://www.boost.org/people/doug_gregor.html">Doug Gregor</A>, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
</TD></TR></TABLE>
</body>
+1 -1
View File
@@ -433,7 +433,7 @@ the <tt>Edgelist</tt> and <tt>VertexList</tt></a>). The <tt>directedS</tt> type
specifies that the graph should be directed (versus undirected). The following
code shows the specification of the graph type and then the initialization of
the graph. The edges and weights are passed to the graph constructor in the form
of iterators (a pointer qualifies as a <a href="http://www.sgi.com/tech/stl/RandomAccessIterator.html">RandomAccessIterator</a>).
of iterators (a pointer qualifies as a <a href="http://www.boost.org/sgi/stl/RandomAccessIterator.html">RandomAccessIterator</a>).
<p>&nbsp;
<pre>
typedef adjacency_list&lt;listS, vecS, directedS,
+7 -7
View File
@@ -123,7 +123,7 @@ in:<br>
Desaulniers, G.; Desrosiers, J.; Solomon, M. (eds.) (2005):<br>
Column Generation<br>
Springer, New York, pp. 33&ndash;65<br>
(available online <a href="http://logistik.bwl.uni-mainz.de/Dateien/or_2004-01.pdf">
(available online <a href="https://www.researchgate.net/publication/227142556_Shortest_Path_Problems_with_Resource_Constraints">
here</a>)
<p>
@@ -161,7 +161,7 @@ A type modelling the ResourceContainer concept is used to store the current reso
<p>
<b>Refinement of</b><br>
<a href="http://www.sgi.com/tech/stl/DefaultConstructible.html">DefaultConstructible</a>, <a href="../../utility/CopyConstructible.html">CopyConstructible</a>, <a href="http://www.sgi.com/tech/stl/Assignable.html">Assignable</a>, <a href="http://www.sgi.com/tech/stl/LessThanComparable.html">LessThanComparable</a>, <a href="http://www.sgi.com/tech/stl/EqualityComparable.html">EqualityComparable</a>
<a href="http://www.boost.org/sgi/stl/DefaultConstructible.html">DefaultConstructible</a>, <a href="../../utility/CopyConstructible.html">CopyConstructible</a>, <a href="http://www.boost.org/sgi/stl/Assignable.html">Assignable</a>, <a href="http://www.boost.org/sgi/stl/LessThanComparable.html">LessThanComparable</a>, <a href="http://www.boost.org/sgi/stl/EqualityComparable.html">EqualityComparable</a>
</p>
<p>
@@ -262,7 +262,7 @@ Moreover, a reference to a type modelling the ResourceExtensionFunction concept
</p>
<p>
Hence, a type modelling the ResourceExtensionFunction concept is likely to be a function or a <a href="http://www.sgi.com/tech/stl/functors.html">function object</a>.
Hence, a type modelling the ResourceExtensionFunction concept is likely to be a function or a <a href="http://www.boost.org/sgi/stl/functors.html">function object</a>.
</p>
<p>
@@ -286,7 +286,7 @@ A model of DominanceFunction is used to specify a dominance relation between two
<p>
<b>Refinement of</b><br>
<a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">BinaryPredicate</a>
<a href="http://www.boost.org/sgi/stl/BinaryPredicate.html">BinaryPredicate</a>
</p>
<p>
@@ -320,7 +320,7 @@ This concept defines the visitor interface for <tt>r_c_shortest_paths</tt>. A us
<p>
<b>Refinement of</b><br>
<a href="http://www.sgi.com/tech/stl/DefaultConstructible.html">DefaultConstructible</a>, <a href="../../utility/CopyConstructible.html">CopyConstructible</a>
<a href="http://www.boost.org/sgi/stl/DefaultConstructible.html">DefaultConstructible</a>, <a href="../../utility/CopyConstructible.html">CopyConstructible</a>
</p>
<p>
@@ -458,11 +458,11 @@ An object specifying the initial resource consumptions at vertex <tt>s</tt>. The
</blockquote>
IN: <tt>Resource_Extension_Function&amp; ref</tt>
<blockquote>
A <a href="http://www.sgi.com/tech/stl/functors.html">function object</a> or function pointer or function specifying how a label is to be extended along an arc. The type <tt>Resource_Extension_Function</tt> must be a model of the ResourceExtensionFunction concept.
A <a href="http://www.boost.org/sgi/stl/functors.html">function object</a> or function pointer or function specifying how a label is to be extended along an arc. The type <tt>Resource_Extension_Function</tt> must be a model of the ResourceExtensionFunction concept.
</blockquote>
IN: <tt>Dominance_Function&amp; dominance</tt>
<blockquote>
A <a href="http://www.sgi.com/tech/stl/functors.html">function object</a> or function pointer or function specifying a dominance relation between two labels. The type <tt>Dominance_Function</tt> must be a model of the DominanceFunction concept.
A <a href="http://www.boost.org/sgi/stl/functors.html">function object</a> or function pointer or function specifying a dominance relation between two labels. The type <tt>Dominance_Function</tt> must be a model of the DominanceFunction concept.
</blockquote>
IN: <tt>Label_Allocator la</tt>
<blockquote>
+1 -1
View File
@@ -151,7 +151,7 @@ IN: <tt>weight_map(WeightMap weight)</tt>
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)<br>
<A HREF="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</A>,
<A HREF="https://homes.cs.washington.edu/~al75">Andrew Lumsdaine</A>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+1 -1
View File
@@ -65,7 +65,7 @@ int read_dimacs_min_cut(Graph&amp; g,
</pre>
<p>
These functions read a BGL graph object from a max-flow or min-cut problem description in extended dimacs format. (see <a href="http://www.avglab.com/andrew/CATS/maxflow_formats.htm"><TT>Goldberg's site</TT></a> for more information). For each edge found in the
These functions read a BGL graph object from a max-flow or min-cut problem description in extended dimacs format. (see <a href="https://web.archive.org/web/20120102213028/http://www.avglab.com/andrew/CATS/maxflow_formats.htm"><TT>Goldberg's site</TT></a> for more information). For each edge found in the
file an additional reverse_edge is added and set in the reverse_edge map. For
max-flow problems, source and sink vertex descriptors are set according to the
dimacs file.
+1 -1
View File
@@ -55,7 +55,7 @@ vertex property map named <tt class="docutils literal"><span class="pre">node_id
<dt>Requirements:</dt>
<dd><ul class="first last simple">
<li>The type of the graph must model the <a class="reference external" href="MutableGraph.html">Mutable Graph</a> concept.</li>
<li>The type of the iterator must model the <a class="reference external" href="http://www.sgi.com/tech/stl/InputIterator.html">Input Iterator</a>
<li>The type of the iterator must model the <a class="reference external" href="http://www.boost.org/sgi/stl/InputIterator.html">Input Iterator</a>
concept.</li>
<li>The property map value types must be default-constructible.</li>
</ul>

Some files were not shown because too many files have changed in this diff Show More