Compare commits

...

568 Commits

Author SHA1 Message Date
Beman Dawes 84afcca5ff Release 1.43.0 beta 1
[SVN r61461]
2010-04-21 14:13:35 +00:00
Jeremiah Willcock eb36987fec Merged r61326 (small bug fix) from trunk
[SVN r61359]
2010-04-18 14:46:58 +00:00
Jeremiah Willcock ce5aba9799 Merged r61231 and r61232 from trunk
[SVN r61233]
2010-04-12 21:08:02 +00:00
Jeremiah Willcock ae1242ca4a Changed to Boost.Range for duplicate algorithms, merging the rest of r60919 from trunk
[SVN r61084]
2010-04-05 21:16:50 +00:00
Jeremiah Willcock 7b548b372f Applied changes r58876, r59133, r59134, r59628, r60078, r60079, r60126, r60127, r60196, r60197, r60198, r60365, r60366, r60384, r60385, r60472, r60485, r60610, r60611, r60651, r60769, r60770, r60899, r60900, r60916, r60919, r60920, r60958, r60998, r60999, r61000 from trunk, except for changes to <boost/detail/algorithm.hpp> which are waiting for Boost.Range algorithms to be merged; added find_if to <boost/detail/algorithm.hpp>
[SVN r61001]
2010-04-02 15:25:11 +00:00
Jeremiah Willcock afab978e75 Merged r59005 from trunk, commenting out debugging code
[SVN r59031]
2010-01-15 10:30:32 +00:00
Jeremiah Willcock aec5b30a0f Merged r58783 from trunk, fixing doc typo
[SVN r58784]
2010-01-07 00:17:39 +00:00
Jeremiah Willcock 9d0640b614 Merged changes from trunk that are going into 1.42.0
[SVN r58554]
2009-12-29 03:50:53 +00:00
Jeremiah Willcock e553d1acf8 Merged r57412 (Removed obsolete LICENSE file) from trunk
[SVN r57414]
2009-11-05 17:44:05 +00:00
Troy D. Straszheim 6a287972d4 rm cmake from the release branch before it goes out broken. Policy dictates that you never commit to release, you commit to trunk and merge to release.
[SVN r56941]
2009-10-17 01:10:45 +00:00
Andrew Sutton bc3a645196 Merging r56922 from trunk. Removes FP comparison to avoid asserts when they're
inaccurate.


[SVN r56923]
2009-10-16 15:15:52 +00:00
Jeremiah Willcock 801a11bf4a Merged in changes from trunk for Boost.Graph and Boost.PropertyMap. Includes
r56013, r56014, r56015, r56016, r56017, r56089, r56097, r56116, r56117, r56126,
r56127, r56128, r56140, r56147, r56300, r56301, r56339, r56360, r56454, r56473,
r56563, r56651, r56654, r56658, r56682, r56732, r56796, r56855, r56856, r56868,
r55667, r56860, r55473, r55507, r55528, r55749, r56147, r55723, r56109, r56859,
and r55780.


[SVN r56881]
2009-10-15 20:40:46 +00:00
Jeremiah Willcock 07671f91e3 Merged c56654 from trunk
[SVN r56791]
2009-10-13 16:40:37 +00:00
Jeremiah Willcock 1ef53b2d50 Fixed missing headers (merged over from trunk)
[SVN r55508]
2009-08-10 17:57:42 +00:00
Jeremiah Willcock 1a4e9ef4ad Copied over fixed docs from trunk
[SVN r55506]
2009-08-10 17:35:22 +00:00
Jeremiah Willcock 33af3494f7 Merged in changes from trunk
[SVN r55467]
2009-08-08 18:19:53 +00:00
Jeremiah Willcock a1d6cf2106 Merged r55265, r55266, r55355, and r55356 from trunk, hopefully fixing VC++ problems; removed VC++ from csr_graph_test known failures for regression tests
[SVN r55357]
2009-08-02 02:46:12 +00:00
Jeremiah Willcock 4af9462b74 Merged in r55353 from trunk
[SVN r55354]
2009-08-02 02:25:44 +00:00
Jeremiah Willcock 1acdecb32f Merged in r55156 from trunk; fixes to ER generator for large-scale graphs
[SVN r55157]
2009-07-25 23:30:30 +00:00
Jeremiah Willcock 30d0e0ea2a Applied r55027 from trunk, except cycle_ratio_example.cpp which was already fixed
[SVN r55045]
2009-07-20 15:07:14 +00:00
Jeremiah Willcock 9a9bd728e7 Added note about bug in component_index; refs #3250
[SVN r54846]
2009-07-09 23:21:58 +00:00
Andrew Sutton 06c0e7e505 Merged doc fix. Addressing #3191.
[SVN r54766]
2009-07-07 12:31:50 +00:00
Jeremiah Willcock 7552f02d05 Merged patches from messages 55-57 of #3134, plus r54737; refs #3134
[SVN r54738]
2009-07-07 00:32:10 +00:00
Jeremiah Willcock b0e4e9fa01 Merged patches mentioned in comments 34-53 from ticket 3134 into release branch; refs #3134
[SVN r54540]
2009-06-30 17:08:49 +00:00
Jeremiah Willcock 872308b277 Merged in commits on trunk mentioned in comments 1-32 of #3134, plus r54059 not listed there; refs #3134
[SVN r54064]
2009-06-18 19:34:25 +00:00
Jeremiah Willcock d819683bf3 Rebuilt docs from RST files with correct path to rst.css; added script to do this; removed unused copy of RST stylesheet
[SVN r53803]
2009-06-12 00:36:21 +00:00
Jeremiah Willcock dd5da5d657 Merged over Parallel BGL from trunk, merged over many BGL and property map changes from trunk
[SVN r53753]
2009-06-08 15:45:46 +00:00
Andrew Sutton 016779276c Removing experimental headers. To be worked on later.
[SVN r53717]
2009-06-07 11:32:51 +00:00
Jeremiah Willcock 93dc2b2c0d Changed to shared_array_property_map
[SVN r53656]
2009-06-05 20:09:23 +00:00
Jeremiah Willcock 43b99f3fbe Reverted old version of CSR graph for compatibility, with a #define to switch between the modes; cleaned up interface of new CSR graph; fixed tests and docs accordingly
[SVN r53655]
2009-06-05 18:21:42 +00:00
Jeremiah Willcock 77b148e6db Applied patches from ticket #900; fixes #900
[SVN r53650]
2009-06-05 01:47:37 +00:00
Andrew Sutton 3d07d486b2 Re-added the exterior property labeling framework under a different name
[SVN r53556]
2009-06-01 21:44:35 +00:00
Jeremiah Willcock ee35a986a7 Changed new-style named parameter code for BGL to use shared_array_property_map, greatly simplifying interface
[SVN r53481]
2009-05-31 04:20:52 +00:00
Jeremiah Willcock 8b185359ef Fixed links to property_map library
[SVN r53475]
2009-05-31 01:32:55 +00:00
Jeremiah Willcock c9ac66d0d8 Fixed warnings
[SVN r53404]
2009-05-29 18:12:24 +00:00
Jeremiah Willcock 360e769758 Changed template parameter name to un-confuse VC 10
[SVN r53399]
2009-05-29 17:20:15 +00:00
Jeremiah Willcock c4715738db Fixed warning by removing unused variables
[SVN r53397]
2009-05-29 16:53:09 +00:00
Jeremiah Willcock b35856b2f3 Added patch from Michael Hansen
[SVN r53396]
2009-05-29 16:52:58 +00:00
Andrew Sutton dafc6fbb2b Finished basic support for local/global property references for old-style
properties. Actually adding the test file today.


[SVN r53369]
2009-05-28 22:20:48 +00:00
Jeremiah Willcock 1a184e4e2e Added more changes from Michael Hansen
[SVN r53349]
2009-05-28 17:17:49 +00:00
Andrew Sutton f789831ba9 Removing subgraph props from build.
[SVN r53341]
2009-05-28 11:35:12 +00:00
Jeremiah Willcock dfb88dedb4 Fixed conversion of parameters after end-of-list marker, as used in strong_components
[SVN r53329]
2009-05-27 22:37:56 +00:00
Jeremiah Willcock 686376231a Added more updates, docs, and tests from Michael Hansen
[SVN r53327]
2009-05-27 20:54:24 +00:00
Andrew Sutton 791a5f0e72 Augmenting property lookup strategies for subgraphs.
[SVN r53289]
2009-05-26 22:22:55 +00:00
Jeremiah Willcock 863b976726 Fixed bug in default for distance_combine
[SVN r53287]
2009-05-26 19:28:31 +00:00
Andrew Sutton f72b7b9d1d Modifications to subgraph, graph testing framework.
[SVN r53286]
2009-05-26 20:06:07 +00:00
Jeremiah Willcock bec5451742 Fixed bad syntax
[SVN r53284]
2009-05-26 16:11:25 +00:00
Jeremiah Willcock f8960081b2 Added no-color-map Dijkstra to test
[SVN r53283]
2009-05-26 16:10:45 +00:00
Jeremiah Willcock 186d6baaaa Added no-color-map version of Dijkstra's algorithm from Michael Hansen
[SVN r53282]
2009-05-26 15:42:40 +00:00
Jeremiah Willcock e7054fb090 Fixed handling of lex errors at end of input
[SVN r53269]
2009-05-26 01:13:36 +00:00
Jeremiah Willcock e9709979de Added support for HTML identifiers
[SVN r53268]
2009-05-26 01:08:48 +00:00
Jeremiah Willcock c5bcc31f22 Fixed strict graph support
[SVN r53265]
2009-05-26 00:10:22 +00:00
Jeremiah Willcock 1b46340737 Added backslash-newline as a form of whitespace outside strings
[SVN r53264]
2009-05-25 23:59:45 +00:00
Jeremiah Willcock 8dd497a9f1 Changed new GraphViz parser to be less generic (so it can be built as a binary); fixed subgraph issues by doing a lot of tests on GraphViz itself and restructuring a lot of the parser; made docs only point to new parser and made old one not build by default (although it is not removed)
[SVN r53237]
2009-05-25 05:38:56 +00:00
Jeremiah Willcock 39eda77bb0 Changed to Boost.Parameter for DFS as a test but kept old interface; added a lot of helper code to make that easier
[SVN r53226]
2009-05-24 05:41:32 +00:00
Jeremiah Willcock 0fe3f9f7d7 Used macros to simplify code
[SVN r53222]
2009-05-24 00:31:52 +00:00
Jeremiah Willcock 025ae1f7b1 Changed to standard Boost reference_wrapper rather than wrap_ref
[SVN r53221]
2009-05-23 23:30:31 +00:00
Jeremiah Willcock 268d57b5f8 Added graph properties to adjacency_matrix; fixed constructors to match documentation; fixes #875
[SVN r53217]
2009-05-23 18:07:02 +00:00
Jeremiah Willcock 5279b7e743 Fixed typos
[SVN r53216]
2009-05-23 17:32:43 +00:00
Jeremiah Willcock e18f677885 Changed GraphML writer to escape strings; added test of this; fixes #2567
[SVN r53213]
2009-05-23 17:16:20 +00:00
Jeremiah Willcock 615f47676b Reduced graph sizes to decrease test run time; fixes #2308
[SVN r53210]
2009-05-23 16:22:14 +00:00
Jeremiah Willcock bdf6e6c832 Fixed typos in BGL index; fixes #3063 and #3065
[SVN r53191]
2009-05-22 21:33:16 +00:00
Andrew Sutton be6033bbb8 Added overloads to subgraph to work with const bundled property map.
[SVN r53174]
2009-05-22 12:50:07 +00:00
Andrew Sutton c2b83032f8 Deprecated use of graph_detail::is_same. Removed usage from visitors
header, and tagged the defining file with the #warning.


[SVN r53151]
2009-05-21 14:33:18 +00:00
Jeremiah Willcock f925853bb5 Fixed almost all tab and min/max issues found by inspect tool
[SVN r53142]
2009-05-20 19:41:20 +00:00
Andrew Sutton 00211e9135 Redistributing mutability traits specializations to specific files in order
to avoid unnecessary includes.


[SVN r53136]
2009-05-20 17:07:49 +00:00
Andrew Sutton 5080ba19df Added concept checks to the interface testing harness.
[SVN r53135]
2009-05-20 16:54:46 +00:00
Andrew Sutton 6fd494aec2 Added a test to verify a bug from Dmitry Bufistov. Built in some output to
help debug the graph testing framework.


[SVN r53134]
2009-05-20 16:06:13 +00:00
Andrew Sutton 72769b9017 Whitespace and commenting. Added mutability traits to subgraph.
[SVN r53133]
2009-05-20 16:05:05 +00:00
Andrew Sutton 71c8ff92a2 Added copyright/licence.
[SVN r53129]
2009-05-20 14:41:03 +00:00
Jürgen Hunold 31b9be10a4 Suppress "unused variable" warning,
[SVN r53114]
2009-05-19 19:15:46 +00:00
Jeremiah Willcock 754f3b92ed Fixed redefinition error from bug #3048
[SVN r53109]
2009-05-19 14:43:02 +00:00
Andrew Sutton a1d00ed07b Fixing bug in labeled graph.
[SVN r53103]
2009-05-19 00:11:08 +00:00
Andrew Sutton c4167010e3 Added copyright/licence infor to files.
[SVN r53102]
2009-05-18 23:55:22 +00:00
Jeremiah Willcock 92e58bf5eb Changed names of some property maps to match code; fixes #2320
[SVN r53093]
2009-05-18 17:30:27 +00:00
Jeremiah Willcock c9fc501377 Added new Graphviz parser (recursive descent); does not support subgraphs in edges yet
[SVN r53092]
2009-05-18 17:27:15 +00:00
Jeremiah Willcock cf6051cbfe Replaced broken example in docs with working version from example directory, fixes #3016
[SVN r52994]
2009-05-14 14:50:20 +00:00
Andrew Sutton 3808741d30 Updated labeled graph test to new labeled graph interface.
[SVN r52987]
2009-05-14 12:41:55 +00:00
Andrew Sutton 3217880ec2 Removing example from build.
[SVN r52982]
2009-05-14 00:42:13 +00:00
Jeremiah Willcock f1c6d7b56f Added <stdio.h>, fixes #3024
[SVN r52980]
2009-05-13 22:22:47 +00:00
Andrew Sutton 6365853620 Removing missing file from build.
[SVN r52978]
2009-05-13 21:57:42 +00:00
Andrew Sutton ebc735f49e Added missing labeled graph file.
[SVN r52964]
2009-05-13 11:49:42 +00:00
Jeremiah Willcock acfe2b5d90 Added docs for in-place construction
[SVN r52940]
2009-05-12 17:20:55 +00:00
Jeremiah Willcock c0baa8282c Corrected name of sorting algorithm used
[SVN r52939]
2009-05-12 17:05:45 +00:00
Jeremiah Willcock 827270f597 Added in-place construction of CSR graphs from separate, mutable vectors of sources and targets
[SVN r52938]
2009-05-12 17:01:09 +00:00
Andrew Sutton da1172f268 Cleaning up some build issues in the imoprted examples.
[SVN r52918]
2009-05-11 17:45:47 +00:00
Andrew Sutton 21526c830a Added a function to help debugging during testing.
[SVN r52917]
2009-05-11 17:44:17 +00:00
Andrew Sutton ecdbf602d9 Added missing test file
[SVN r52916]
2009-05-11 17:43:48 +00:00
Andrew Sutton c192807ea7 Added a legitimate graph testing framework.
[SVN r52915]
2009-05-11 17:43:24 +00:00
Andrew Sutton 817f324a13 Added a new labeled graph adaptor that maps vertices to user-defined
key types.


[SVN r52914]
2009-05-11 17:42:10 +00:00
Andrew Sutton c8f3f9b06b Fixing a number of bugs with the declaration of graph parameters.
Fixed an edge-counting bug in directed_graph::remove_vertex.


[SVN r52912]
2009-05-11 17:40:00 +00:00
Andrew Sutton d119620775 WS cleanup
[SVN r52911]
2009-05-11 17:39:08 +00:00
Andrew Sutton 863b23408c WS cleanup.
[SVN r52910]
2009-05-11 17:37:47 +00:00
Andrew Sutton f6b51a43a2 Abstracted a set of metafunctions that can be used to deduce vertex
and edge property types for graph adaptors.


[SVN r52909]
2009-05-11 17:37:16 +00:00
Andrew Sutton c09fa80aca Better integrating the null map.
[SVN r52908]
2009-05-11 17:36:18 +00:00
Andrew Sutton 7ade369d3e Added a new traits framework fro determining the mutability of graph
types. This is used extensively in the new testing framework.


[SVN r52907]
2009-05-11 17:35:03 +00:00
Andrew Sutton c6f5a9b984 Added a (large) number of graph traits or metafunctions that can be used for
tag dispatching or determining ct properties of graphs.


[SVN r52906]
2009-05-11 17:33:26 +00:00
Andrew Sutton b43a2ff6cc Added a metafunction to determine if a property is no_property.
[SVN r52905]
2009-05-11 17:32:13 +00:00
Andrew Sutton e7914b3b7a Added a specialization of retag_property_list that will correctly retag
bundled properties given in "property form".


[SVN r52902]
2009-05-11 12:58:37 +00:00
Jeremiah Willcock f8f08b8d46 Added boost:: qualifications to next, using patch from bug 3013, fixing #3013
[SVN r52890]
2009-05-11 01:17:25 +00:00
Andrew Sutton 450b60114c Added missing typedef for graph_property_type to adjacency_matrix class.
[SVN r52563]
2009-04-23 15:33:34 +00:00
Andrew Sutton 534e7f6acd Added preliminary version of transitive_reduction. This has no test or
documentation, and needs to be thoroughly reviewed.


[SVN r52562]
2009-04-23 14:19:19 +00:00
Andrew Sutton 23058f4e1c Merging performance update from Jongsoo Park into release (r52506, r52512).
[SVN r52561]
2009-04-23 14:04:59 +00:00
Jeremiah Willcock 16e79e3bc5 Changed to BSL (per email from Michael Drexl), fixing last inspection issue in BGL
[SVN r52539]
2009-04-22 14:35:06 +00:00
Jeremiah Willcock 8e7b8bb95c Merged in changes from trunk (fixed HTML comment syntax, added entry for r_c_shortest_paths)
[SVN r52537]
2009-04-22 13:22:55 +00:00
Jeremiah Willcock ce04079e62 Changed bogus HTML comment syntax
[SVN r52530]
2009-04-21 20:15:59 +00:00
Andrew Sutton ee18592d0f Reordering headers.
[SVN r52512]
2009-04-20 14:58:50 +00:00
Andrew Sutton 549db6db29 Importing null (no-op) property map from SOC/2007.
[SVN r52510]
2009-04-20 14:49:29 +00:00
Andrew Sutton c57722a10f Migrating all examples into example directory
[SVN r52509]
2009-04-20 14:34:59 +00:00
Andrew Sutton a18ee8efa5 Adding copyright information.
[SVN r52508]
2009-04-20 13:50:25 +00:00
Jeremiah Willcock 6995f7fb7e Added license and copyright information
[SVN r52507]
2009-04-20 13:45:08 +00:00
Andrew Sutton d0aeb0072c Applied performance patch from Jongsoo Park.
[SVN r52506]
2009-04-20 13:43:43 +00:00
Jeremiah Willcock 5e86165add Fixed tab
[SVN r52476]
2009-04-19 01:56:03 +00:00
Jeremiah Willcock b4b0ec400b "Mike Jackson" -> "Michael Jackson" in copyright messages
[SVN r52475]
2009-04-18 23:59:45 +00:00
Jeremiah Willcock 2b2061df1d Renamed file to avoid problems with inspect tool
[SVN r52471]
2009-04-18 17:53:12 +00:00
Jeremiah Willcock 7895ca9e8f Relicensed files/added copyright info based on permissions from file authors
[SVN r52470]
2009-04-18 16:17:36 +00:00
Jeremiah Willcock 9b25481ac8 Trying to fix VC++ issue with overloading
[SVN r52443]
2009-04-17 15:40:34 +00:00
Andrew Sutton 704e2a0894 Added missing copyright info for test files.
[SVN r52403]
2009-04-15 12:24:21 +00:00
Jeremiah Willcock 01b30ee264 Fixed inspection problems
[SVN r52336]
2009-04-11 17:01:34 +00:00
Jeremiah Willcock 519192a2b8 Merged in code and docs from Parallel BGL; CMake-based build system for tests and examples and docs is not working; src and doc can be built with bjam
[SVN r52313]
2009-04-11 01:33:02 +00:00
Jeremiah Willcock 44a6ffef17 Trying to fix CSR constructor
[SVN r52303]
2009-04-10 18:55:45 +00:00
Jeremiah Willcock a836552002 Trying to fix CSR constructor
[SVN r52302]
2009-04-10 18:51:48 +00:00
Jeremiah Willcock faeb40f7c4 Merged headers and source files (but not examples, tests, or docs) from Parallel BGL
[SVN r52300]
2009-04-09 21:10:55 +00:00
Jeremiah Willcock f09e7ab08c Fixed use of undefined function log2
[SVN r52297]
2009-04-09 15:41:38 +00:00
Jeremiah Willcock 0d65535a49 Fixed broken link
[SVN r52296]
2009-04-09 15:29:14 +00:00
Jeremiah Willcock e674c8b9c7 Replaced non-ASCII names with ASCII approximations
[SVN r52295]
2009-04-09 15:27:50 +00:00
Jeremiah Willcock 954100837b Merged more changes (to Dijkstra dispatching) from PBGL
[SVN r52276]
2009-04-09 03:03:44 +00:00
Jeremiah Willcock 809904f268 Added construction of CSR graph from an unsorted list of edges; removed property that targets of out-edges of a single vertex are sorted; removed edge and edge_range functions because they are not supportable under that model; changed tests and docs accordingly
[SVN r52275]
2009-04-09 00:50:23 +00:00
Jeremiah Willcock 39ffc159eb Added dot product
[SVN r52274]
2009-04-09 00:48:56 +00:00
Jeremiah Willcock 0f708da558 Changed some uses of operator[] to get() to reduce property map requirements
[SVN r52273]
2009-04-09 00:48:35 +00:00
Jeremiah Willcock cbbfe23b81 Added METIS reader test from Nick Edmonds
[SVN r52244]
2009-04-07 21:05:25 +00:00
Jeremiah Willcock cd2f3a3a5c Applied change from Dementyev Maxim, fixes #2920
[SVN r52230]
2009-04-07 16:08:58 +00:00
Jeremiah Willcock 03532e0d20 Fixes #402
[SVN r52229]
2009-04-07 16:06:02 +00:00
Jeremiah Willcock 0cb233c412 Fixed types from bug #2480
[SVN r52228]
2009-04-07 15:53:05 +00:00
Jeremiah Willcock 8d4c3cc7d6 Moved property map library into property_map/ directory; made old files into stubs with #warnings; converted uses and docs of property map library to use new names
[SVN r52226]
2009-04-07 01:28:38 +00:00
Jeremiah Willcock a2843c2352 Added copyright and license info
[SVN r52220]
2009-04-06 20:48:42 +00:00
Jeremiah Willcock 1c52b10253 Fixed spelling
[SVN r52219]
2009-04-06 17:09:50 +00:00
Jeremiah Willcock 0960281a15 Fixed documentation
[SVN r52218]
2009-04-06 17:05:00 +00:00
Jeremiah Willcock 891cf5584c Fixed bug
[SVN r52217]
2009-04-06 16:59:52 +00:00
Jeremiah Willcock 0dfbf04a75 Added generator_test from Nick Edmonds
[SVN r52216]
2009-04-06 16:59:38 +00:00
Jeremiah Willcock 0185fdf67e Added enable_if to match PBGL
[SVN r52215]
2009-04-06 16:53:08 +00:00
Jeremiah Willcock aec4a0f301 Removed include of distributed generator and blank line
[SVN r52214]
2009-04-06 16:52:47 +00:00
Jeremiah Willcock cdde244b46 Made some things public for VisualAge C++
[SVN r52213]
2009-04-06 15:19:56 +00:00
Jeremiah Willcock 63fae9d658 Fixed regression test errors and warnings
[SVN r52172]
2009-04-04 20:02:25 +00:00
Jeremiah Willcock 803a8be664 Fully qualifying std::sqrt to fix compile errors, and removing "using" statements that are never used
[SVN r52158]
2009-04-03 14:57:27 +00:00
Jeremiah Willcock 43eed0a3ba Trying to fix Sun CC 5.9 error by fully qualifying root_two
[SVN r52157]
2009-04-03 14:55:01 +00:00
Jeremiah Willcock f1677c439a Fixed float->int warnings
[SVN r52156]
2009-04-03 14:54:10 +00:00
Jeremiah Willcock 8803f55af9 Merged in more changes from Parallel BGL
[SVN r52149]
2009-04-03 00:23:42 +00:00
Jeremiah Willcock 3e3b80e5c1 Fixed min/max inspection reports
[SVN r52140]
2009-04-02 19:22:38 +00:00
Jeremiah Willcock bae3f3950a Removed tabs
[SVN r52139]
2009-04-02 18:49:28 +00:00
Jeremiah Willcock c6035b97e6 Removed uses of drand48() in Fruchterman-Reingold layout
[SVN r52138]
2009-04-02 18:17:38 +00:00
Jeremiah Willcock 5b53e4e6e8 Generalized layout algorithms to use extended version of topology objects from Gursoy-Atun layout; Kamada-Kawai now supports 3-D; random layout supports arbitrary topologies
[SVN r52137]
2009-04-02 17:59:22 +00:00
Jeremiah Willcock 7ce44fc213 Removed #if 0 code
[SVN r52117]
2009-04-01 18:49:52 +00:00
Jeremiah Willcock cef7692b91 Merged more changes from Parallel BGL
[SVN r52116]
2009-04-01 18:07:00 +00:00
Jeremiah Willcock 5a3b472a50 First batch of merges from Parallel BGL
[SVN r52110]
2009-04-01 16:03:21 +00:00
Jeremiah Willcock eaf4275c61 Renamed some functions to work better on some compilers
[SVN r52108]
2009-04-01 16:01:43 +00:00
Daniel James a5a3991c22 Merged revisions 45283,48266 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r45283 | danieljames | 2008-05-11 14:49:20 +0100 (Sun, 11 May 2008) | 1 line
  
  Quote href values - our tools don't support unquoted values.
........
  r48266 | danieljames | 2008-08-20 20:32:23 +0100 (Wed, 20 Aug 2008) | 1 line
  
  Fix the link to the limits documentation.
........


[SVN r51902]
2009-03-22 17:30:02 +00:00
Jürgen Hunold dd5aff7029 Fix: Avoid compiler warning if BOOST_NO_HASH is already defined.
[SVN r51550]
2009-03-03 07:56:36 +00:00
Andrew Sutton 71e23c2304 Fixing doc build, updating doc headers
[SVN r51252]
2009-02-14 14:26:02 +00:00
Andrew Sutton d7e37c7b56 Importing examples from SOC 2007
[SVN r51251]
2009-02-14 13:56:37 +00:00
Andrew Sutton 7777457d50 Importing quickbook docs from SOC 2007
[SVN r51250]
2009-02-14 13:53:55 +00:00
Andrew Sutton 670d4d5029 Updating core_numbers from David Gleich.
[SVN r51249]
2009-02-14 13:29:07 +00:00
Jürgen Hunold 7a9822f533 Fix: gcc -pedantic -Werror: remove extra ";".
[SVN r51193]
2009-02-11 08:27:58 +00:00
Jürgen Hunold e26020a782 Fix: add missing #include <boost/shared_array.hpp>
[SVN r51192]
2009-02-11 08:18:06 +00:00
Jeremiah Willcock b9d8262153 Fixed error when popping the last element from the heap
[SVN r51190]
2009-02-10 22:08:39 +00:00
Andrew Sutton 0767d8a8bb Imported clustering coefficient, eccentricity and core numbers algorithms.
There is no test for core_numbers yet.


[SVN r51101]
2009-02-08 15:57:41 +00:00
Andrew Sutton 288af2017a Importing geodesic distance module from SOC.
[SVN r51100]
2009-02-08 15:40:33 +00:00
Andrew Sutton 6f50bbc49d Integrated degree centrality and test.
[SVN r51099]
2009-02-08 15:34:25 +00:00
Andrew Sutton 4358d99cb0 Integrating exterior property maps and closeness centraility.
[SVN r51098]
2009-02-08 15:28:54 +00:00
Andrew Sutton 6a7fc39328 Importing exterior_property framework and associated property map helpers.
Integrating closeness_centrality algorithm.


[SVN r51097]
2009-02-08 15:28:31 +00:00
Andrew Sutton 4f9ff68348 Importing tests for all_cliques, all_cycles, and an eventual graph testing framework
[SVN r51095]
2009-02-08 14:52:35 +00:00
Andrew Sutton aed5fa9949 Importing all_cliques, all_cycles algorithms
[SVN r51094]
2009-02-08 14:51:58 +00:00
Andrew Sutton 77d5bf7b80 Integrating SOC 2007 code
[SVN r51092]
2009-02-08 14:25:32 +00:00
Andrew Sutton 6671008f35 Integrating SOC 2007 code
[SVN r51091]
2009-02-08 14:25:06 +00:00
Andrew Sutton 0596637103 Added a test for undirected graphs
[SVN r51090]
2009-02-08 14:23:16 +00:00
Andrew Sutton 70d7e52335 Added a test for undirected graphs
[SVN r51089]
2009-02-08 14:22:14 +00:00
Andrew Sutton afa1569043 Whitespace cleanup
[SVN r51086]
2009-02-08 13:23:09 +00:00
Jürgen Hunold 292aea9404 Fix gcc compile error due to "undefined variable 'index'".
[SVN r51035]
2009-02-05 20:07:08 +00:00
Jeremiah Willcock 8a9558f06f Added ability to check whether an element is in the heap, and do conditional insert/update operations based on that
[SVN r51021]
2009-02-04 21:01:27 +00:00
Jeremiah Willcock bac69f84de Changed to two_bit_color_map by default
[SVN r51020]
2009-02-04 20:58:15 +00:00
Jeremiah Willcock 78b6d375a7 Default color map to white, and fixed some warnings
[SVN r51019]
2009-02-04 20:57:04 +00:00
Jeremiah Willcock 17f6ae8dbb Trying to fix another qcc problem
[SVN r51015]
2009-02-04 19:32:05 +00:00
Jeremiah Willcock 23e75246cb Fixed qcc errors
[SVN r51014]
2009-02-04 19:28:31 +00:00
Jeremiah Willcock 6600277899 Fixed broken link
[SVN r50970]
2009-02-02 17:53:20 +00:00
Jeremiah Willcock 4520906847 Ported bug fixes over from trunk
[SVN r50933]
2009-01-31 20:06:23 +00:00
Andrew Sutton e27b8977b4 Fixed doc typo.
[SVN r50901]
2009-01-30 14:14:10 +00:00
Jeremiah Willcock 2ed4a27395 Applied patch from #2132, closes #2132
[SVN r50823]
2009-01-27 21:18:02 +00:00
Jeremiah Willcock 83e3ee4b6c Reverted r14604 to test handling of unconnected vertices, and fixed up formatting of output grid
[SVN r50821]
2009-01-27 21:12:42 +00:00
Jeremiah Willcock 50fba1d79f Tightened handling of inf in example to try to catch problems like #732 in the future
[SVN r50816]
2009-01-27 20:19:55 +00:00
Jeremiah Willcock 9572d48a03 Changed Johnson ASSP algorithm to use combine rather than + to do reweighting (did not change -, though); fixes #732
[SVN r50815]
2009-01-27 20:19:29 +00:00
Jeremiah Willcock 51d8d9f6be Fixed comment syntax
[SVN r50814]
2009-01-27 20:18:33 +00:00
Jeremiah Willcock b0e70a45d0 Changed template parameter names to match removal of Vertex List Graph requirement
[SVN r50813]
2009-01-27 20:07:25 +00:00
Jeremiah Willcock 4b61796e41 Changed Dijkstra shortest path algorithm to use d-ary heap by default, and to use a vector_property_map when the graph does not model VertexListGraph (only supported for dijkstra_shortest_paths_no_init); fixes #708
[SVN r50812]
2009-01-27 19:59:40 +00:00
Jeremiah Willcock 4844c47f6a Documented dijkstra_shortest_paths_no_init, fixed other small issues
[SVN r50811]
2009-01-27 19:58:18 +00:00
Jeremiah Willcock 968edbe972 Changed closed_plus to match inf_plus from floyd_warshall_test, changed test to use closed_plus, fixed comments in documentation and replaced std::plus with closed_plus to match implementation, fixes #1164
[SVN r50808]
2009-01-27 18:48:09 +00:00
Jeremiah Willcock 69d72805be Fixing two parts of #2658; not sure about point 3 of that report
[SVN r50806]
2009-01-27 18:03:03 +00:00
Jeremiah Willcock 1eba2f9cc5 Fixed typo (missing semicolon)
[SVN r50805]
2009-01-27 17:58:45 +00:00
Jeremiah Willcock 6641c154ac Added information on implicit graphs and no_init version of astar_search, plus fixed invalid comment syntax
[SVN r50804]
2009-01-27 17:56:57 +00:00
Jeremiah Willcock 6fdfca7d38 Fixed astar_search_no_init to work on implicit graphs
[SVN r50803]
2009-01-27 17:53:59 +00:00
Troy D. Straszheim 4a3510bbf9 merge of cmake build files from trunk per beman
[SVN r50756]
2009-01-24 18:57:20 +00:00
Jeremiah Willcock 62427b821f Fixed "anonymous type" bug from regression tests
[SVN r50748]
2009-01-23 16:50:15 +00:00
Jeremiah Willcock 4a16dd2717 Hopefully fixed PGI regression test failure
[SVN r50733]
2009-01-22 20:51:52 +00:00
Jeremiah Willcock 9a15c9fb1e Changed some enums from local to global to fix regression test problems on Sandia-gcc gcc-4.0.1
[SVN r50729]
2009-01-22 16:06:21 +00:00
Jeremiah Willcock 86fb16b3b8 Fixed inspection report problems
[SVN r50706]
2009-01-21 18:59:38 +00:00
Jeremiah Willcock db5bab4b99 Fixed some regression test failures
[SVN r50704]
2009-01-21 17:21:06 +00:00
Jeremiah Willcock aff71f6147 Added d-ary heap implementation, changed Dijkstra performance test to use that rather than binary heap, changed m_decreased member in dijkstra_visitor to a local variable
[SVN r50692]
2009-01-20 21:37:31 +00:00
Jeremiah Willcock 275e1cb92b Fixed include directives and namespaces to match new versions of Spirit and Phoenix (using backward compatibility headers)
[SVN r50677]
2009-01-19 19:43:16 +00:00
Andrew Sutton a3ee4eb038 Patch from Dmitry Bufistov for getting bundled property maps from subgraphs.
[SVN r50534]
2009-01-10 14:46:36 +00:00
Andrew Sutton af7369b6b0 Addressing the problem of subgraphs (not) working with bundled properties.
Added some comments, documentation, and a new test.


[SVN r50533]
2009-01-10 14:22:54 +00:00
Andrew Sutton 06562ff825 Resyncing with trunk, merging a couple of missing patches.
[SVN r50439]
2009-01-02 14:45:11 +00:00
Andrew Sutton 9a6339df8d Rolling back CMake-oriented patches
[SVN r50331]
2008-12-20 19:11:41 +00:00
Andrew Sutton 8c22a6d531 Selectively merging changes from 47269:HEAD. Changes herein fix or address
the following tickets: #1622 (r50206), #2550 (r50191), #416 (r50137),
#2460 (r49563), #2392 (r49254), #2209 (r49000), #1700 (r48611). Also adds
metric_tsp_approx algorithm.



[SVN r50330]
2008-12-20 19:07:58 +00:00
Andrew Sutton b49cda6f03 Merging r48999, r49000 to fix #2209 and the use of MAXINT instead of
numeric_limits.


[SVN r50317]
2008-12-18 14:07:51 +00:00
Andrew Sutton 3fbb14a5cf Make metric_tsp_approx test return 0, even if run incorrectly
[SVN r50315]
2008-12-18 13:37:52 +00:00
Andrew Sutton 372c7e5740 Removing missing include header
[SVN r50314]
2008-12-18 13:35:31 +00:00
Andrew Sutton 70e103d1b9 Updating the adjacency list invalidation table.
[SVN r50234]
2008-12-10 16:17:19 +00:00
Andrew Sutton 6b4635c403 Fixing the graph type for listS tests.
[SVN r50233]
2008-12-10 16:12:39 +00:00
Andrew Sutton b2724beb09 Added some comments about a peculiar condition in the testing.
[SVN r50232]
2008-12-10 15:56:02 +00:00
Andrew Sutton a6daa83472 Added tests for out edge and adjacency components under add_vertex.
For some reason, adjacency_iterators seem to remain valid if no operations
on other graph types are executed prior to their use, which is completely
at odds with what I would expect.


[SVN r50231]
2008-12-10 15:46:05 +00:00
Andrew Sutton 7f9306dec9 Added a small test framework for experimenting with invalidating iterators
and descriptors. Not part of the test suite.


[SVN r50230]
2008-12-10 14:28:25 +00:00
Andrew Sutton 9ad0c6a23c Fixed #1622. A viable solution relies on the fact that incident edges in a
loop are stored adjacently in the out edge list of the vertex. A simple
modification of the global edge erasing loop for undirected graphs will
skip the next iterator if both the current and next contain the same iterator.


[SVN r50206]
2008-12-08 19:03:20 +00:00
Andrew Sutton 3fdea479bd Fixing #2550. Added a check for this condition in the test files.
[SVN r50191]
2008-12-08 15:22:32 +00:00
Andrew Sutton 4a2994c9d7 Removing GCC check for hash_set/hash_map so we don't automatically break any
code. Added a section of workarounds to the documentation.


[SVN r50189]
2008-12-08 15:06:55 +00:00
Andrew Sutton bc707a8f67 Whitespace cleanup.
[SVN r50188]
2008-12-08 15:06:05 +00:00
Jürgen Hunold 38aa3f34d8 Merged revisions 49256 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r49256 | jhunold | 2008-10-10 21:38:48 +0200 (Fri, 10 Oct 2008) | 2 lines
  
  Add missing BOOST_GRAPH_DECL macro.
........


[SVN r50154]
2008-12-06 09:23:01 +00:00
Jürgen Hunold 2555c89f91 Fix #416
Merged revisions 42984,50137 via svnmerge from 
https://svn.boost.org/svn/boost/trunk

........
  r42984 | noel_belcourt | 2008-01-26 19:35:59 +0100 (Sat, 26 Jan 2008) | 7 lines
  
  Fixes #416
  
  Fixed spelling of Jack Edmonds name and renamed files
  where necessary.  Updated the documentation as well.
  Tested changes by building/running tests in libs/graph/test.
........
  r50137 | jhunold | 2008-12-05 18:53:22 +0100 (Fri, 05 Dec 2008) | 3 lines
  
  Add deprecation header for wrong-spelled Edmonds-Karp-Max-Flox.
  Preparaion to fix #416
........


[SVN r50153]
2008-12-06 09:10:20 +00:00
Jürgen Hunold 597d89ead2 Add deprecation header for wrong-spelled Edmonds-Karp-Max-Flox.
Preparaion to fix #416


[SVN r50137]
2008-12-05 17:53:22 +00:00
Michael A. Jackson bafd8ea248 Updating dependency information for modularized libraries.
[SVN r49628]
2008-11-07 17:05:27 +00:00
Michael A. Jackson 4f9ce0c88d Updating CMake files to latest trunk. Added dependency information for regression tests and a few new macros for internal use.
[SVN r49627]
2008-11-07 17:02:56 +00:00
Andrew Sutton 5c899afa22 Include correct headers for read_dimacs.hpp, fixing #2460. Added a compile
test (just a stub for now) to ensuer that the file will compile without
any additional includes.


[SVN r49563]
2008-11-03 15:50:29 +00:00
Andrew Sutton 1562d2b1ab Added metric_tsp_approx by Matt Egahazy. Import includes the algorithm,
documentation and tests. Integrated the test into the unit tests, and
the documentation into the TOC under a new subsection named Paths and Tours.
Also added a new bad_graph exception in exception.hpp.


[SVN r49561]
2008-11-03 15:35:58 +00:00
Andrew Sutton 8bde5765ab Fixed warnings about conversion from c-str literals to char*.
[SVN r49558]
2008-11-03 15:22:52 +00:00
Andrew Sutton 2fbbd52a0e Fixed a compiler warning that complained about parentheses in a do loop.
[SVN r49557]
2008-11-03 15:21:06 +00:00
Andrew Sutton 10d71f2365 Added a compiler check to adjacency_list.hpp that checks for GCC >= 4.3 and
defines BOOST_NO_HASH. Closes #2444.


[SVN r49554]
2008-11-03 15:03:13 +00:00
Michael A. Jackson 7db8d06fbf Continuing merge of CMake build system files into trunk with the encouragement of Doug Gregor
[SVN r49510]
2008-11-01 13:15:41 +00:00
Aaron Windsor ebde55caab Patch from David Gleich to fix underflow and overflow that can happen when computing vertex positions in chroback_payne_straight_line_drawing
[SVN r49358]
2008-10-16 12:02:37 +00:00
Vladimir Prus 0e63ef5f89 Merge from trunk
[SVN r49354]
2008-10-16 08:54:57 +00:00
John Maddock a9a49a55b7 Merge fixes from Trunk.
Fixes #2392.

Change includes of <cmath> to <boost/config/no_tr1/config.hpp>.

Previously if Boost.TR1 was in the include path then including <cmath> pulls in all the new TR1 math functions, which in turn also requires linking to an external library. With auto-linking support this requires that library to have been built and be present in the library search path, even if the actual library under use is header only. 

[SVN r49314]
2008-10-13 09:00:03 +00:00
Jürgen Hunold 71f20dd7b6 Add missing BOOST_GRAPH_DECL macro.
[SVN r49256]
2008-10-10 19:38:48 +00:00
John Maddock b267aee59c Change includes of <cmath> to <boost/config/no_tr1/config.hpp>.
Previously if Boost.TR1 was in the include path then including <cmath> pulls in all the new TR1 math functions, which in turn also requires linking to an external library.  With auto-linking support this requires that library to have been built and be present in the library search path, even if the actual library under use is header only.

Fixes #2392.


[SVN r49254]
2008-10-10 16:10:00 +00:00
Douglas Gregor b7a5fe292b Remove accidental commit
[SVN r49248]
2008-10-10 13:24:44 +00:00
Douglas Gregor 33640c6bf3 Minor fixes for named graph changes
[SVN r49179]
2008-10-08 15:05:33 +00:00
Douglas Gregor f7585c91af Add support for named vertices in adjacency_list
[SVN r49178]
2008-10-08 14:51:11 +00:00
Douglas Gregor 9b902b614d Fix reverse_graph adaptor to work with user-defined graph types
[SVN r49176]
2008-10-08 12:38:44 +00:00
Aaron Windsor 7218c1ba66 Fix for a bug in BGL's is_straight_line_drawing - adding necessary additional comparisons during the planar sweep to detect intersections.
[SVN r49132]
2008-10-04 22:49:18 +00:00
Vladimir Prus 19dd79f771 Don't emit warnings about GraphML support if not actually building Boost.Graph.
[SVN r49008]
2008-09-29 15:38:37 +00:00
Andrew Sutton e9d6adeab1 Resolving ticket #2209.
[SVN r49000]
2008-09-29 12:42:26 +00:00
Andrew Sutton 3a894a9a5f Removed define and usage of MAXINT, replaced with numeric_limits max.
This was discussed on the boost list, but there's no ticket filed.


[SVN r48999]
2008-09-29 12:27:03 +00:00
Douglas Gregor 8cbf7d89aa Merge fix for infinite weights in Floyd-Warshall
[SVN r48612]
2008-09-05 14:00:40 +00:00
Douglas Gregor 424e529aba Fix handling of infinite weights in Floyd-Warshall algorithm. Fixes #1700
[SVN r48611]
2008-09-05 13:59:12 +00:00
Douglas Gregor d73b792b6c Make graphml_test.cpp accept the name of its input file on the command line, Jamfile.v2 provide the input file (both thanks to Dave A), and make the input XML well-formed. Fixes #2267.
[SVN r48583]
2008-09-04 19:49:49 +00:00
Douglas Gregor b39dd26509 Make reverse_graph work with non-class graph types
[SVN r47930]
2008-08-01 14:20:59 +00:00
Douglas Gregor 7e088fd0ec Link against shared expat.
[SVN r47720]
2008-07-23 15:24:17 +00:00
Douglas Gregor 415b79eabc Link against shared expat. Fixes #2123
[SVN r47719]
2008-07-23 15:23:53 +00:00
Douglas Gregor 3ea25dc783 Merged fix for ticket #2131 from trunk
[SVN r47710]
2008-07-23 14:00:21 +00:00
Douglas Gregor 6d2a97d97c Fix Cuthill-McKee documentation typos. Fixes #2131
[SVN r47709]
2008-07-23 13:58:30 +00:00
Douglas Gregor f94d5a9530 Support BOOST_NO_EXCEPTIONS in Boost.Graph, from Brian Barrett
[SVN r47270]
2008-07-09 15:00:11 +00:00
Douglas Gregor f9dcab79b2 Support BOOST_NO_EXCEPTIONS in Boost.Graph, from Brian Barrett
[SVN r47269]
2008-07-09 14:59:46 +00:00
Ronald Garcia 3644e4d51a Initial Revision. Based on read_graphviz.cpp.
[SVN r47240]
2008-07-08 17:24:20 +00:00
Douglas Gregor d1ae2658f9 Merged topological_sort doc fix from trunk
[SVN r47139]
2008-07-06 19:14:39 +00:00
Douglas Gregor ae53d6cbbc Fix missing IncidenceGraph requirement in topoogical_sort. Fixes #1986
[SVN r47138]
2008-07-06 18:55:34 +00:00
Daniel James c6c6be7ae0 Quote href values - our tools don't support unquoted values.
[SVN r45283]
2008-05-11 13:49:20 +00:00
Douglas Gregor 1533e730ae Merge fix for #870 to release branch
[SVN r44892]
2008-04-29 18:35:03 +00:00
Douglas Gregor b98298ab98 Correct erroneous call to is_reachable from is_connected. Fixes #870
[SVN r44891]
2008-04-29 18:34:28 +00:00
Douglas Gregor cf6006d528 Merge Boost.Graph fix from mainline
[SVN r44890]
2008-04-29 18:19:07 +00:00
Douglas Gregor ccf09ceddf Remove names of unused variables. Fixes #1832 and fixes #1865
[SVN r44889]
2008-04-29 18:18:01 +00:00
Douglas Gregor bb1977b17a Resource-constrained shortest paths, from Michael Drexl
[SVN r44717]
2008-04-22 12:24:25 +00:00
Jurko Gospodnetić 476e8dd7d1 Corrected the documentation related to installing new internal property types.
[SVN r44481]
2008-04-17 00:27:30 +00:00
Douglas Gregor 23e8514ac7 Merge MPI/Graph documentation fixes from trunk
[SVN r43700]
2008-03-18 13:20:44 +00:00
Douglas Gregor ecedcaa5a3 Fix some documentation issues. Fixes #1655, fixes #1660
[SVN r43680]
2008-03-17 17:34:46 +00:00
Daniel James aa97fdc26a Merged revisions 43206,43208-43213 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r43206 | danieljames | 2008-02-10 09:55:03 +0000 (Sun, 10 Feb 2008) | 1 line
  
  Fix some broken links.
........
  r43209 | danieljames | 2008-02-10 14:56:22 +0000 (Sun, 10 Feb 2008) | 1 line
  
  Link to people pages on the website, as they've been removed from the download.
........
  r43210 | danieljames | 2008-02-10 15:02:17 +0000 (Sun, 10 Feb 2008) | 1 line
  
  Point links to the pages that used to be in 'more' to the site.
........
  r43212 | danieljames | 2008-02-10 16:10:16 +0000 (Sun, 10 Feb 2008) | 1 line
  
  Fix links on the home page as well.
........
  r43213 | danieljames | 2008-02-10 16:21:22 +0000 (Sun, 10 Feb 2008) | 1 line
  
  Generated documentation which is no longer generated.
........


[SVN r43214]
2008-02-10 16:39:38 +00:00
Daniel James 07eee8a2a1 Point links to the pages that used to be in 'more' to the site.
[SVN r43210]
2008-02-10 15:02:17 +00:00
Daniel James e45cfb0ee3 Link to people pages on the website, as they've been removed from the download.
[SVN r43209]
2008-02-10 14:56:22 +00:00
Douglas Gregor f865d6209e Merge fix for add_vertex in compressed_sparse_row with properties
[SVN r43167]
2008-02-07 21:29:02 +00:00
Douglas Gregor 231f4c3573 Fix add_vertex and add_vertices when the CSR graph has vertex properties
[SVN r43117]
2008-02-05 20:51:23 +00:00
K. Noel Belcourt 40af610e8f Fixes #416
Fixed spelling of Jack Edmonds name and renamed files
where necessary.  Updated the documentation as well.
Tested changes by building/running tests in libs/graph/test.



[SVN r42984]
2008-01-26 18:35:59 +00:00
Beman Dawes 751f8b5b7c Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41370]
2007-11-25 18:38:02 +00:00
Beman Dawes 73f24694dd Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41369]
2007-11-25 18:07:19 +00:00
Beman Dawes 5255835126 config, detail, filesystem, system, tools, at 41278.
[SVN r41316]
2007-11-23 17:03:14 +00:00
Aaron Windsor 341a685ff1 Cleaning up #includes to avoid errors on gcc 4.1 and above.
[SVN r41227]
2007-11-19 15:28:26 +00:00
Aaron Windsor 6365afac60 Shortening file name of a graph test to < 32 characters
[SVN r40864]
2007-11-07 02:30:38 +00:00
Aaron Windsor c28a996668 Renaming planar graph test files to under 32 characters each.
[SVN r40836]
2007-11-06 13:55:05 +00:00
Douglas Gregor 23ca414964 Merge in Boost.Graph changes from RC_1_34_0 branch
[SVN r40813]
2007-11-05 21:43:24 +00:00
Douglas Gregor c09b24159b Removed ancient BGL-Python code
[SVN r40812]
2007-11-05 21:25:10 +00:00
Douglas Gregor eb60f8c235 Add copyright, 1.34.1 history
[SVN r40809]
2007-11-05 21:20:23 +00:00
Dave Abrahams 3884b842c6 Updated Concept Check library documentation.
Changed BOOST_CONCEPT_WHERE to BOOST_CONCEPT_REQUIRES to be more
consistent with the current C++0x proposal, which now uses a
"requires" keyword in lieu of "where."

Factored GCC workarounds into the BOOST_CONCEPT_USAGE macro.


[SVN r40769]
2007-11-05 03:54:19 +00:00
Douglas Gregor 05a4441935 Fix for Borland/CodeGear, from JongSoo Park
[SVN r40673]
2007-11-02 03:07:24 +00:00
Douglas Gregor 8e5d48c839 Use unsigned long long for the path count to avoid overflows. Fixes #1398
[SVN r40645]
2007-11-01 16:16:30 +00:00
Vladimir Prus da3b568cb4 Make sure every library can be installed by using
bjam stage|install

in libs/<library>/build.


[SVN r40475]
2007-10-26 09:04:25 +00:00
Aaron Windsor e9747c0143 Un-asserted two function calls - this was causing the function calls to turn into no-ops when the example was compiled with debugging off.
[SVN r40167]
2007-10-19 00:16:36 +00:00
Aaron Windsor e54f2934e1 Trying to clear some errors from Sun CC.
[SVN r39871]
2007-10-10 02:18:37 +00:00
Aaron Windsor c691ac49f7 Adding some missing typenames
[SVN r39773]
2007-10-07 23:49:07 +00:00
Aaron Windsor fa42d8aa92 Fix config issue for cycle ratio tests - the path to the input file used in the test should be relative to the graph test subdirectory.
[SVN r39767]
2007-10-07 18:43:16 +00:00
Aaron Windsor 40ffa294a2 Fixing some errors and warnings on the planar graph tests coming from Sun compilers.
[SVN r39763]
2007-10-07 16:52:39 +00:00
Beman Dawes b2be8e3dfc Starting point for releases
[SVN r39706]
2007-10-05 14:25:06 +00:00
Ronald Garcia 98d0755817 Made the output of the example program more realistic.
[SVN r39524]
2007-09-25 15:36:35 +00:00
Ronald Garcia 2f99e5b87f Initial Revision. Stolen from the write-graphviz.html docs.
[SVN r39523]
2007-09-25 15:32:23 +00:00
Aaron Windsor 1cc2f6e13a Some fixes for errors and warnings on HP cxx.
[SVN r39480]
2007-09-22 17:41:18 +00:00
Ronald Garcia 2006d41573 small html and grammar fixes.
[SVN r39442]
2007-09-21 12:33:31 +00:00
Ronald Garcia 4bda985420 A little note to minimize confusion (I know I was confused).
[SVN r39435]
2007-09-20 23:22:46 +00:00
Douglas Gregor 666a919f70 Fix the cycle ratio tests for real
[SVN r39286]
2007-09-14 21:17:06 +00:00
Douglas Gregor 03560ab9ae Teach cycle_ratio_tests to find its input files during regression testing
[SVN r39246]
2007-09-13 19:41:27 +00:00
Aaron Windsor a86a446429 Modified odd_components_counter to fix signed/unsigned mismatch on Sandi pgi-6.1 tests.
[SVN r39112]
2007-09-03 15:04:05 +00:00
Aaron Windsor 8dfc1ad52c merging planar graph algorithms into the BGL
[SVN r38956]
2007-08-25 21:11:06 +00:00
Douglas Gregor dcb43119d5 Revert inadvertent changes to csr_graph_test.cpp
[SVN r38741]
2007-08-17 14:57:54 +00:00
Vladimir Prus aa79cb6919 Remove V1 Jamfiles
[SVN r38516]
2007-08-08 19:02:26 +00:00
Douglas Gregor 9d3d4e9a44 Pointless change
[SVN r38493]
2007-08-07 13:05:43 +00:00
Douglas Gregor 5461181e7f relaxed_heap.hpp:
- Use boost::none in all the right places. Fixes #1072. Big thanks to
    David Gleich!


[SVN r38330]
2007-07-31 21:58:36 +00:00
Douglas Gregor d0432740ef Maximum and minimum cycle ratio
[SVN r38308]
2007-07-30 13:01:16 +00:00
Douglas Gregor e6cd5bc377 Fix minor typo
[SVN r38287]
2007-07-25 20:23:19 +00:00
nobody 148c441158 This commit was manufactured by cvs2svn to create tag
'Version_1_34_1'.

[SVN r38286]
2007-07-24 19:28:14 +00:00
Ronald Garcia a080a480ce Fixed an inconsistency between explicit graph properties and implicit
(without a "graph" keyword and brackets).


[SVN r38049]
2007-06-21 16:12:46 +00:00
Ronald Garcia 1dfcd0e6fb Fixed up the testing for graph names.
[SVN r38048]
2007-06-21 16:12:05 +00:00
Ronald Garcia f3c29e22d2 Added a test case to make sure that the contents of c-strings are not
subject to whitespace skipping.


[SVN r38045]
2007-06-20 16:28:50 +00:00
Ronald Garcia f6a8e8c66e Fixed a bug in c-style string parsing...need to turn whitespace
skipping off using lexeme_d.


[SVN r38044]
2007-06-20 16:24:06 +00:00
Aaron Windsor 54ff05ca06 added named parameters for vertex_invariant1, vertex_invariant2, and vertex_max_invariant, from isomorphism.hpp
[SVN r37995]
2007-06-15 12:38:13 +00:00
Aaron Windsor 1b69ebe5b5 documented the named parameters vertex_invariant1, vertex_invariant2, and vertex_max_invariant
[SVN r37994]
2007-06-15 12:34:32 +00:00
Thomas Witt efcb9317fc Patches from Trac #583.
[SVN r37846]
2007-06-01 16:12:08 +00:00
Douglas Gregor 96f923a52e Rename/remove some detail algorithms to avoid a conflict with the string algorithms library
[SVN r37828]
2007-05-31 12:14:31 +00:00
Douglas Gregor 45d0f1331b Fix handling of overflow in shortest-path algorithms
[SVN r37814]
2007-05-29 16:53:05 +00:00
Douglas Gregor 9445aff028 Fix overflow handling with negative values as reported in http://lists.boost.org/boost-users/2007/05/28205.php
[SVN r37812]
2007-05-29 15:22:29 +00:00
Jeremy Siek f65f09bba9 added preprocessor guards
[SVN r37432]
2007-04-13 16:05:53 +00:00
Douglas Gregor 43f0e01be5 Add include of <climits>
[SVN r37414]
2007-04-10 23:05:46 +00:00
Aaron Windsor 7fdb4af8f6 a few more bug fixes
[SVN r37222]
2007-03-18 16:21:46 +00:00
Douglas Gregor 660107b872 Pick up Aaron Windsor's fixes
[SVN r37191]
2007-03-15 14:12:41 +00:00
Douglas Gregor ee9b816984 Remove broken Fibonacci heap
[SVN r37190]
2007-03-15 14:03:06 +00:00
Stephan Diederich e79c27b97b changed coloring to be consistent with edmunds_karp_max_flow
[SVN r37167]
2007-03-11 11:56:10 +00:00
Dave Abrahams 3125c8577d Correct testing bugs:
either changing assert(...) or BOOST_ASSERT(...) to BOOST_TEST
    (in my code only)

    or adding "return boost::report_errors();" where it was clearly
    missing (and a pure bug, in anyone's code).

    or changing BOOST_TEST to BOOST_CHECK where the integer library
    was clearly using Boost.Test and not returning report_errors().


[SVN r37063]
2007-02-25 15:28:02 +00:00
Dave Abrahams b2bc98e410 Correct testing bugs:
either changing assert(...) or BOOST_ASSERT(...) to BOOST_TEST
    (in my code only)

    or adding "return boost::report_errors();" where it was clearly
    missing (and a pure bug, in anyone's code).


[SVN r37057]
2007-02-24 22:40:59 +00:00
Douglas Gregor 4c8c2403c8 Use simple string operations rather than the string algorithms library
[SVN r36909]
2007-02-08 04:13:07 +00:00
Douglas Gregor 02cdd5c0f8 Fix adjacency list and property map serialization
[SVN r36895]
2007-02-05 22:16:58 +00:00
Douglas Gregor 1f84c5b232 Remove old graphviz parser
[SVN r36842]
2007-01-29 22:16:07 +00:00
Douglas Gregor 78d2fd885f GraphML parser, from Tiago de Paula Peixoto
[SVN r36841]
2007-01-29 22:14:41 +00:00
Douglas Gregor efa2fe286f Adjacency list serialization fixes, from David Keller
[SVN r36838]
2007-01-29 19:54:47 +00:00
Douglas Gregor 45a2d06d94 Improvements to LEDA adaptors, from Jens Mueller
[SVN r36836]
2007-01-29 19:29:06 +00:00
Daniel James 55d57690f1 Remove a tab.
[SVN r36645]
2007-01-07 22:21:57 +00:00
Douglas Gregor 3f97161db1 Change library name to boost_graph
[SVN r36471]
2006-12-20 19:17:16 +00:00
Aaron Windsor 0f49c8dcb2 merged bug fix
[SVN r36462]
2006-12-20 01:22:24 +00:00
Ronald Garcia fcf80df5f9 Removed old dead code. dynamic_bitset supercedes these.
[SVN r36454]
2006-12-18 15:48:56 +00:00
Douglas Gregor 85dd95cf77 Remove none algorith, which is unused and conflicts with none.hpp
[SVN r36409]
2006-12-15 21:44:53 +00:00
Douglas Gregor 1d8d4322d2 Remove none algorith, which is unused and conflicts with none.hpp
[SVN r36409]
2006-12-15 21:44:53 +00:00
Douglas Gregor 15d8e1dc21 Remove makefile gooP
[SVN r36408]
2006-12-15 21:19:02 +00:00
Douglas Gregor 99a56222da Fix file dependency example
[SVN r36407]
2006-12-15 21:07:14 +00:00
Douglas Gregor 3bec282dbd Finish renaming bgl-viz to boost_graph
[SVN r36404]
2006-12-15 13:35:08 +00:00
Douglas Gregor 3d5661096c Handle temporaries passed to filtered_graph
[SVN r36403]
2006-12-15 13:17:58 +00:00
Douglas Gregor dfb49e339d Fix criterion
[SVN r36400]
2006-12-15 12:58:54 +00:00
Douglas Gregor b493c0ea47 Remove Python gook, rename library to boost_graph
[SVN r36399]
2006-12-15 12:55:36 +00:00
Aaron Windsor c4a7c8cd37 fixed a bug caused by parent pointers not being updated when two heaps are merged
[SVN r36398]
2006-12-15 02:26:08 +00:00
Aaron Windsor 64b6038f92 renaming sorted_erdos_renyi_generator.html and lengauer_tarjan_dominator_tree.htm so inspection reports won't complain
[SVN r36374]
2006-12-14 02:20:34 +00:00
Aaron Windsor 9d8f8ce0cd renaming sorted_erdos_renyi_generator.html and lengauer_tarjan_dominator_tree.htm so inspection reports won't complain
[SVN r36374]
2006-12-14 02:20:34 +00:00
Aaron Windsor fbd5c5120f merged file name changes from HEAD to RC_1_34_0
[SVN r36373]
2006-12-14 02:12:42 +00:00
nobody 46ae2cb6c1 This commit was manufactured by cvs2svn to create branch 'RC_1_34_0'.
[SVN r36372]
2006-12-14 02:08:05 +00:00
Aaron Windsor 83e26c7109 renaming sorted_erdos_renyi_generator.html and lengauer_tarjan_dominator_tree.htm so inspection reports won't complain
[SVN r36371]
2006-12-14 02:08:04 +00:00
Aaron Windsor d83d611b18 merging fix due to renaming maximum_cardinality_matching.hpp from HEAD to RC_1_34_0
[SVN r36370]
2006-12-14 01:06:01 +00:00
Aaron Windsor 4af336e307 fix due to renaming maximum_cardinality_matching.hpp
[SVN r36369]
2006-12-14 01:01:26 +00:00
Aaron Windsor e53d23d7d7 merging fix due to renaming maximum_cardinality_matching.hpp from HEAD to RC_1_34_0
[SVN r36368]
2006-12-14 00:59:19 +00:00
Aaron Windsor 401165fe0c merging filename fix for maximum_cardinality_matching.hpp from HEAD to RC_1_34_0
[SVN r36367]
2006-12-14 00:51:26 +00:00
Aaron Windsor 7e7359b330 changing name of maximum_cardinality_matching.hpp
[SVN r36366]
2006-12-14 00:49:22 +00:00
Aaron Windsor a728a94caa merged filename change for maximum_cardinality_matching from HEAD to RC_1_34_0
[SVN r36365]
2006-12-14 00:45:34 +00:00
nobody 833169b3a0 This commit was manufactured by cvs2svn to create branch 'RC_1_34_0'.
[SVN r36364]
2006-12-14 00:39:04 +00:00
Aaron Windsor 770cce09ef renaming maximum_cardinality_matching.hpp so inspection reports won't complain
[SVN r36363]
2006-12-14 00:39:03 +00:00
Ronald Garcia a237fb8cd9 Replaced uses of ct_if and friends (based on pending/ct_if.hpp) with
uses of mpl::if_ and friends.


[SVN r36269]
2006-12-04 23:23:08 +00:00
Andreas Huber 79a1ef7d8f Merged L & C issue fixes from trunk to branch.
[SVN r36225]
2006-12-01 11:34:43 +00:00
Andreas Huber dde01478fe Fixed license & copyright issues.
[SVN r36224]
2006-12-01 10:29:49 +00:00
Douglas Gregor 41051db37b Do not deduce Vertex in vertex function
[SVN r36202]
2006-11-29 20:30:27 +00:00
Douglas Gregor 0a8a6f0812 Do not deduce Vertex in vertex function
[SVN r36202]
2006-11-29 20:30:27 +00:00
Douglas Gregor 1cfa23497b Integrate Kolmogorov's max flow algorithm, from Stephan Diederich.
[SVN r36125]
2006-11-20 23:42:44 +00:00
Vladimir Prus 99d4f31d38 Merge from HEAD.
Allow building of shared versions of some Boost.Test libraries.
Adjust tests to use always use static linking to Boost.Test, since
linking to the shared version requires test changes.

Patch from Juergen Hunold.


[SVN r35990]
2006-11-10 19:59:52 +00:00
Vladimir Prus a86397fc34 Allow building of shared versions of some Boost.Test libraries.
Adjust tests to use always use static linking to Boost.Test, since
linking to the shared version requires test changes.

Patch from Juergen Hunold.


[SVN r35989]
2006-11-10 19:09:56 +00:00
Beman Dawes 2c884b70b7 Merged copyright and license addition
[SVN r35907]
2006-11-07 19:27:00 +00:00
Beman Dawes 3c852ac7a0 Add copyright, license
[SVN r35905]
2006-11-07 19:11:57 +00:00
Rene Rivera 0cb7bbf192 Remove obsolete Boost.Build v1 files.
[SVN r35880]
2006-11-06 17:10:46 +00:00
Douglas Gregor a306a8119f Cleanup lots of inspection failures
[SVN r35826]
2006-11-03 19:17:56 +00:00
Douglas Gregor 88edab5b45 Remove old Python cruft
[SVN r35825]
2006-11-03 19:10:49 +00:00
Douglas Gregor b0474f1dd9 Clear up copyright/license problems
[SVN r35824]
2006-11-03 18:55:11 +00:00
Roland Schwarz 21b9a9f799 Applied a fix, that will skip the serialization test for compilers that do not provide spirit (and serialization in turn)
[SVN r35670]
2006-10-20 08:28:10 +00:00
Ronald Garcia 59ba89640e Squashed some bugs: attribute list commas are optional. '#' was not
behaving properly (especially inside quoted strings).


[SVN r35667]
2006-10-19 23:37:01 +00:00
Ronald Garcia d1c241d77e comment typo.
[SVN r35666]
2006-10-19 21:46:00 +00:00
Ronald Garcia 83e6c4a9c3 Added an example.
[SVN r35638]
2006-10-16 18:08:03 +00:00
Ronald Garcia 3ae3292696 Initial Revision.
[SVN r35637]
2006-10-16 18:03:28 +00:00
Ronald Garcia e0367b4a21 Added a conditional around some debugging code.
[SVN r35635]
2006-10-16 17:54:23 +00:00
Ronald Garcia f1257a09d1 updated docs. Case-sensitivity is supported. Subgraphs at the BGL level
are not.


[SVN r35603]
2006-10-14 01:25:56 +00:00
Ronald Garcia f4e0af95f1 Added support for graph properties.
[SVN r35602]
2006-10-14 01:13:39 +00:00
Ronald Garcia 4c5c2fc303 Added hooks into the grammar to possibly catch graph properties.
[SVN r35601]
2006-10-13 22:51:17 +00:00
Douglas Gregor 344dd6b155 Fix handling of empty graphs
[SVN r35420]
2006-09-29 15:33:12 +00:00
Douglas Gregor 392f5fa635 Fix handling of empty graphs
[SVN r35420]
2006-09-29 15:33:12 +00:00
Douglas Gregor bf2f7f86fa Fix parameter name
[SVN r35419]
2006-09-29 15:30:07 +00:00
Douglas Gregor cc4f49d760 Fix parameter name
[SVN r35419]
2006-09-29 15:30:07 +00:00
Douglas Gregor 0d2d95b2f2 Do the DLL import/export dance for the GraphViz reader
[SVN r35336]
2006-09-26 13:10:59 +00:00
Douglas Gregor 58e287d115 Do the DLL import/export dance for the GraphViz reader.
[SVN r35335]
2006-09-26 12:52:08 +00:00
Douglas Gregor e505bf99db Test and fix serialization code
[SVN r35257]
2006-09-21 17:02:14 +00:00
Douglas Gregor d34d447b68 Test and fix serialization code
[SVN r35257]
2006-09-21 17:02:14 +00:00
Douglas Gregor a03ed0e26d Work around compiler optimizer bugs
[SVN r35225]
2006-09-20 13:55:16 +00:00
Dave Abrahams 9233499dbc Take advantage of BOOST_CONCEPT_USAGE for defining usage requirements:
Using this macro is better than simply defining a destructor because
usage patterns will be tested whenever associated types are accessed.


[SVN r35199]
2006-09-19 13:41:30 +00:00
Douglas Gregor f4b0928c2d Work around Sun CC bug
[SVN r35100]
2006-09-13 20:49:10 +00:00
Douglas Gregor 04fea004d9 Work around Sun CC bug
[SVN r35100]
2006-09-13 20:49:10 +00:00
Douglas Gregor bc49236ccc Work around MSVC 6, 7 bug
[SVN r35099]
2006-09-13 20:41:28 +00:00
Jeremy Siek 73b6ddc2d4 fixed has_cycle_dfs
[SVN r35026]
2006-09-06 17:26:48 +00:00
Daniel James d4db30f9d3 Merge tab removal.
[SVN r34995]
2006-08-29 20:59:37 +00:00
Daniel James 3a07fe7c22 Remove tabs.
[SVN r34994]
2006-08-29 20:55:58 +00:00
Douglas Gregor a7c753ded9 Move initialize_vertex before setting properties
[SVN r34862]
2006-08-10 13:45:12 +00:00
Douglas Gregor ac847ac715 Move initialize_vertex before setting properties
[SVN r34862]
2006-08-10 13:45:12 +00:00
Douglas Gregor 47214f4fdc Move initialize_vertex after setting properties
[SVN r34861]
2006-08-10 13:41:30 +00:00
Douglas Gregor ec2dcfddbb Move initialize_vertex after setting properties
[SVN r34861]
2006-08-10 13:41:30 +00:00
Douglas Gregor ec7156274d Give bundle_property_map a default constructor
[SVN r34812]
2006-08-03 18:30:26 +00:00
Douglas Gregor 9badc94845 Give bundle_property_map a default constructor
[SVN r34811]
2006-08-03 18:29:44 +00:00
Douglas Gregor 39b29f3d79 Give bundle_property_map a default constructor
[SVN r34811]
2006-08-03 18:29:44 +00:00
Douglas Gregor 65f63fecc1 Documentation fixes, from David Baird
[SVN r34810]
2006-08-03 18:20:43 +00:00
Douglas Gregor 7c5f9daa62 Documentation fixes, from David Baird
[SVN r34810]
2006-08-03 18:20:43 +00:00
Gennaro Prota 62cc164059 (merge from head)
fixed almost all issues reported by the inspect tool in boost/graph/


[SVN r34732]
2006-07-25 23:12:38 +00:00
Gennaro Prota fc6ec3f791 fixed almost all issues reported by the inspect tool in boost/graph/
[SVN r34731]
2006-07-25 21:14:19 +00:00
Gennaro Prota 560f485326 (merge from head)
tab removal


[SVN r34730]
2006-07-25 14:27:40 +00:00
Gennaro Prota b47cf53fcb tab removal
[SVN r34729]
2006-07-25 14:19:27 +00:00
Gennaro Prota 5898cc5bae (merge from head)
removed unnamed namespace reported by inspect tool


[SVN r34716]
2006-07-24 21:58:09 +00:00
Gennaro Prota 0d30a51129 removed unnamed namespace reported by inspect tool
[SVN r34715]
2006-07-24 21:56:37 +00:00
Douglas Gregor 1035ddac56 Work around MSVC 7.0 bug
[SVN r34656]
2006-07-21 20:25:50 +00:00
Douglas Gregor ce0f796b84 Work around VC7 bugs
[SVN r34456]
2006-07-03 18:03:34 +00:00
Rene Rivera 1b3a6936a2 Don't build old viz parser unless explicitly asked for. (merge from head)
[SVN r34442]
2006-07-02 16:43:58 +00:00
Rene Rivera ad8a07eb09 Don't build old viz parser unless explicitly asked for.
[SVN r34441]
2006-07-02 16:39:51 +00:00
Douglas Gregor b659351ea7 Fix locations of default constructors
[SVN r34422]
2006-06-28 20:00:27 +00:00
Douglas Gregor ff7a5d1282 Deal with GCC problems in updated concepts library
[SVN r34418]
2006-06-27 15:01:14 +00:00
Douglas Gregor cfe0e0b552 Include a main function
[SVN r34417]
2006-06-27 15:00:29 +00:00
Douglas Gregor 50b1f74b93 Fix parameter to add_vertices
[SVN r34414]
2006-06-27 13:53:47 +00:00
Douglas Gregor bf73135721 Fix parameter to add_vertices
[SVN r34413]
2006-06-27 13:46:36 +00:00
Caleb Epstein 826f7a33d8 boost/graph/{king_ordering,cuthill_mckee_ordering}.hpp: Fix for typedef conflict with DS macro on Solaris (merge from RC_1_34_0)
[SVN r34356]
2006-06-19 14:50:30 +00:00
Caleb Epstein 1b468cb8aa boost/graph/{king_ordering,cuthill_mckee_ordering}.hpp: Fix for typedef conflict with DS macro on Solaris
[SVN r34355]
2006-06-19 14:49:21 +00:00
Douglas Gregor fcd3996f0e Be consistent about initialize_vertex calls
[SVN r34135]
2006-06-02 15:52:46 +00:00
Douglas Gregor 05a7299c0e Be consistent about initialize_vertex calls
[SVN r34135]
2006-06-02 15:52:46 +00:00
Douglas Gregor e5848fee44 directed_category need only be convertible to one of directed_tag or undirected_tag
[SVN r34133]
2006-06-02 14:27:15 +00:00
Douglas Gregor fb06d7e38e directed_category need only be convertible to one of directed_tag or undirected_tag
[SVN r34133]
2006-06-02 14:27:15 +00:00
Dave Abrahams ebb6697936 Strip off "Concept" suffix on concept checking classes.
[SVN r33908]
2006-05-02 15:06:06 +00:00
Dave Abrahams 77e5f0701d Make it so the test will actually test something in release mode builds.
[SVN r33872]
2006-04-30 03:42:14 +00:00
Dave Abrahams 53f5645393 Fixes for concept checking; use destructors for checking classes, misc cleanup.
[SVN r33862]
2006-04-29 20:27:14 +00:00
Jeremy Siek 6b24966483 added info about iterators
[SVN r33815]
2006-04-25 15:37:53 +00:00
Jeremy Siek ac1e867af4 added edges_size_type to adjacency_list_traits
[SVN r33767]
2006-04-22 13:41:55 +00:00
Jeremy Siek 62c6d9ef2f added edges_size_type and vertices_size_type to the adjacency_list_traits
[SVN r33766]
2006-04-22 13:35:32 +00:00
Jeremy Siek 69c5cf732c added comparison operators (<,etc.) to the edge class
[SVN r33765]
2006-04-22 13:19:48 +00:00
Douglas Gregor 0b1a337f52 Don't generate self edges when asked not to, from Johan Oudinet
[SVN r33644]
2006-04-10 20:09:33 +00:00
Douglas Gregor f44af6dd2f Don't generate self edges when asked not to, from Johan Oudinet
[SVN r33644]
2006-04-10 20:09:33 +00:00
Douglas Gregor 891ec4e4e3 Move enum out of GraphParse::operator()
[SVN r33642]
2006-04-10 19:27:23 +00:00
Douglas Gregor 96a3f1fa67 Move enum out of GraphParse::operator()
[SVN r33642]
2006-04-10 19:27:23 +00:00
Douglas Gregor 64428fc074 Move enum out of GraphParse::operator()
[SVN r33641]
2006-04-10 19:24:49 +00:00
Vladimir Prus 9a10195600 Merge from trunk
[SVN r33595]
2006-04-07 13:49:45 +00:00
Vladimir Prus fcf5d92ca6 Disable debug symbols for intel
[SVN r33591]
2006-04-07 13:38:53 +00:00
nobody 0d52712c3d This commit was manufactured by cvs2svn to create branch 'RC_1_34_0'.
[SVN r33417]
2006-03-21 02:26:31 +00:00
Aaron Windsor 5597592ff5 Look at vertices with minimum degree 0 first instead of starting with those with minimum degree 1 (fix courtesy of Roman Dementiev)
[SVN r33414]
2006-03-21 00:26:19 +00:00
Aaron Windsor dea8296e5b Added link to maximum_cardinality_matching
[SVN r33400]
2006-03-20 00:10:43 +00:00
Aaron Windsor bcb16ef822 Bug fix from Roman Dementiev: when updating the degree of a vertex in the BucketSorter, that vertex could be moved to the wrong bucket.
[SVN r33374]
2006-03-18 17:28:50 +00:00
Aaron Windsor ce0ec9e236 Added bug fix for smallest_last_ordering.hpp from Roman Dementiev
[SVN r33373]
2006-03-18 17:26:22 +00:00
Douglas Gregor 9e359134a1 Moved to the Boost Software License
[SVN r33324]
2006-03-12 15:01:03 +00:00
Douglas Gregor be9ad03abe Update to Boost Software License
[SVN r33312]
2006-03-10 15:08:31 +00:00
Jeremy Siek dbe744f6e2 added superscript notation
[SVN r33296]
2006-03-09 22:15:41 +00:00
Jeremy Siek 9084e6ce9b added time complexity
[SVN r33294]
2006-03-09 22:13:42 +00:00
Douglas Gregor a4a5a1a42b Add dummy Directed parameter to the CSR graph
[SVN r33291]
2006-03-09 20:06:23 +00:00
Douglas Gregor f9da93dbe2 Add two_bit_color_map
[SVN r33290]
2006-03-09 19:55:13 +00:00
Douglas Gregor a0919bdff6 Fix CSR properties
[SVN r33289]
2006-03-09 19:52:39 +00:00
Douglas Gregor 573f424452 Update to Boost Software License
[SVN r33288]
2006-03-09 18:34:18 +00:00
Douglas Gregor 4a159ba118 Don't call boost::get qualified
[SVN r33286]
2006-03-09 16:23:36 +00:00
Ronald Garcia 0d6c5bb4e2 Removed unused function warning.
[SVN r33285]
2006-03-09 16:18:05 +00:00
Ronald Garcia 6616bdba33 adjusted namespace imports to be more localized.
[SVN r33284]
2006-03-09 16:16:09 +00:00
Ronald Garcia 7a6a6fcbb6 Remove unused variable warnings.
[SVN r33282]
2006-03-09 15:37:52 +00:00
Dave Abrahams 11f9e9b044 Stop using assert() in tests
[SVN r33181]
2006-02-28 22:56:33 +00:00
Douglas Gregor 399aa3b28a Give vector_as_graph a default vertex_index property
[SVN r33173]
2006-02-28 14:33:14 +00:00
Douglas Gregor a9e4925167 Tests for EdgeListS=setS
[SVN r33159]
2006-02-27 18:18:47 +00:00
Douglas Gregor 3eadd82c6b Fixes for EdgeListS=setS and static_asserts for broken functionality when EdgeListS=vecS
[SVN r33158]
2006-02-27 18:17:56 +00:00
Douglas Gregor 779274575b Properly support bundled properties for members stored in base classes of the bundle
[SVN r33156]
2006-02-27 16:35:26 +00:00
Douglas Gregor 5f28b0237a Add support for compare, combine, inf, and zero in johnson_all_pairs_shortest_paths
[SVN r33148]
2006-02-27 15:38:18 +00:00
Douglas Gregor 29a09c1fc0 Use compare and zero properly
[SVN r33146]
2006-02-27 15:15:13 +00:00
Douglas Gregor 7465bc2c20 Remove bidir_vec_remove_edge
[SVN r33145]
2006-02-27 14:33:49 +00:00
Vladimir Prus 36656fda3d Update Jamfile.v2
[SVN r33068]
2006-02-21 16:02:26 +00:00
Douglas Gregor 0245e863c8 Add some tests
[SVN r33040]
2006-02-20 21:26:46 +00:00
Alisdair Meredith af44a9cfa5 patch for infinite looping on Borland compilers
[SVN r33014]
2006-02-19 17:39:52 +00:00
Douglas Gregor 22ca266765 Improvements to biconnected components, from Janusz Piwowarski
[SVN r32902]
2006-02-13 18:42:30 +00:00
Jeremy Siek 12aa017c9f fixed url
[SVN r32830]
2006-02-11 16:07:16 +00:00
Jeremy Siek bb6401e096 tt
[SVN r32829]
2006-02-11 16:06:38 +00:00
Jeremy Siek 6cff97469a added note about serialization
[SVN r32828]
2006-02-11 16:05:22 +00:00
Jeremy Siek 75100306fe added name tag
[SVN r32827]
2006-02-11 15:48:57 +00:00
Jeremy Siek da3078ed52 added docs for serialization
[SVN r32826]
2006-02-11 15:44:14 +00:00
Douglas Gregor 70bbfe664b Some improvements from Jeremiah Willcock
[SVN r32743]
2006-02-08 16:15:16 +00:00
Douglas Gregor 3f81217fad Don't assume that null_vertex is the same type as vertices_size_type
[SVN r32740]
2006-02-08 15:37:02 +00:00
Douglas Gregor 3d7d3eb428 Work around x86 floating-point roundoff problems
[SVN r32737]
2006-02-08 14:47:35 +00:00
Douglas Gregor 7f05dc489b erdos_renyi_generator.hpp:
- Keep geometric_distribution happy by passing a non-zero probability

compressed_sparse_row_graph.hpp:
  - Weaken precondition for the Parallel BGL


[SVN r32712]
2006-02-07 17:11:29 +00:00
Douglas Gregor 70e0dd2d23 Add documentation, static_asserts for Bidirectional Graph support in adjacency_matrix
[SVN r32706]
2006-02-07 13:15:35 +00:00
Douglas Gregor 654e43a7ed Make adjacency_matrix model the BidirectionalGraph concept
[SVN r32688]
2006-02-07 04:02:22 +00:00
Douglas Gregor 4f36d52ec3 Update license
[SVN r32680]
2006-02-06 22:19:19 +00:00
Douglas Gregor 174d0d2dff Update copyrights
[SVN r32679]
2006-02-06 22:12:57 +00:00
Aaron Windsor f7db7b7771 Clean up
[SVN r32591]
2006-02-05 17:01:37 +00:00
Douglas Gregor d0176ea39d Fix call to dijkstra_shortest_paths_no_init
[SVN r32385]
2006-01-23 20:57:32 +00:00
Douglas Gregor 42b9c97d31 boost/config/stdlib/libstdcpp3.hpp:
- libstdc++ has hashed containers and slist; they're just in a different place

boost/graph/graph_utility.hpp, boost/pending/container_traits.hpp,
boost/graph/adjacency_list.hpp:
  - Deal with weird placement of slist and hash_set


[SVN r32384]
2006-01-23 20:50:27 +00:00
Douglas Gregor 0e08ed3d80 constify adjacency list write routines
[SVN r32382]
2006-01-23 19:32:55 +00:00
Douglas Gregor 665b330286 Fix a typo
[SVN r32381]
2006-01-23 19:29:16 +00:00
Vladimir Prus f36e7b9170 Update Jamfile.v2
[SVN r32351]
2006-01-18 12:46:30 +00:00
Jeremiah Willcock 7815e65261 Fixes to uses of shared_ptr
[SVN r32289]
2006-01-11 21:18:26 +00:00
Douglas Gregor eddae97983 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]
2006-01-10 13:53:48 +00:00
Douglas Gregor e96148194d Don't try to use the serialization library on GCC 2.95.3
[SVN r32274]
2006-01-10 13:43:38 +00:00
Jeremy Siek c668929a24 changed std::map to std::vector
[SVN r32252]
2006-01-06 22:16:39 +00:00
Jeremy Siek e5a0f4f5fc blah
[SVN r32251]
2006-01-06 22:09:01 +00:00
Jeremy Siek efd6f46383 changed to be compatible with old properties
[SVN r32250]
2006-01-06 22:03:54 +00:00
Jeremy Siek 61c59d9c1d added support for serialization
[SVN r32249]
2006-01-06 22:03:18 +00:00
Jeremy Siek 727a9d994d minor edit
[SVN r32248]
2006-01-06 22:02:52 +00:00
Jeremy Siek f836ed2531 updated version of the kevin bacon example to use serialization
[SVN r32246]
2006-01-06 21:44:58 +00:00
Jeremy Siek 5b572a82a3 first draft of serialization for adjacency_list
[SVN r32245]
2006-01-06 21:28:29 +00:00
Jeremiah Willcock a1b7e1cd95 Undid commit of altered version of dominator_tree.hpp
[SVN r32243]
2006-01-06 19:22:34 +00:00
Jeremiah Willcock 9df2b90f56 Refactored indexed property code into separate file
[SVN r32242]
2006-01-06 19:20:38 +00:00
Douglas Gregor 183d88cfb6 Oops, fix non-bundled properties support
[SVN r32236]
2006-01-06 14:14:57 +00:00
Douglas Gregor 472dba30ed Bundled properties now work with adjacency_list I/O
[SVN r32235]
2006-01-06 14:01:55 +00:00
Douglas Gregor d8fc6477d7 Start fixing adjacency_list I/O with bundled properties
[SVN r32234]
2006-01-06 13:17:35 +00:00
Douglas Gregor 2a204d5482 Pull in std::floor
[SVN r32229]
2006-01-05 21:57:36 +00:00
Douglas Gregor db9796ddfd sqrt is in namespace std
[SVN r32197]
2006-01-01 17:20:32 +00:00
Vladimir Prus d629b74d98 Update Jamfile.v2
[SVN r32138]
2005-12-22 10:40:28 +00:00
Vladimir Prus 421842272a Update Jamfile.v2: also compile read_graphviz_spirit.
[SVN r32137]
2005-12-22 10:38:18 +00:00
Vladimir Prus c4d72905bf Remove a couple of "signed/unsigned comparison" warnings from gcc.
Note sure how it went unnoticed.


[SVN r32136]
2005-12-22 09:50:23 +00:00
Aaron Windsor f497c3d195 Modified the predicate used by filtered_graph to avoid errors caused by default-initializing iterator property maps uncovered by gcc in _GLIBCXX_DEBUG mode. Included <algorithm> header for std::sort.
[SVN r32127]
2005-12-22 00:09:22 +00:00
Douglas Gregor 86e4dd21af Documentation updates from JongSoo
[SVN r32126]
2005-12-21 15:28:48 +00:00
Douglas Gregor c8ffc289d9 Overhead calculation
[SVN r32120]
2005-12-20 23:04:16 +00:00
Douglas Gregor 5879c83284 Add sorted_erdos_renyi_iterator, from Jeremiah Willcock
[SVN r32119]
2005-12-20 21:59:51 +00:00
Douglas Gregor 8041171b33 Documentation for JongSoo Park's dominator tree implementation
[SVN r32115]
2005-12-20 16:55:11 +00:00
Jeremiah Willcock 1e416130db Removed redundant copy of erdos_renyi_iterator
[SVN r32082]
2005-12-16 21:48:33 +00:00
Douglas Gregor 2e318dccc1 Don't allow the use of the libstdc++ debug mode with this test
[SVN r32009]
2005-12-12 22:01:08 +00:00
Douglas Gregor 02f8dbe592 Initialization fixes for Dijkstra's single-source shortest paths and breadth-first search
[SVN r32000]
2005-12-12 15:53:50 +00:00
Jeremiah Willcock 18586182a1 Fixed bug when running with _GLIBCXX_DEBUG on
[SVN r31972]
2005-12-10 00:50:17 +00:00
Jeremiah Willcock 0d93784f95 Fixed bug in dominator tree code (trying to increment iterator which was erased)
[SVN r31971]
2005-12-09 23:19:38 +00:00
Jeremiah Willcock 9225f94c4b Added qualification to std::time to fix CodeWarrior test failure
[SVN r31970]
2005-12-09 22:54:11 +00:00
Jeremiah Willcock 69317c5bdc Fixed some CSR and Kruskal bugs, plus trying to get more tests to pass
[SVN r31963]
2005-12-09 06:20:49 +00:00
Jeremiah Willcock ada2d70c01 Added extra qualification to try to fix CW9.4 regression failure
[SVN r31959]
2005-12-08 20:44:12 +00:00
Jeremiah Willcock 5271a6bef6 Used different names for different types to try to fix or isolate VC8 regression failures
[SVN r31958]
2005-12-08 20:43:34 +00:00
Douglas Gregor 6937336a09 Merged from Version_1_33_1
[SVN r31949]
2005-12-08 03:23:02 +00:00
Jeremiah Willcock 9ba47b4b7b Changed log2 to log_base_2 because log2 is a macro on some platforms
[SVN r31905]
2005-12-04 18:50:40 +00:00
Jeremiah Willcock bb1fba7555 Attempted portability fixes
[SVN r31903]
2005-12-04 18:45:47 +00:00
Douglas Gregor e87ac08817 Work around min/max stupidities in Visual C++ headers
[SVN r31899]
2005-12-04 17:24:50 +00:00
Jeremiah Willcock cc60980341 Tried to fix VC8 compatibility problem
[SVN r31898]
2005-12-04 05:41:13 +00:00
Jeremiah Willcock 6fe01d0c4c Added more comprehensive CSR tests, and fixed a few m_last_source-related bugs
[SVN r31897]
2005-12-04 05:28:26 +00:00
Jeremiah Willcock 29d60b8e6a Fixed bug in edge_from_index() when used with partially constructed CSR graphs
[SVN r31894]
2005-12-03 22:24:28 +00:00
Jeremiah Willcock 0e2f464666 Added incremental construction functions to compressed_sparse_row_graph, along with tests and documentation
[SVN r31893]
2005-12-03 21:18:49 +00:00
Douglas Gregor 1e42266075 Dominator tree computation, from JongSoo Park
[SVN r31881]
2005-12-02 16:05:55 +00:00
Douglas Gregor aa3dcfb2e1 Add example for CSR graph
[SVN r31880]
2005-12-02 15:24:02 +00:00
Douglas Gregor 9be555c4f5 Do the complete Where Defined thing
[SVN r31879]
2005-12-02 14:13:52 +00:00
Douglas Gregor 8899a047d4 Discuss actual CSR format
[SVN r31878]
2005-12-02 14:12:44 +00:00
Douglas Gregor 6c93d9b187 Improve documentation for CSR graph
[SVN r31877]
2005-12-02 13:58:18 +00:00
Douglas Gregor a5c1c8d953 Improvements and documentation for compressed_sparse_row_graph
[SVN r31871]
2005-12-01 23:42:01 +00:00
Douglas Gregor 80147f664b Add support for internal properties to the CSR graph
[SVN r31869]
2005-12-01 20:55:37 +00:00
Douglas Gregor 7ae0a8d974 Move constructor parameter to match adjacency_list
[SVN r31866]
2005-12-01 18:28:51 +00:00
Douglas Gregor 549f85c80f Compressed sparse row graph type
[SVN r31865]
2005-12-01 18:24:00 +00:00
Rene Rivera 4df63cf4f3 Merge from RC_1_33_0.
[SVN r31706]
2005-11-19 20:40:20 +00:00
Rene Rivera 6466795448 Merge from RC_1_33_0.
[SVN r31704]
2005-11-19 19:56:13 +00:00
Douglas Gregor 4373b57677 Fix typos
[SVN r31147]
2005-09-29 13:36:46 +00:00
Douglas Gregor 97e891fee0 Use named parameters where appropriate
[SVN r31132]
2005-09-27 14:01:18 +00:00
Jeremy Siek cd346002ea changed some stuff, rearranged and added example
[SVN r31022]
2005-09-18 15:18:19 +00:00
Aaron Windsor 48577cde2f Added external vertex index maps to two function calls where they were missing.
[SVN r31015]
2005-09-17 16:00:55 +00:00
Jeremy Siek 0a4891fcf0 added notes about vertex_index default
[SVN r30998]
2005-09-15 15:38:21 +00:00
Jeremy Siek 91e1935e1d added note about default for vertex_index
[SVN r30997]
2005-09-15 15:21:04 +00:00
Jeremy Siek 8fe7018793 fixed range
[SVN r30995]
2005-09-15 14:22:23 +00:00
Douglas Gregor 85e1d7e344 Remove unnecessary typename
[SVN r30990]
2005-09-15 02:05:00 +00:00
Aaron Windsor ca5bbacc2e Made a few cosmetic changes to the code and simplified the loop that walks up blossoms to find nearest common ancestors.
[SVN r30987]
2005-09-14 16:53:18 +00:00
Douglas Gregor b48254406d Add visitor and named parameter support to biconnected_componnets, from Janusz Piwowarski
[SVN r30919]
2005-09-12 15:25:09 +00:00
Douglas Gregor 49ca29e905 Always use log2
[SVN r30916]
2005-09-12 14:58:37 +00:00
Douglas Gregor e10fef2660 Use an integer log2 instead of the double version
[SVN r30892]
2005-09-09 22:15:05 +00:00
Douglas Gregor fddbb9b66e Add matching_test
[SVN r30859]
2005-09-07 19:12:17 +00:00
Douglas Gregor 48867ed3ab Add bibliography entry for Edmonds maximum cardinality matching algorithm
[SVN r30858]
2005-09-07 18:01:43 +00:00
Douglas Gregor 75d3e89442 Add/fix entry for edmonds_maximum_cardinality_matching
[SVN r30850]
2005-09-07 15:45:27 +00:00
Douglas Gregor ba824058ef edmonds_maximum_cardinality_matching, from Aaron Windsor
[SVN r30848]
2005-09-07 15:39:03 +00:00
Stefan Slapeta fe508c8c46 Turn off debug info for layout_test on intel
[SVN r30745]
2005-08-31 08:23:59 +00:00
Douglas Gregor 73a5b07661 Workaround for GCC 2.95.3
[SVN r30646]
2005-08-24 14:25:37 +00:00
Jeremy Siek bbe399a2b0 added default initialization for property::m_value to quiet warning from gcc 4.0.1
[SVN r30629]
2005-08-22 14:47:48 +00:00
Douglas Gregor 786336804e Fully qualify detail namespace
[SVN r30619]
2005-08-22 01:53:37 +00:00
Jeremy Siek 869dab48ef member functions -> free functions
[SVN r30603]
2005-08-18 14:33:47 +00:00
Vladimir Prus b62baf4ec1 Support null_vertex for filtered_graph.
Thanks to Tiago de Paula Peixoto for the bug report.


[SVN r30583]
2005-08-15 06:13:19 +00:00
Douglas Gregor cf9d1521d8 Merged from 1.33.0 release
[SVN r30540]
2005-08-12 13:02:37 +00:00
1747 changed files with 144049 additions and 22265 deletions
-100
View File
@@ -1,100 +0,0 @@
COPYRIGHT NOTICE:
Copyright 1997-2000, University of Notre Dame.
Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
The Boost Graph Library "Artistic License"
Preamble
The intent of this document is to state the conditions under which a
Package may be copied, such that the Copyright Holder maintains some
semblance of artistic control over the development of the package,
while giving the users of the package the right to use and distribute
the Package in a more-or-less free fashion, plus the right to make
reasonable modifications.
Definitions
"Package" refers to the collection of files distributed by the
Copyright Holder, and derivatives of that collection of files created
through textual modification.
"Standard Version" refers to such a Package if it has not been
modified, or has been modified in accordance with the wishes of the
Copyright Holder as specified below.
"Copyright Holder" is whoever is named in the copyright or copyrights for the package.
"You" is you, if you're thinking about copying or distributing this Package.
"Reasonable copying fee" is whatever you can justify on the basis of
media cost, duplication charges, time of people involved, and so
on. (You will not be required to justify it to the Copyright Holder,
but only to the computing community at large as a market that must
bear the fee.)
"Freely Available" means that no fee is charged for the item itself,
though there may be fees involved in handling the item. It also means
that recipients of the item may redistribute it under the same
conditions they received it.
1. You may make and give away verbatim copies of the source form of
the Standard Version of this Package without restriction, provided
that you duplicate all of the original copyright notices and
associated disclaimers.
2. You may apply bug fixes, portability fixes and other modifications
derived from the Public Domain or from the Copyright Holder. A Package
modified in such a way shall still be considered the Standard Version.
3. You may otherwise modify your copy of this Package in any way,
provided that you insert a prominent notice in each changed file
stating how and when you changed that file, and provided that you do
at least ONE of the following:
a. place your modifications in the Public Domain or otherwise make
them Freely Available, such as by posting said modifications to Usenet
or an equivalent medium, or placing the modifications on a major
archive site such as uunet.uu.net, or by allowing the Copyright Holder
to include your modifications in the Standard Version of the Package.
b. use the modified Package only within your corporation or organization.
c. rename any non-standard types and functions so the names do not
conflict with Standard Vibrary, which must also be provided, and
provide a separate documentation for each non-standard type of function
that clearly documents how it differs from the Standard Version.
d. make other distribution arrangements with the Copyright Holder.
4. You may charge a reasonable copying fee for any distribution of this
Package. You may charge any fee you choose for support of this
Package. You may not charge a fee for this Package itself. However,
you may distribute this Package in aggregate with other (possibly
commercial) programs as part of a larger (possibly commercial)
software distribution provided that you do not advertise this Package
as a product of your own.
5. The name of the Copyright Holder may not be used to endorse or
promote products derived from this software without specific prior
written permission.
DISCLAIMER:
LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
By way of example, but not limitation, Licensor MAKES NO
REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE COMPONENTS
OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS
OR OTHER RIGHTS.
The Authors and the University of Notre Dame du Lac shall not be held
liable for any liability nor for any direct, indirect or consequential
damages with respect to any claim by LICENSEE or any third party on
account of or arising from this Agreement or use of this software.
Any disputes arising out of this Agreement or LICENSEE'S use of the
software at any time shall be resolved by the courts of the state of
Indiana. LICENSEE hereby consents to the jurisdiction of the Indiana
courts and waives the right to challenge the jurisdiction thereof in
any dispute arising out of this Agreement or Licensee's use of the
software.
-50
View File
@@ -1,50 +0,0 @@
subproject libs/graph/build ;
SOURCES = graphviz_graph_lex graphviz_digraph_lex
graphviz_graph_parser graphviz_digraph_parser
read_graphviz_spirit
;
GRAPHVIZ_DEFS(graphviz_graph_lex) =
GRAPHVIZ_DIRECTED=0
;
GRAPHVIZ_DEFS(graphviz_digraph_lex) =
GRAPHVIZ_DIRECTED=1
;
GRAPHVIZ_DEFS(graphviz_graph_parser) =
GRAPHVIZ_DIRECTED=0
;
GRAPHVIZ_DEFS(graphviz_digraph_parser) =
GRAPHVIZ_DIRECTED=1
;
{
rule bgl-lib-file
{
local objects source defs ;
defs = $(DEFINES) ;
for source in $(>)
{
DEFINES = $(defs) $(GRAPHVIZ_DEFS($(source:B))) ;
objects += [ Objects $(source) ] ;
}
LibraryFromObjects $(<) : $(objects) ;
}
local gGENERATOR_FUNCTION(LIB) = bgl-lib-file ;
lib bgl-viz
: ../src/$(SOURCES).cpp
: <sysinclude>$(BOOST_ROOT) <define>YY_NO_UNISTD_H
# Darwin compiler ICEs if we turn optimization on
<darwin><*><debug-symbols>off
<darwin><*><optimization>off
# Intel compiler ICEs if we turn optimization on
<intel-win32><*><optimization>off
<vc-7_1><*><cxxflags>-GR-
: debug <inlining>on #inlining prevents linker name clashes due to truncation!
<debug-symbols>off # Debugging symbols become HUGE
;
}
+22 -19
View File
@@ -1,26 +1,29 @@
# Copyright (c) 2002 Trustees of Indiana University
#
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
import mpi ;
project boost/graph
: requirements <include>../src
: source-location ../src
;
lib bgl-viz
: graphviz_graph_lex
graphviz_digraph_lex
graphviz_graph_parser
graphviz_digraph_parser
: <define>YY_NO_UNISTD_H
;
lib boost_graph
:
read_graphviz_new.cpp
graphml.cpp
:
<library>../../regex/build//boost_regex
<link>shared:<define>BOOST_GRAPH_DYN_LINK=1
# Without these flags, MSVC 7.1 and 8.0 crash
# User reports that VC++ 8.0 does not fail anymore, so that is removed
<toolset>msvc-7.1:<cxxflags>-GR-
:
:
<library>../../regex/build//boost_regex
;
obj graphviz_graph_lex : graphviz_lex.ll
: <flex.prefix>bgl_undir_ <define>GRAPHVIZ_DIRECTED=0
<implicit-dependency>graphviz_graph_parser ;
obj graphviz_graph_parser : graphviz_parser.yy
: <bison.prefix>bgl_undir_ <define>GRAPHVIZ_DIRECTED=0 ;
obj graphviz_digraph_lex : graphviz_lex.ll
: <flex.prefix>bgl_dir_ <define>GRAPHVIZ_DIRECTED=1
<implicit-dependency>graphviz_digraph_parser ;
obj graphviz_digraph_parser : graphviz_parser.yy
: <bison.prefix>bgl_dir_ <define>GRAPHVIZ_DIRECTED=1 ;
boost-install boost_graph ;
-61
View File
@@ -1,61 +0,0 @@
# Copyright 2005 The Trustees of Indiana University.
# 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)
# Authors: Douglas Gregor
# Andrew Lumsdaine
subproject libs/graph/build/python ;
SEARCH on python.jam = $(BOOST_BUILD_PATH) ;
include python.jam ;
extension bgl
: # Sources
../../src/python/module.cpp
# Graph types
../../src/python/graph.cpp
../../src/python/digraph.cpp
# Graph I/O
../../src/python/graphviz.cpp
# Graph algorithms
# Core Algorithm Patterns
../../src/python/breadth_first_search.cpp
../../src/python/depth_first_search.cpp
# Shortest Paths Algorithms
../../src/python/dijkstra_shortest_paths.cpp
../../src/python/bellman_ford_shortest_paths.cpp
../../src/python/dag_shortest_paths.cpp
# Minimum Spanning Tree Algorithms
../../src/python/kruskal_min_spanning_tree.cpp
../../src/python/prim_minimum_spanning_tree.cpp
# Connected Components Algorithms
../../src/python/connected_components.cpp
../../src/python/strong_components.cpp
../../src/python/biconnected_components.cpp
../../src/python/incremental_components.cpp
# ...
# Other algorithms
../../src/python/topological_sort.cpp
../../src/python/transitive_closure.cpp
# ../../src/python/transpose_graph.cpp Need copy_graph to work, first
../../src/python/isomorphism.cpp
../../src/python/betweenness_centrality.cpp
../../src/python/sequential_vertex_coloring.cpp
# Sparse Matrix Ordering
../../src/python/cuthill_mckee_ordering.cpp
../../src/python/king_ordering.cpp
# ../../src/python/minimum_degree_ordering.cpp
../../src/python/circle_layout.cpp
../../src/python/fruchterman_reingold.cpp
../../src/python/kamada_kawai_spring_layout.cpp
../../src/python/page_rank.cpp
# Pickling support
../../src/python/pickle.cpp
<dll>../../../python/build/boost_python
<lib>../bgl-viz
: # Default build
<debug-symbols>off
;
+6 -10
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) 2004 Kris Beevers
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) 2004 Kris Beevers
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: AStarHeuristic</Title>
@@ -132,7 +128,7 @@ Called for the target of every out edge of a vertex being examined.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2004</TD><TD>
<TD nowrap>Copyright &copy; 2004</TD><TD>
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
Rensselaer Polytechnic Institute (<A
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
+12 -16
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) 2004 Kris Beevers
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) 2004 Kris Beevers
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: AStarVisitor</Title>
@@ -74,7 +70,7 @@ taken during the graph search.
<TR>
<TD><tt>WeightMap</tt></TD>
<TD>A type that is a model of <a
href="../../property_map/ReadablePropertyMap.html">Readable Property
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
Map</a>.</TD>
</TR>
@@ -122,7 +118,7 @@ OPEN list.
<td><tt>vis.examine_vertex(u, g)</tt></td>
<td><tt>void</tt></td>
<td>
This is invoked on a vertex as it is popped from the queue (i.e. it
This is invoked on a vertex as it is popped from the queue (i.e., it
has the lowest cost on the OPEN list). This happens immediately before
<tt>examine_edge()</tt> is invoked on each of the out-edges of vertex
<tt>u</tt>.
@@ -164,7 +160,7 @@ assert(compare(combine(d_u, w_e), d_s));
<td><tt>vis.edge_not_relaxed(e, g)</tt></td>
<td><tt>void</tt></td>
<td>
Upon examination, if an edge is not relaxed (see above), then this
Upon examination, if an edge is not relaxed (see above) then this
method is invoked.
</td>
</tr>
@@ -175,7 +171,7 @@ method is invoked.
<td><tt>void</tt></td>
<td>
This is invoked when a vertex that is on the CLOSED list is
``rediscovered'' via a more efficient path, and is re-added to the
``rediscovered'' via a more efficient path and is re-added to the
OPEN list.
</td>
</tr>
@@ -185,8 +181,8 @@ OPEN list.
<td><tt>vis.finish_vertex(u, g)</tt></td>
<td><tt>void</tt></td>
<td>
This is invoked on a vertex when it is added to the CLOSED list, which
happens after all of its out edges have been examined.
This is invoked on a vertex when it is added to the CLOSED list. This
happens after all of its out-edges have been examined.
</td>
</tr>
@@ -207,7 +203,7 @@ happens after all of its out edges have been examined.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2004</TD><TD>
<TD nowrap>Copyright &copy; 2004</TD><TD>
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
Rensselaer Polytechnic Institute (<A
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
+130
View File
@@ -0,0 +1,130 @@
<html>
<head>
<!-- Copyright 2007 Aaron Windsor
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<title>AddEdgeVisitor Concept</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>AddEdgeVisitor Concept</h1>
The AddEdgeVisitor concept exists to allow for some indirection in algorithms
that modify graphs by adding edges. In such algorithms, it may be convenient
to perform additional operations (such as updating an edge index map) at
points in the algorithm where an edge addition occurs. Replacing calls to
to <tt>add_edge</tt> with calls to <tt>AddEdgeVisitor::visit_vertex_pair</tt>
allows for such operations to be defined independently from the algorithm.
<h3>Notation</h3>
<table>
<tbody>
<tr>
<td> <tt>Visitor</tt> </td>
<td> is a type that models the AddEdgeVisitor concept </td>
</tr>
<tr>
<td> <tt>vis</tt> </td>
<td> is an object of type Visitor </td>
</tr>
<tr>
<td> <tt>Graph</tt> </td>
<td> is the type of a graph </td>
</tr>
<tr>
<td> <tt>u,v</tt> </td>
<td> are objects of type <tt>graph_traits&lt;Graph&gt;::vertex_descriptor</tt>
</td>
</tr>
<tr>
<td> <tt>e</tt> </td>
<td> is an object of type <tt>graph_traits&lt;Graph&gt;::edge_descriptor</tt>
</td>
</tr>
<tr>
<td> <tt>v</tt> </td>
<td> is an object of type <tt>graph_traits&lt;Graph&gt;::vertex_descriptor</tt>
</td>
</tr><tr>
<td>
</td></tr></tbody></table>
<h3>Associated Types</h3>
None
<h3>Valid Expressions</h3>
<p>
<table border="1">
<tbody><tr><th>Name</th><th>Expression</th><th>Return Type</th>
<th>Description</th>
</tr><tr>
<td> Add an Edge </td>
<td> <tt>vis.visit_vertex_pair(u, v, g)</tt> </td>
<td> <tt>void</tt></td>
<td> Invoked every time an edge between vertices <tt>u</tt> and <tt>v</tt>
should be added to the graph <tt>g</tt>.
</td></tr>
</tbody></table>
</p><h3>Models</h3>
Two models of this concept are defined in the file
<a href="../../../boost/graph/planar_detail/add_edge_visitors.hpp">
<tt>add_edge_visitors.hpp</tt></a>:
<ul>
<li><tt>default_add_edge_visitor</tt>: The constructor of this class takes
no arguments.<tt>visit_vertex_pair(u, v, g)</tt> is just a dispatch to
<tt>add_edge(u, v, g)</tt>.
<li><tt>edge_index_update_visitor</tt>: The constructor of this class takes
two arguments: the first, an EdgeIndexMap,
is a <a href="../../property_map/doc/ReadWritePropertyMap.html">
ReadWritePropertyMap</a> that maps each edge in the associated graph
<tt>g</tt> to a distinct integer in the range <tt>[0, num_edges(g))</tt>.
The second argument is the number of edges in the underlying graph, which
serves as the "next available index" counter within the visitor.
For example, in the case the graph used has an initialized interior
edge index, the <tt>edge_index_update_visitor</tt> constructor should be
called with <tt>get(edge_index, g)</tt> as the edge index and
<tt>num_edges(g)</tt> as the next available index. When
<tt>visit_vertex_pair(u, v, g)</tt> is called, the
<tt>edge_index_update_visitor</tt> will add the edge <i>(u,v)</i> to the graph
and update the edge index for the newly created edge.
</ul>
<p>
<br>
</p><hr>
Copyright © 2007 Aaron Windsor (<a href="mailto:aaron.windsor@gmail.com">
aaron.windsor@gmail.com</a>)
</body></html>
+7 -11
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>AdjacencyGraph</Title>
@@ -164,8 +160,8 @@ experience with graph algorithm implementations.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+7 -11
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>AdjacencyMatrix</Title>
@@ -99,8 +95,8 @@ The <TT>edge()</TT> function must return in constant time.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+11 -15
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: BFSVisitor</Title>
@@ -144,7 +140,7 @@ edges for undirected graphs.
<td><tt>vis.gray_target(e, g)</tt></td>
<td><tt>void</tt></td>
<td>
This is invoked on the subset of non-tree edges who's target vertex is
This is invoked on the subset of non-tree edges whose target vertex is
colored gray at the time of examination. The color gray indicates
that the vertex is currently in the queue.
</td>
@@ -155,7 +151,7 @@ that the vertex is currently in the queue.
<td><tt>vis.black_target(e, g)</tt></td>
<td><tt>void</tt></td>
<td>
This is invoked on the subset of non-tree edges who's target vertex is
This is invoked on the subset of non-tree edges whose target vertex is
colored black at the time of examination. The color black indicates
that the vertex has been removed from the queue.
</td>
@@ -210,12 +206,12 @@ class count_tree_edges_bfs_visitor(bgl.Graph.BFSVisitor):
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+13
View File
@@ -0,0 +1,13 @@
#!/bin/sh
# Copyright (C) 2009 The Trustees of Indiana University.
# 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)
# Authors: Jeremiah Willcock, Andrew Lumsdaine
for i in read_graphml read_graphviz write_graphml; do
rst2html.py -gdt --link-stylesheet --traceback --trim-footnote-reference-space --footnote-references=superscript --stylesheet=../../../rst.css $i.rst > $i.html
done
# Also see grid_graph_export_png.sh for figure conversions
+7 -11
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>BasicMatrix</Title>
@@ -97,8 +93,8 @@ Element access is constant time.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
+12 -25
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Bellman Ford Visitor</Title>
@@ -79,16 +75,6 @@ none
<th>Name</th><th>Expression</th><th>Return Type</th><th>Description</th>
</tr>
<tr>
<td>Initialize Vertex</td>
<td><tt>vis.initialize_vertex(s, g)</tt></td>
<td><tt>void</tt></td>
<td>
This is invoked on every vertex of the graph before the start of the
graph search.
</td>
</tr>
<tr>
<td>Examine Edge</td>
<td><tt>vis.examine_edge(e, g)</tt></td>
@@ -130,8 +116,8 @@ this method is invoked.
<td><tt>vis.edge_minimized(e, g)</tt></td>
<td><tt>void</tt></td>
<td>
After the <tt>num_vertices(g)</tt> iterations through the edge set
of the graph is complete, one last iteration is made to test whether
After <tt>num_vertices(g)</tt> iterations through the edge set
of the graph are completed, one last iteration is made to test whether
each edge was minimized. If the edge is minimized then this function
is invoked.
</td>
@@ -156,6 +142,7 @@ when there is a negative cycle in the graph.
<li><a href="./bellman_visitor.html"><tt>bellman_visitor</tt></a>
</ul>
<a name="python"></a>
<h3>Python</h3>
To implement a model of the <tt>BellmanFordVisitor</tt> concept in Python,
@@ -183,12 +170,12 @@ class count_tree_edges_bellman_ford_visitor(bgl.Graph.BellmanFordVisitor):
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+7 -11
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Bidirectional</Title>
@@ -171,8 +167,8 @@ undirected graphs).
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+7 -11
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Buffer</Title>
@@ -113,8 +109,8 @@ most linear time complexity in the size of the Generalized Queue.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University and C++ Library & Compiler Group/SGI (<A HREF="mailto:jsiek@engr.sgi.com">jsiek@engr.sgi.com</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University and C++ Library & Compiler Group/SGI (<A HREF="mailto:jsiek@engr.sgi.com">jsiek@engr.sgi.com</A>)
</TD></TR></TABLE>
</BODY>
+9 -13
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: ColorValue Concept</Title>
@@ -98,12 +94,12 @@ href="http://www.sgi.com/tech/stl/DefaultConstructible.html">DefaultConstructibl
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+11 -14
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>DFS Visitor</Title>
@@ -161,7 +157,7 @@ undirected graph this method is never called.
This is invoked on vertex <tt>u</tt> after <tt>finish_vertex</tt> has
been called for all the vertices in the DFS-tree rooted at vertex
<tt>u</tt>. If vertex <tt>u</tt> is a leaf in the DFS-tree, then
the <tt>finish_vertex</tt> function is call on <tt>u</tt> after
the <tt>finish_vertex</tt> function is called on <tt>u</tt> after
all the out-edges of <tt>u</tt> have been examined.
</td>
</tr>
@@ -174,6 +170,7 @@ all the out-edges of <tt>u</tt> have been examined.
<li><a href="./dfs_visitor.html"><tt>dfs_visitor</tt></a>
</ul>
<a name="python"></a>
<h3>Python</h3>
To implement a model of the <tt>DFSVisitor</tt> concept in Python,
@@ -201,12 +198,12 @@ class count_tree_edges_dfs_visitor(bgl.Graph.DFSVisitor):
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+12 -15
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Dijkstra Visitor</Title>
@@ -69,7 +65,7 @@ the search.
<TR>
<TD><tt>DistanceMap</tt></TD>
<TD>A type that is a model of <a href="../../property_map/ReadWritePropertyMap.html">Read/Write Property Map</a>.</TD>
<TD>A type that is a model of <a href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write Property Map</a>.</TD>
</TR>
<TR>
@@ -79,7 +75,7 @@ the search.
<TR>
<TD><tt>WeightMap</tt></TD>
<TD>A type that is a model of <a href="../../property_map/ReadWritePropertyMap.html">Readable Property Map</a>.</TD>
<TD>A type that is a model of <a href="../../property_map/doc/ReadWritePropertyMap.html">Readable Property Map</a>.</TD>
</TR>
<TR>
@@ -184,6 +180,7 @@ search tree and all of the adjacent vertices have been discovered
<li><a href="./dijkstra_visitor.html"><tt>dijkstra_visitor</tt></a>
</ul>
<a name="python"></a>
<h3>Python</h3>
To implement a model of the <tt>DijkstraVisitor</tt> concept in Python,
@@ -211,12 +208,12 @@ class count_tree_edges_dijkstra_visitor(bgl.Graph.DijkstraVisitor):
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+7 -11
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>EdgeListGraph</Title>
@@ -180,8 +176,8 @@ must all return in constant time.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+7 -11
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2001
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2001
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Edge Mutable Graph</Title>
@@ -104,8 +100,8 @@ UNDER CONSTRUCTION
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+9 -13
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: EventVisitor</Title>
@@ -151,12 +147,12 @@ either a vertex or edge descriptor of the graph.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+11 -15
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: EventVisitorList</Title>
@@ -23,7 +19,7 @@
An EventVisitorList is either an <a
href="./EventVisitor.html">EventVisitor</a>, or a list of
EventVisitor's combined using <tt>std::pair</tt>. Each graph algorithm
EventVisitors combined using <tt>std::pair</tt>. Each graph algorithm
defines visitor adaptors that convert an EventVisitorList into the
particular kind of visitor needed by the algorithm.
@@ -95,7 +91,7 @@ Now we can pass the resulting visitor object into
color.begin());
</pre>
For creating a list of more than two event visitors, nest calls to
For creating a list of more than two event visitors, you can nest calls to
<tt>std::make_pair</tt> in the following way:
<pre>
@@ -117,12 +113,12 @@ std::make_pair(<i>visitor1</i>,
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+10 -15
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Graph</Title>
@@ -66,15 +62,14 @@ href="http://www.sgi.com/tech/stl/DefaultConstructible.html">Default Constructib
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>.
<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>.
</td>
</tr>
<tr>
<td><pre>boost::graph_traits&lt;G&gt;::directed_category</pre>
The choices are <TT>directed_tag</TT> and <TT>undirected_tag</TT>.
This type shall be convertible to <TT>directed_tag</TT> or <TT>undirected_tag</TT>.
</td>
</tr>
@@ -145,8 +140,8 @@ any vertex of graph object which type is <tt>G</tt>.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+11 -15
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>IncidenceGraph</Title>
@@ -80,7 +76,7 @@ href="../../utility/MultiPassInputIterator.html">MultiPassInputIterator</a>.
<TR>
<TD><pre>boost::graph_traits&lt;G&gt;::degree_size_type</pre>
The unsigned intergral type used for representing the number
The unsigned integral type used for representing the number
out-edges or incident edges of a vertex.
</TD>
</TR>
@@ -112,7 +108,7 @@ directed graphs) or incident edges (for undirected graphs) of vertex
<TT>u</TT> in graph <TT>g</TT>. The source vertex of an edge obtained
via an out edge iterator is guaranteed (for both directed and
undirected graphs) to be the vertex <tt>u</tt> used in the call to
<tt>out_edges(u, g)</tt> and the target vertex must the a vertex
<tt>out_edges(u, g)</tt> and the target vertex must be a vertex
adjacent to <tt>u</tt>.<a href="#1">[1]</a>
<br>
Return type: <TT>std::pair&lt;out_edge_iterator, out_edge_iterator&gt;</TT>
@@ -192,12 +188,12 @@ Therefore, the extra requirement is added that the out-edge connecting
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+9 -13
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>IteratorConstructibleGraph</Title>
@@ -151,12 +147,12 @@ constructor lacking the graph size information.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+6
View File
@@ -1,3 +1,9 @@
# Copyright (c) 2002 Trustees of Indiana University
#
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
DVIPS = dvips
LATEX = latex
+9 -13
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2001
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2001
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Monoid</Title>
@@ -112,12 +108,12 @@ Return type: <TT>bool</TT>
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+7 -11
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>MutableGraph</Title>
@@ -295,8 +291,8 @@ is no longer a valid vertex descriptor.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+7 -11
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>MutablePropertyGraph</Title>
@@ -146,8 +142,8 @@ Return type: <TT>vertex_descriptor</TT>
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+178
View File
@@ -0,0 +1,178 @@
<html><head><!-- Copyright 2007 Aaron Windsor
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<title>Planar Embedding Concept</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>Planar Embedding Concept</h1>
A planar embedding is an important intermediate representation of a drawing
of a planar graph. Instead of specifying the absolute positions of the vertices
and edges in the plane, a planar embedding specifies their positions relative
to one another. A planar embedding consists of a sequence, for each vertex in
the graph, of all of the edges incident on that vertex in the order in which
they are to be drawn around that vertex.
<p>
A planar embedding is a refinement of
<a href="../../property_map/doc/LvaluePropertyMap.html">LValuePropertyMap</a> that
places additional restrictions the <tt>value_type</tt> used in the property
map.
</p><h3>Notation</h3>
<table>
<tbody>
<tr>
<td> <tt>Embedding</tt> </td>
<td> is a type that models the Planar Embedding concept.</td>
</tr>
<tr>
<td> <tt>embedding</tt> </td>
<td> is an object of type <tt>Embedding</tt>. </td>
</tr>
<tr>
<td> <tt>Graph</tt> </td>
<td> is the type of the underlying graph.</td>
</tr>
<tr>
<td> <tt>e</tt> </td>
<td> is an object of type <tt>graph_traits&lt;Graph&gt;::edge_descriptor</tt>.
</td>
</tr>
<tr>
<td> <tt>v</tt> </td>
<td> is an object of type <tt>graph_traits&lt;Graph&gt;::vertex_descriptor
</tt>.</td>
</tr><tr>
<td>
</td></tr></tbody></table>
<h3>Associated Types</h3>
<table border="1">
<tbody><tr>
<td> Const Iterator </td>
<td> <tt>boost::property_traits&lt;Embedding&gt;::value_type::const_iterator
</tt>
</td>
<td> The iterator type used to iterate over the ordering of the edges in the
planar embedding of a particular vertex
</td>
</tr>
</tbody></table>
<h3>Valid Expressions</h3>
<p>
<table border="1">
<tbody><tr><th>Expression</th><th>Return Type</th><th>Description</th>
</tr><tr>
<td> <tt>embedding[v].begin()</tt> </td>
<td> <tt>boost::property_traits&lt;Embedding&gt;::value_type::const_iterator
</tt></td>
<td> Returns an iterator to the beginning of the range of edges in the
embedding around vertex v</td>
</tr>
<tr>
<td> <tt>embedding[v].end()</tt> </td>
<td> <tt>boost::property_traits&lt;Embedding&gt;::value_type::const_iterator
</tt></td>
<td> Returns an iterator to the end of the range of edges in the
embedding around vertex v</td>
</tr>
<tr>
<td> <tt>embedding[v].clear()</tt> </td>
<td> <tt>void</tt></td>
<td> Clears all edges in the embedding around a vertex <tt>v</tt></td>
</tr>
<tr>
<td> <tt>embedding[v].push_back(e)</tt> </td>
<td> <tt>void</tt></td>
<td> Adds an edge <tt>e</tt> to the end of the sequence of embedded edges
around the vertex <tt>v</tt> </td>
</tr>
</tbody></table>
</p><h3>Complexity Guarantees</h3>
Starting with an empty embedding, any mixed sequence of <i>n</i> calls to a
particular vertex's <tt>push_back</tt> and <tt>clear</tt> should take
<i>O(n)</i> time.
<h3>Models</h3>
Any LValue property map that maps vertices to a <tt>std::vector</tt>,
<tt>std::list</tt>, or <tt>std::deque</tt> models this
concept. Below is an example of using this approach to create a model of
PlanarEmbedding:
<pre>
#include &lt;boost/property_map/property_map.hpp&gt;
#include &lt;vector&gt;
...
// Assume a graph type "Graph" defined somewhere above and
// an instance of Graph in a variable g.
// A typedef for the storage - a vector of vectors of edge descriptors
typedef
std::vector&lt; std::vector&lt; graph_traits&lt;Graph&gt;::edge_descriptor &gt; &gt;
planar_embedding_storage_t;
// A typedef for the iterator property map, assuming the graph has
// an interior vertex index map
typedef
boost::iterator_property_map&lt; planar_embedding_storage_t::iterator,
property_map&lt;Graph, vertex_index_t&gt;::type
&gt;
planar_embedding_t;
// Create an instance of the storage and the property map
planar_embedding_storage_t planar_embedding_storage(num_vertices(g));
planar_embedding_t planar_embedding(planar_embedding_storage.begin(),
get(vertex_index, g)
);
// planar_embedding can now be passed to any function expecting a model
// of PlanarEmbedding.
</pre>
<p>
<br>
</p><hr>
Copyright © 2007 Aaron Windsor (<a href="mailto:aaron.windsor@gmail.com">
aaron.windsor@gmail.com</a>)
</body></html>
+148
View File
@@ -0,0 +1,148 @@
<HTML>
<!-- Copyright 2007 Aaron Windsor
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<HEAD>
<TITLE>Planar Face Visitor Concept</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
ALINK="#ff0000">
<IMG SRC="../../../boost.png"
ALT="C++ Boost" width="277" height="86">
<BR Clear>
<H1>Planar Face Visitor Concept</H1>
This concept defines the visitor interface for
<a href="./planar_face_traversal.html"><tt>planar_face_traversal</tt></a>.
Users can define a class with the Planar Face Visitor interface and pass an
object of the class to <tt>planar_face_traversal</tt>, thereby augmenting the
actions taken during the traversal. Note that objects passed to
<tt>planar_face_traversal</tt> are passed by reference.
<h3>Notation</h3>
<table>
<tbody><tr>
<td><tt>V</tt></td>
<td>A type that is a model of Planar Face Visitor.</td>
</tr>
<tr>
<td><tt>vis</tt></td>
<td>An object of type <tt>V</tt>.</td>
</tr>
<tr>
<td><tt>G</tt></td>
<td>A type that is a model of Graph.</td>
</tr>
<tr>
<td><tt>e</tt></td>
<td>An object of type <tt>boost::graph_traits&lt;G&gt;::edge_descriptor</tt>.
</td>
</tr>
<tr>
<td><tt>v</tt></td>
<td>An object of type <tt>boost::graph_traits&lt;G&gt;::vertex_descriptor</tt>.
</td>
</tr>
</tbody></table>
<h3>Valid Expressions</h3>
<table border="1">
<tbody><tr>
<th>Name</th><th>Expression</th><th>Return Type</th><th>Description</th>
</tr>
<tr>
<td>Begin Traversal</td>
<td><tt>vis.begin_traversal()</tt></td>
<td><tt>void</tt></td>
<td>
This is invoked once per traversal, before the traversal begins.
</td>
</tr>
<tr>
<td>Begin Face</td>
<td><tt>vis.begin_face()</tt></td>
<td><tt>void</tt></td>
<td>
This is invoked once for each face, before any vertices or edges on the face
are visited.
</td>
</tr>
<tr>
<td>Next Vertex</td>
<td><tt>vis.next_vertex(v)</tt></td>
<td><tt>void</tt></td>
<td>
This is invoked when a vertex is encountered while traversing a face.
</td>
</tr>
<tr>
<td>Next Edge</td>
<td><tt>vis.next_edge(e)</tt></td>
<td><tt>void</tt></td>
<td>
This is invoked when an edge is encountered while traversing a face.
</td>
</tr>
<tr>
<td>End Face</td>
<td><tt>vis.end_face()</tt></td>
<td><tt>void</tt></td>
<td>
This is invoked once for each face, after all vertices and edges on the face
are visited.
</td>
</tr>
<tr>
<td>End Traversal</td>
<td><tt>vis.end_traversal()</tt></td>
<td><tt>void</tt></td>
<td>
This is invoked once per traversal, after the traversal ends.
</td>
</tr>
</tbody></table>
<h3>Models</h3>
<ul>
<li> The file <a href="../../../boost/graph/planar_face_traversal.hpp">
<tt>planar_face_traversal.hpp</tt></a> contains a class
<tt>planar_face_traversal_visitor</tt> that implements empty actions for
all event points of a Planar Face Visitor. In the case where only a few of the
event points of Planar Face Visitor need to be implemented, one can derive from
<tt>planar_face_traversal_visitor</tt> and only implement the necessary event
points. <li> The implementation of <a href="./make_maximal_planar.html">
<tt>make_maximal_planar</tt></a> uses a <tt>triangulation_visitor</tt> that is
a model of Planar Face Visitor.
</li>
</ul>
<br>
<HR>
Copyright &copy; 2007 Aaron Windsor (<a href="mailto:aaron.windsor@gmail.com">
aaron.windsor@gmail.com</a>)
</BODY>
</HTML>
+9 -13
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>PropertyGraph</Title>
@@ -94,7 +90,7 @@ function which returns a property map object.
<td><pre>boost::property_map&lt;G, PropertyTag&gt;::type</pre>
The type of the property map for the property specified by
<TT>PropertyTag</TT>. This type must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">ReadWritePropertyMap</a>
href="../../property_map/doc/ReadWritePropertyMap.html">ReadWritePropertyMap</a>
with a key type the same as the graph's vertex or edge descriptor type.
</td>
</tr>
@@ -103,7 +99,7 @@ with a key type the same as the graph's vertex or edge descriptor type.
<td><pre>boost::property_map&lt;G, PropertyTag&gt;::const_type</pre>
The type of the const property map for the property specified by
<TT>PropertyTag</TT>. This type must be a model of <a
href="../../property_map/ReadablePropertyMap.html">ReadablePropertyMap</a>
href="../../property_map/doc/ReadablePropertyMap.html">ReadablePropertyMap</a>
with a key type the same as the graph's vertex or edge descriptor type.
</td>
</tr>
@@ -206,8 +202,8 @@ The <tt>get()</tt> property map function must be constant time.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+8 -12
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Property</Title>
@@ -100,7 +96,7 @@ href="../../../boost/graph/properties.hpp"><tt>boost/graph/properties.hpp</tt></
<a href="./PropertyGraph.html">PropertyGraph</a>
and
<a href="../../property_map/property_map.html">Property Map Concepts</a>
<a href="../../property_map/doc/property_map.html">Property Map Concepts</a>
<h3>Notes</h3>
@@ -113,8 +109,8 @@ type is also required to specialize
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+99
View File
@@ -0,0 +1,99 @@
<HTML>
<!--
Copyright (c) Matyas Egyhazy 2008
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: TSP Tour Visitor</Title>
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
ALINK="#ff0000">
<IMG SRC="../../../boost.png"
ALT="C++ Boost" width="277" height="86">
<BR Clear>
<H1>TSP Tour Visitor concept</H1>
This concept defines the visitor interface for <a
href="./metric_tsp_approx.html"><tt>metric_tsp_approx()</tt></a>
and related algorithms. The user can create a class that matches this
interface, and then pass objects of the class into
<tt>metric_tsp_approx()</tt> to augment the actions taken during
the search.
<h3>Refinement of</h3>
none
<h3>Notation</h3>
<Table>
<TR>
<TD><tt>V</tt></TD>
<TD>A type that is a model of Dijkstra Visitor.</TD>
</TR>
<TR>
<TD><tt>vis</tt></TD>
<TD>An object of type <tt>V</tt>.</TD>
</TR>
<TR>
<TD><tt>G</tt></TD>
<TD>A type that is a model of Graph.</TD>
</TR>
<TR>
<TD><tt>g</tt></TD>
<TD>An object of type <tt>G</tt>.</TD>
</TR>
<TR>
<TD><tt>v</tt></TD>
<TD>An object of type <tt>boost::graph_traits&lt;G&gt;::vertex_descriptor</tt>.</TD>
</TR>
</table>
<h3>Associated Types</h3>
none
<p>
<h3>Valid Expressions</h3>
<table border>
<tr>
<th>Name</th><th>Expression</th><th>Return Type</th><th>Description</th>
</tr>
<tr>
<td>Visit Vertex</td>
<td><tt>vis.visit_vertex(v, g)</tt></td>
<td><tt>void</tt></td>
<td>
This is invoked on each vertex of the graph when it is visited as part of the TSP tour.
</td>
</tr>
</table>
<h3>Models</h3>
<ul>
<li><a href="tsp_tour_visitor.html"><tt>tsp_tour_visitor</tt></a>
<li><a href="tsp_tour_len_visitor.html"><tt>tsp_tour_len_tsp_visitor</tt></a>
</ul>
<br>
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy; 2008</TD><TD>
Matyas Egyhazy</TD></TR></TABLE>
</BODY>
</HTML>
+7 -11
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>VertexAndEdgeListGraph</Title>
@@ -66,8 +62,8 @@ requirements are added.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+7 -11
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>VertexListGraph</Title>
@@ -150,8 +146,8 @@ groups these requirements together, hence the VertexListGraph concept.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+8 -12
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2001
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2001
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Vertex Mutable Graph</Title>
@@ -77,9 +73,9 @@ No additional associated types.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<A HREF="../../../people/jeremy_siek.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee@cs.indiana.edu">llee@cs.indiana.edu</A>)
</TD></TR></TABLE>
</BODY>
+9 -13
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Acknowledgements</Title>
@@ -66,12 +62,12 @@ Science of the U.S. Department of Energy.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+8 -1
View File
@@ -1,4 +1,11 @@
<html>
<!--
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
@@ -35,7 +42,7 @@ namespace boost {
template &lt;class Graph, class VertexDescriptor, class OutEdgeIter&gt;
class adjacency_iterator_generator {
public:
typedef <a href="../../utility/iterator_adaptors.htm#iterator_adaptor">iterator_adaptor</a>&lt;...&gt; type;
typedef <a href="../../iterator/doc/iterator_adaptor.html">iterator_adaptor</a>&lt;...&gt; type;
};
}
</pre>
+110 -60
View File
@@ -1,21 +1,17 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Jeremy Siek makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Adjacency List</Title>
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
ALINK="#ff0000">
<IMG SRC="../../../boost.png"
ALT="C++ Boost" width="277" height="86">
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
ALINK="#ff0000">
<IMG SRC="../../../boost.png"
ALT="C++ Boost" width="277" height="86">
<BR Clear>
@@ -41,7 +37,7 @@ href="#fig:adj-list-graph">Figure 1</a> shows an adjacency list
representation of a directed graph.
<P></P>
<DIV ALIGN="center"><A NAME="fig:adj-list-graph"></A><A NAME="1509"></A>
<DIV ALIGN="center"><A NAME="fig:adj-list-graph"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 1:</STRONG> Adjacency List Representation of a Directed Graph.</CAPTION>
<TR><TD><IMG SRC="./figs/adj-matrix-graph2.gif" width="386" height="284"></TD>
@@ -71,7 +67,7 @@ href="#fig:undir-adj-list-graph">Figure 2</a> shows an adjacency list
representation of an undirected graph.
<P></P>
<DIV ALIGN="center"><A NAME="fig:undir-adj-list-graph"></A><A NAME="1509"></A>
<DIV ALIGN="center"><A NAME="fig:undir-adj-list-graph"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 2:</STRONG> Adjacency List Representation of an Undirected Graph.</CAPTION>
<TR><TD><IMG SRC="./figs/undir-adj-matrix-graph2.gif" width="260" height="240"></TD>
@@ -150,18 +146,21 @@ shows how to represent a family tree with a graph.
<H3>Model of</H3>
<P>
<a href="./VertexAndEdgeListGraph.html">VertexAndEdgeListGraph</a>,
<a href="./VertexAndEdgeListGraph.html">VertexAndEdgeListGraph</a>,
<a href="./MutablePropertyGraph.html">MutablePropertyGraph</a>,
<a href="../../utility/CopyConstructible.html">CopyConstructible</a>,
and <a href="../../utility/Assignable.html">Assignable</a>.
<a href="../../utility/Assignable.html">Assignable</a>,
and <a href="../../serialization/doc/index.html">Serializable</a>.
<P>
<H3>Where Defined</H3>
<P>
<a href="../../../boost/graph/adjacency_list.hpp"><TT>boost/graph/adjacency_list.hpp</TT></a>
<a href="../../../boost/graph/adjacency_list.hpp"><TT>boost/graph/adjacency_list.hpp</TT></a><br><br>
Also, the serialization functionality is in
<a href="../../../boost/graph/adj_list_serialize.hpp"><tt>boost/graph/adj_list_serialize.hpp</tt></a>.
<P>
<H2>Vertex and Edge Properties</H2>
@@ -176,13 +175,13 @@ properties is described in Section <A
HREF="./using_adjacency_list.html#sec:adjacency-list-properties">Internal
Properties </A>. The property maps are objects that implement the
interface defined in Section <A
HREF="../../property_map/property_map.html">Property Map
HREF="../../property_map/doc/property_map.html">Property Map
Concepts</A> or may be <a href="bundles.html">bundled properties</a>,
which have a more succinct syntax. The types of all property values
must be Copy Constructible, Assignable, and Default Constructible.
must be Copy Constructible, Assignable, and Default Constructible.
The property maps obtained from the
<TT>adjacency_list</TT> class are models of the <a
href="../../property_map/LvaluePropertyMap.html">Lvalue Property
href="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property
Map</a> concept. If the <TT>adjacency_list</TT> is const,
then the property map is constant, otherwise the property
map is mutable.
@@ -195,7 +194,7 @@ the <TT>vertex_index_t</TT> property. The indices fall in the range
removed the indices are adjusted so that they retain these
properties. Some care must be taken when using these indices to access
exterior property storage. The property map for vertex index is a
model of <a href="../../property_map/ReadablePropertyMap.html">Readable
model of <a href="../../property_map/doc/ReadablePropertyMap.html">Readable
Property Map</a>.
<P>
@@ -323,30 +322,51 @@ each operation.
<CAPTION ALIGN="BOTTOM"><STRONG>Table:</STRONG>
Summary of Descriptor and Iterator Invalidation.
</CAPTION>
<tr> <th>Function</th> <th>Vertex Desc</th> <th>Edge Desc</th>
<th>Vertex Iter</th> <th>Edge Iter</th> <th>Adj Iter</th> </tr>
<tr>
<td><tt>add_edge()</tt></td> <td align=center><tt>OK</tt></td><td
align=center><tt>OK</tt></td><td align=center><tt>OK</tt></td><td
align=center><tt>EL=vecS &amp;&amp;<br> Directed=directedS</tt></td><td align=center><tt>EL=vecS</tt></td>
<th>Function</th>
<th>Vertex Desc</th>
<th>Edge Desc</th>
<th>Vertex Iter</th>
<th>Edge Iter</th>
<th>Adj Iter</th>
</tr>
<tr>
<td><tt>remove_edge()<br>remove_edge_if()<br>remove_out_edge_if()<br>remove_in_edge_if()<br>clear_vertex()</tt></td><td align=center><tt>OK</tt></td><td align=center><tt>OK</tt></td><td align=center><tt>OK</tt></td>
<td align=center><tt>EL=vecS &amp;&amp;<br> Directed=directedS</tt></td><td align=center><tt>EL=vecS</tt></td>
<td>
<tt>add_edge()</tt></td>
<td align=center><tt>OK</tt></td>
<td align=center><tt>OK</tt></td>
<td align=center><tt>OK</tt></td>
<td align=center><tt>EL=vecS &amp;&amp; <br>Directed=directedS</tt></td>
<td align=center><tt>EL=vecS</tt></td>
</tr>
<tr>
<td><tt>add_vertex()</tt></td><td align=center><tt>OK</tt></td><td
align=center><tt>OK</tt></td><td align=center><tt>OK</tt></td><td
align=center><tt>OK</tt></td><td align=center><tt>OK</tt></td>
<td><tt>remove_edge()<br>remove_edge_if()<br>remove_out_edge_if()<br>
remove_in_edge_if()<br>clear_vertex()</tt>
</td>
<td align=center><tt>OK</tt></td>
<td align=center><tt>OK</tt></td>
<td align=center><tt>OK</tt></td>
<td align=center><tt>EL=vecS &amp;&amp; <br>Directed=directedS</tt></td>
<td align=center><tt>EL=vecS</tt></td>
</tr>
<tr>
<td><tt>remove_vertex()</tt></td><td align=center><tt>VL=vecS</tt></td><td align=center><tt>VL=vecS</tt></td><td align=center><tt>VL=vecS</tt></td><td align=center><tt>VL=vecS</tt></td><td align=center><tt>VL=vecS</tt></td>
<td><tt>add_vertex()</tt></td>
<td align=center><tt>OK</tt></td>
<td align=center><tt>OK</tt></td>
<td align=center><tt>OK</tt></td>
<td align=center><tt>VL=vecS &amp;&amp; <br/> Directed=directedS</tt></td>
<td align=center><tt>VL=vecS &amp;&amp; <br/> Directed=directedS</tt></td>
</tr>
<tr>
<td><tt>remove_vertex()</tt></td>
<td align=center><tt>VL=vecS</tt></td>
<td align=center><tt>VL=vecS</tt></td>
<td align=center><tt>VL=vecS</tt></td>
<td align=center><tt>VL=vecS</tt></td>
<td align=center><tt>VL=vecS</tt></td>
</tr>
</table>
<H2>Associated Types</H2>
<hr>
@@ -355,7 +375,7 @@ align=center><tt>OK</tt></td><td align=center><tt>OK</tt></td>
<br>
and
<br>
<tt>adjacency_list_traits&lt;OutEdgeList, VertexList, Directed&gt;::vertex_descriptor</tt>
<tt>adjacency_list_traits&lt;OutEdgeList, VertexList, Directed, EdgeList&gt;::vertex_descriptor</tt>
<br><br>
The type for the vertex descriptors associated with the
<TT>adjacency_list</TT>.
@@ -364,7 +384,7 @@ The type for the vertex descriptors associated with the
<tt>graph_traits&lt;adjacency_list&gt;::edge_descriptor</tt><br>
and<br>
<tt>adjacency_list_traits&lt;OutEdgeList, VertexList, Directed&gt;::edge_descriptor</tt>
<tt>adjacency_list_traits&lt;OutEdgeList, VertexList, Directed, EdgeList&gt;::edge_descriptor</tt>
<br><br>
The type for the edge descriptors associated with the
<TT>adjacency_list</TT>.
@@ -425,7 +445,7 @@ as <tt>out_edge_iterator</tt>.
<tt>graph_traits&lt;adjacency_list&gt;::directed_category</tt><br>
and<br>
<tt>adjacency_list_traits&lt;OutEdgeList, VertexList, Directed&gt;::directed_category</tt>
<tt>adjacency_list_traits&lt;OutEdgeList, VertexList, Directed, EdgeList&gt;::directed_category</tt>
<br><br>
Provides information about whether the graph is
directed (<TT>directed_tag</TT>) or undirected
@@ -435,7 +455,7 @@ directed (<TT>directed_tag</TT>) or undirected
<tt>graph_traits&lt;adjacency_list&gt;::edge_parallel_category</tt><br>
and<br>
<tt>adjacency_list_traits&lt;OutEdgeList, VertexList, Directed&gt;::edge_parallel_category</tt>
<tt>adjacency_list_traits&lt;OutEdgeList, VertexList, Directed, EdgeList&gt;::edge_parallel_category</tt>
<br><br>
This describes whether the graph class allows the insertion of
parallel edges (edges with the same source and target). The two tags
@@ -446,13 +466,17 @@ parallel edges while the others allow parallel edges.
<hr>
<tt>graph_traits&lt;adjacency_list&gt;::vertices_size_type</tt>
<tt>graph_traits&lt;adjacency_list&gt;::vertices_size_type</tt><br>
and<br>
<tt>adjacency_list_traits&lt;OutEdgeList, VertexList, Directed_list, EdgeList&gt;::vertices_size_type</tt><br>
<br><br>
The type used for dealing with the number of vertices in the graph.
<hr>
<tt>graph_traits&lt;adjacency_list&gt;::edge_size_type</tt>
<tt>graph_traits&lt;adjacency_list&gt;::edge_size_type</tt><br>
and<br>
<tt>adjacency_list_traits&lt;OutEdgeList, VertexList, Directed_list, EdgeList&gt;::edge_size_type</tt><br>
<br><br>
The type used for dealing with the number of edges in the graph.
@@ -536,7 +560,7 @@ Assignment operator. Makes this graph a copy of graph
<hr>
<pre>
adjacency_list(vertices_size_type&nbsp;n,
adjacency_list(vertices_size_type&nbsp;n,
const&nbsp;GraphProperty&amp;&nbsp;p = GraphProperty())
</pre>
Creates a graph object with <TT>n</TT> vertices and zero edges.
@@ -547,8 +571,8 @@ Creates a graph object with <TT>n</TT> vertices and zero edges.
<pre>
template &lt;class&nbsp;EdgeIterator&gt;
adjacency_list(EdgeIterator&nbsp;first, EdgeIterator&nbsp;last,
vertices_size_type&nbsp;n,
edges_size_type&nbsp;m = 0,
vertices_size_type&nbsp;n,
edges_size_type&nbsp;m = 0,
const&nbsp;GraphProperty&amp;&nbsp;p&nbsp;=&nbsp;GraphProperty())
</pre>
Creates a graph object with <TT>n</TT> vertices and with the edges
@@ -568,7 +592,7 @@ template &lt;class&nbsp;EdgeIterator, class&nbsp;EdgePropertyIterator&gt;
adjacency_list(EdgeIterator&nbsp;first, EdgeIterator&nbsp;last,
EdgePropertyIterator&nbsp;ep_iter,
vertices_size_type&nbsp;n,
vertices_size_type&nbsp;m = 0,
edges_size_type&nbsp;m = 0,
const&nbsp;GraphProperty&amp;&nbsp;p&nbsp;=&nbsp;GraphProperty())
</pre>
Creates a graph object with <TT>n</TT> vertices and with the edges
@@ -597,7 +621,7 @@ void swap(adjacency_list&amp; x)
Swap the vertices, edges, and properties of this graph with the
vertices, edges, and properties of graph <tt>x</tt>.
<hr>
<P>
<H2>Non-Member Functions</H2>
@@ -778,7 +802,7 @@ returned edge descriptor points to the already existing edge.
<p>
The placement of the new edge in the out-edge list is in general
unspecified, though ordering of the out-edge list can be accomplished
through the choice of <tt>OutEdgeList</tt>.
through the choice of <tt>OutEdgeList</tt>.
If the <tt>VertexList</tt> selector is
<tt>vecS</tt>, and if either vertex descriptor <tt>u</tt> or
@@ -818,7 +842,7 @@ value of the edge's internal property storage. Also see the previous
void remove_edge(vertex_descriptor u, vertex_descriptor v,
adjacency_list&amp; g)
</pre>
Removes the edge <i>(u,v)</i> from the graph.
Removes the edge <i>(u,v)</i> from the graph.
<p>
This operation causes any outstanding edge descriptors or iterators
that point to edge <i>(u,v)</i> to become invalid. In addition, if
@@ -864,7 +888,7 @@ void remove_out_edge_if(vertex_descriptor u, Predicate predicate,
</pre>
Removes all out-edges of vertex <i>u</i> from the graph that satisfy
the <tt>predicate</tt>. That is, if the predicate returns true when
applied to an edge descriptor, then the edge is removed.
applied to an edge descriptor, then the edge is removed.
<p>
The affect on descriptor and iterator stability is the same as that of
invoking <tt>remove_edge()</tt> on each of the removed edges.
@@ -896,7 +920,7 @@ void remove_edge_if(Predicate predicate, adjacency_list&amp; g)
</pre>
Removes all edges from the graph that satisfy
the <tt>predicate</tt>. That is, if the predicate returns true when
applied to an edge descriptor, then the edge is removed.
applied to an edge descriptor, then the edge is removed.
<p>
The affect on descriptor and iterator stability is the same as that of
invoking <tt>remove_edge()</tt> on each of the removed edges.
@@ -909,7 +933,7 @@ vertex_descriptor
add_vertex(adjacency_list&amp; g)
</pre>
Adds a vertex to the graph and returns the vertex descriptor for the
new vertex.
new vertex.
</a>
<hr>
@@ -972,7 +996,7 @@ void remove_vertex(vertex_descriptor u, adjacency_list&amp; g)
Remove vertex <i>u</i> from the vertex set of the graph. It is assumed
that there are no edges to or from vertex <i>u</i> when it is removed.
One way to make sure of this is to invoke <TT>clear_vertex()</TT>
beforehand.
beforehand.
<p>
If the <TT>VertexList</TT> template parameter of the
<TT>adjacency_list</TT> was <TT>vecS</TT>, then all vertex
@@ -1053,9 +1077,35 @@ attached to the graph object <tt>g</tt>. The <tt>graph_property</tt>
traits class is defined in <a
href="../../../boost/graph/adjacency_list.hpp"><tt>boost/graph/adjacency_list.hpp</tt></a>.
<!-- add the shortcut property functions -->
<hr>
<!-- add the shortcut property functions -->
<h4><a name="serialization">Serialization</a></h4>
<hr>
<pre>
template&lt;class <a href="../../serialization/doc/archives.html#saving_interface">SavingArchive</a>&gt;
SavingArchive&amp; operator<<(SavingArchive&amp; ar, const adjacency_list&amp graph);
</pre>
Serializes the graph into the archive. Requires the vertex and edge properties of the
graph to be <a href="../../serialization/doc/index.html">Serializable</a>.
<br>
Include <a href="../../../boost/graph/adj_list_serialize.hpp"><tt>boost/graph/adj_list_serialize.hpp</tt></a>.
<hr>
<pre>
template&lt;class <a href="../../serialization/doc/archives.html#loading_interface">LoadingArchive</a>&gt;
LoadingArchive&amp; operator>>(LoadingArchive&amp; ar, const adjacency_list&amp graph);
</pre>
Reads the graph from the archive. Requires the vertex and edge properties of the
graph to be <a href="../../serialization/doc/index.html">Serializable</a>.
<br>
Include <a href="../../../boost/graph/adj_list_serialize.hpp"><tt>boost/graph/adj_list_serialize.hpp</tt></a>.
<hr>
<h3>See Also</h3>
@@ -1070,18 +1120,18 @@ href="../../../boost/graph/adjacency_list.hpp"><tt>boost/graph/adjacency_list.hp
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
</HTML>
</HTML>
<!-- LocalWords: gif ALT OutEdgeList EdgeList VertexList html VertexProperties EdgeProperties
-->
<!-- LocalWords: GraphPropertyTag cpp enum ai cout endl VertexAndEdgeListGraph
+9 -13
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Graph Traits</Title>
@@ -148,12 +144,12 @@ parallel edges (<tt>disallow_parallel_edge_tag</tt>).
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+55 -29
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Jeremy Siek makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Adjacency Matrix</Title>
@@ -36,7 +32,7 @@ href="#fig:adj-matrix-graph">Figure 1</a> shows the adjacency matrix
representation of a graph.
<P></P>
<DIV ALIGN="center"><A NAME="fig:adj-matrix-graph"></A><A NAME="1509"></A>
<DIV ALIGN="center"><A NAME="fig:adj-matrix-graph"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 1:</STRONG> Adjacency Matrix Representation of a Directed Graph.</CAPTION>
<TR><TD><IMG SRC="./figs/adj-matrix-graph3.gif" width="386" height="284"></TD>
@@ -76,7 +72,7 @@ href="#fig:undir-adj-matrix-graph">Figure 2</a> shows an adjacency
matrix representation of an undirected graph.
<P></P>
<DIV ALIGN="center"><A NAME="fig:undir-adj-matrix-graph"></A><A NAME="1509"></A>
<DIV ALIGN="center"><A NAME="fig:undir-adj-matrix-graph"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 1:</STRONG> Adjacency Matrix Representation of an Undirected Graph.</CAPTION>
<TR><TD><IMG SRC="./figs/undir-adj-matrix-graph3.gif" width="260" height="240"></TD>
@@ -209,14 +205,17 @@ The output is:
<h3>Model Of</h3>
<a href="./VertexAndEdgeListGraph.html">VertexAndEdgeListGraph</a>, <a
<a href="./VertexAndEdgeListGraph.html">VertexAndEdgeListGraph</a>,
<a href="./IncidenceGraph.html">Incidence Graph</a>,
<a href="./BidirectionalGraph.html">Bidirectional Graph</a>,
<a
href="./AdjacencyMatrix.html">AdjacencyMatrix</a>, <a
href="./MutablePropertyGraph.html">MutablePropertyGraph</a>,
<a href="../../utility/CopyConstructible.html">CopyConstructible</a>,
and <a href="../../utility/Assignable.html">Assignable</a>.
<h3>Associates Types</h3>
<h3>Associated Types</h3>
<hr>
@@ -255,6 +254,13 @@ The type for the edge descriptors associated with the
iterator models <a href="../../utility/MultiPassInputIterator.html">MultiPassInputIterator</a>. <br>
(Required by <a href="IncidenceGraph.html">IncidenceGraph</a>.)
<hr>
<tt>graph_traits&lt;adjacency_matrix&gt;::in_edge_iterator</tt>
<br><br>
The type for the iterators returned by <tt>in_edges()</tt>. This
iterator models <a href="../../utility/MultiPassInputIterator.html">MultiPassInputIterator</a>. <br>
(Required by <a href="BidirectionalGraph.html">BidirectionalGraph</a>.)
<hr>
<tt>graph_traits&lt;adjacency_matrix&gt;::adjacency_iterator</tt>
<br><br>
@@ -361,15 +367,15 @@ adjacency_matrix(EdgeIterator first, EdgeIterator last,
std::pair&lt;vertex_iterator, vertex_iterator&gt;
vertices(const adjacency_matrix&amp; g)
</pre>
Returns an iterator-range providing access to the vertex set of graph <tt>g</i>.<br>
Returns an iterator-range providing access to the vertex set of graph <tt>g</tt>.<br>
(Required by <a href="VertexListGraph.html">VertexListGraph</a>.)
<hr>
<pre>
std::pair&lt;edge_iterator, edge_iterator&gt;
edges(const adjacency_matrix&amp; g)
edges(const adjacency_matrix&amp; g);
</pre>
Returns an iterator-range providing access to the edge set of graph <tt>g</i>.<br>
Returns an iterator-range providing access to the edge set of graph <tt>g</tt>.<br>
(Required by <a href="EdgeListGraph.html">EdgeListGraph</a>.)
<hr>
@@ -378,7 +384,7 @@ std::pair&lt;adjacency_iterator, adjacency_iterator&gt;
adjacent_vertices(vertex_descriptor v, const adjacency_matrix&amp; g)
</pre>
Returns an iterator-range providing access to the vertices adjacent to
vertex <tt>v</i> in graph <tt>g</i>.<br>
vertex <tt>v</tt> in graph <tt>g</tt>.<br>
(Required by <a href="AdjacencyGraph.html">AdjacencyGraph</a>.)
<hr>
@@ -387,9 +393,9 @@ std::pair&lt;out_edge_iterator, out_edge_iterator&gt;
out_edges(vertex_descriptor v, const adjacency_matrix&amp; g)
</pre>
Returns an iterator-range providing access to the out-edges of
vertex <tt>v</i> in graph <tt>g</i>. If the graph is undirected,
this iterator-range provides access to all edge incident on
vertex <tt>v</i>. <br>
vertex <tt>v</tt> in graph <tt>g</tt>. If the graph is undirected,
this iterator-range provides access to all edges incident on
vertex <tt>v</tt>. <br>
(Required by <a href="IncidenceGraph.html">IncidenceGraph</a>.)
<hr>
@@ -397,7 +403,7 @@ vertex <tt>v</i>. <br>
vertex_descriptor
source(edge_descriptor e, const adjacency_matrix&amp; g)
</pre>
Returns the source vertex of edge <tt>e</i>.<br>
Returns the source vertex of edge <tt>e</tt>.<br>
(Required by <a href="IncidenceGraph.html">IncidenceGraph</a>.)
<hr>
@@ -405,7 +411,7 @@ Returns the source vertex of edge <tt>e</i>.<br>
vertex_descriptor
target(edge_descriptor e, const adjacency_matrix&amp; g)
</pre>
Returns the target vertex of edge <tt>e</i>.<br>
Returns the target vertex of edge <tt>e</tt>.<br>
(Required by <a href="IncidenceGraph.html">IncidenceGraph</a>.)
<hr>
@@ -413,15 +419,35 @@ Returns the target vertex of edge <tt>e</i>.<br>
degree_size_type
out_degree(vertex_descriptor u, const adjacency_matrix&amp; g)
</pre>
Returns the number of edges leaving vertex <tt>u</i>.<br>
Returns the number of edges leaving vertex <tt>u</tt>.<br>
(Required by <a href="IncidenceGraph.html">IncidenceGraph</a>.)
<hr>
<hr>
<pre>
std::pair&lt;in_edge_iterator, in_edge_iterator&gt;
in_edges(vertex_descriptor v, const adjacency_matrix&amp; g)
</pre>
Returns an iterator-range providing access to the in-edges of
vertex <tt>v</tt> in graph <tt>g</tt>. If the graph is undirected,
this iterator-range provides access to all edges incident on
vertex <tt>v</tt>. <br>
(Required by <a href="BidirectionalGraph.html">BidirectionalGraph</a>.)
<hr>
<pre>
degree_size_type
in_degree(vertex_descriptor u, const adjacency_matrix&amp; g)
</pre>
Returns the number of edges entering vertex <tt>u</tt>.<br>
(Required by <a href="BidirectionalGraph.html">BidirectionalGraph</a>.)
<hr>
<hr>
<pre>
vertices_size_type num_vertices(const adjacency_matrix&amp; g)
</pre>
Returns the number of vertices in the graph <tt>g</i>.<br>
Returns the number of vertices in the graph <tt>g</tt>.<br>
(Required by <a href="VertexListGraph.html">VertexListGraph</a>.)
<hr>
@@ -443,7 +469,7 @@ std::pair&lt;edge_descriptor, bool&gt;
edge(vertex_descriptor u, vertex_descriptor v,
const adjacency_matrix&amp; g)
</pre>
Returns the edge connecting vertex <tt>u</i> to vertex <tt>v</i> in graph <tt>g</i>.<br>
Returns the edge connecting vertex <tt>u</tt> to vertex <tt>v</tt> in graph <tt>g</tt>.<br>
(Required by <a href="AdjacencyMatrix.html">AdjacencyMatrix</a>.)
<hr>
@@ -452,7 +478,7 @@ std::pair&lt;edge_descriptor, bool&gt;
add_edge(vertex_descriptor u, vertex_descriptor v,
adjacency_matrix&amp; g)
</pre>
Adds edge <tt>(u,v)</i> to the graph and returns the edge descriptor for
Adds edge <tt>(u,v)</tt> to the graph and returns the edge descriptor for
the new edge. If the edge is already in the graph then a duplicate
will not be added and the <tt>bool</tt> flag will be <tt>false</tt>.
This operation does not invalidate any of the graph's iterators
@@ -466,7 +492,7 @@ add_edge(vertex_descriptor u, vertex_descriptor v,
const EdgeProperty& p,
adjacency_matrix&amp; g)
</pre>
Adds edge <tt>(u,v)</i> to the graph and attaches <tt>p</tt> as the
Adds edge <tt>(u,v)</tt> to the graph and attaches <tt>p</tt> as the
value of the edge's internal property storage. Also see the previous
<tt>add_edge()</tt> member function for more details.
@@ -475,7 +501,7 @@ value of the edge's internal property storage. Also see the previous
void remove_edge(vertex_descriptor u, vertex_descriptor v,
adjacency_matrix&amp; g)
</pre>
Removes the edge <tt>(u,v)</i> from the graph. <br>
Removes the edge <tt>(u,v)</tt> from the graph. <br>
(Required by <a href="MutableGraph.html">MutableGraph</a>.)
<hr>
@@ -490,7 +516,7 @@ to calling <tt>remove_edge(source(e, g), target(e, g), g)</tt>.<br>
<pre>
void clear_vertex(vertex_descriptor u, adjacency_matrix&amp; g)
</pre>
Removes all edges to and from vertex <tt>u</i>. The vertex still appears
Removes all edges to and from vertex <tt>u</tt>. The vertex still appears
in the vertex set of the graph.<br>
(Required by <a href="MutableGraph.html">MutableGraph</a>.)
+6 -10
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) 2004 Kris Beevers
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) 2004 Kris Beevers
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: astar_heuristic</Title>
@@ -90,7 +86,7 @@ to a goal.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2004</TD><TD>
<TD nowrap>Copyright &copy; 2004</TD><TD>
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
Rensselaer Polytechnic Institute (<A
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
+44 -19
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) 2004 Kris Beevers
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) 2004 Kris Beevers
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: A* Heuristic Search</Title>
@@ -54,6 +50,28 @@ astar_search
VertexIndexMap index_map, ColorMap color,
CompareFunction compare, CombineFunction combine,
CostInf inf, CostZero zero);
<i>// Version that does not initialize property maps (used for implicit graphs)</i>
template &lt;typename VertexListGraph, typename AStarHeuristic,
typename <a href="AStarVisitor.html">AStarVisitor</a>, typename PredecessorMap,
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 CostInf, typename CostZero&gt;
inline void
astar_search_no_init
(VertexListGraph &amp;g,
typename graph_traits&lt;VertexListGraph&gt;::vertex_descriptor s,
AStarHeuristic h, AStarVisitor vis,
PredecessorMap predecessor, CostMap cost,
DistanceMap distance, WeightMap weight,
ColorMap color, VertexIndexMap index_map,
CompareFunction compare, CombineFunction combine,
CostInf inf, CostZero zero);
<b>Note that the index_map and color parameters are swapped in
astar_search_no_init relative to astar_search.</b>
</PRE>
<P>
@@ -96,7 +114,10 @@ useful for searching large state spaces -- in gameplaying scenarios
(e.g. chess), for example -- in which it may not be possible to store
the entire graph. Implicit searches can be performed with this
implementation of A* by creating special visitors that generate
neighbors of newly-expanded vertices.
neighbors of newly-expanded vertices. Please note that
<tt>astar_search_no_init()</tt> must be used for implicit graphs; the basic
<tt>astar_search()</tt> function requires a graph that models
<a href="VertexListGraph.html"><tt>VertexListGraph</tt></a>.
</P>
<P>
@@ -238,7 +259,7 @@ IN: <tt>weight_map(WeightMap w_map)</tt>
href="./exception.html#negative_edge"><tt>negative_edge</tt></a>
exception if one of the edges is negative. The type
<tt>WeightMap</tt> must be a model of <a
href="../../property_map/ReadablePropertyMap.html"><tt>Readable
href="../../property_map/doc/ReadablePropertyMap.html"><tt>Readable
Property Map</tt></a>. The edge descriptor type of the graph needs
to be usable as the key type for the weight map. The value type
for this map must be the same as the value type of the distance
@@ -252,12 +273,16 @@ IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
num_vertices(g))</tt>. This is necessary for efficient updates of
the heap data structure when an edge is relaxed. The type
<tt>VertexIndexMap</tt> must be a model of <a
href="../../property_map/ReadablePropertyMap.html"><tt>Readable
href="../../property_map/doc/ReadablePropertyMap.html"><tt>Readable
Property Map</tt></a>. The value type of the map must be an integer
type. The vertex descriptor type of the graph needs to be usable as
the key type of the map.<br>
<b>Default:</b> <tt>get(vertex_index, g)</tt>
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
Note: if you use this default, make sure your graph has
an internal <tt>vertex_index</tt> property. For example,
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
not have an internal <tt>vertex_index</tt> property.
</blockquote>
OUT: <tt>predecessor_map(PredecessorMap p_map)</tt>
@@ -269,7 +294,7 @@ OUT: <tt>predecessor_map(PredecessorMap p_map)</tt>
<tt>p[u] = u</tt> then <tt>u</tt> is either the start vertex or a
vertex that is not reachable from the start. The
<tt>PredecessorMap</tt> type must be a <a
href="../../property_map/ReadWritePropertyMap.html"><tt>Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html"><tt>Read/Write
Property Map</tt></a> with key and vertex types the same as the
vertex descriptor type of the graph.<br>
@@ -283,7 +308,7 @@ UTIL/OUT: <tt>distance_map(DistanceMap d_map)</tt>
vertex in the graph <tt>g</tt> is recorded in this property map.
The shortest path weight is the sum of the edge weights along the
shortest path. The type <tt>DistanceMap</tt> must be a model of <a
href="../../property_map/ReadWritePropertyMap.html"><tt>Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html"><tt>Read/Write
Property Map</tt></a>. The vertex descriptor type of the graph
needs to be usable as the key type of the distance map. The value
type of the distance map is the element type of a <a
@@ -307,7 +332,7 @@ UTIL/OUT: <tt>rank_map(CostMap c_map)</tt>
the estimated cost (as returned by the heuristic function
<tt>h</tt>) from the vertex to a goal. The type <tt>CostMap</tt>
must be a model of <a
href="../../property_map/ReadWritePropertyMap.html"><tt>Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html"><tt>Read/Write
Property Map</tt></a>. The vertex descriptor type of the graph
needs to be usable as the key type of the distance map. The value
type of the distance map is the element type of a <a
@@ -336,7 +361,7 @@ UTIL/OUT: <tt>color_map(ColorMap c_map)</tt>
reachable from the source vertex will have been colored black. All
other vertices will still be white. The type <tt>ColorMap</tt> must
be a model of <a
href="../../property_map/ReadWritePropertyMap.html"><tt>Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html"><tt>Read/Write
Property Map</tt></a>. A vertex descriptor must be usable as the
key type of the map, and the value type of the map must be a model
of <a href="./ColorValue.html"><tt>Color Value</tt></a>.<br>
@@ -439,7 +464,7 @@ The time complexity is <i>O((E + V) log V)</i>.
is invoked on edge <i>(u,v)</i> if <i>d[u] + w(u,v) < d[v]</i>.
<li><b><tt>vis.edge_not_relaxed(e, g)</tt></b>
is invoked if the edge is not relaxed (see above).
<li><b><tt>vis.black_target(u, g)</tt></b>
<li><b><tt>vis.black_target(e, g)</tt></b>
is invoked when a vertex that is on the CLOSED list is
"rediscovered" via a more efficient path, and is re-added to the
OPEN list.
@@ -467,7 +492,7 @@ this state by pointer or reference.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2004</TD><TD>
<TD nowrap>Copyright &copy; 2004</TD><TD>
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
Rensselaer Polytechnic Institute (<A
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
+6 -10
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) 2004 Kris Beevers
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) 2004 Kris Beevers
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: astar_visitor</Title>
@@ -102,7 +98,7 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2004</TD><TD>
<TD nowrap>Copyright &copy; 2004</TD><TD>
<A HREF="http://www.cs.rpi.edu/~beevek/">Kristopher Beevers</A>,
Rensselaer Polytechnic Institute (<A
HREF="mailto:beevek@cs.rpi.edu">beevek@cs.rpi.edu</A>)
+7 -11
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Bandwidth</Title>
@@ -89,8 +85,8 @@ of the i-th bandwidths <i>B<sub>i</sub>(G)</i>.<br>
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+16 -5
View File
@@ -1,4 +1,11 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
Copyright (c) 2004 Trustees of Indiana University
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<html>
<head>
<meta name="generator" content=
@@ -54,7 +61,7 @@ clustering based on edge betweenness centrality.</p>
<h2>Description</h2>
<p>This algorithm implements graph clustering based on edge
betweenness centrality. It is an iterative algorithm, where in each
step it compute the edge betweenness centrality (via <a href=
step it computes the edge betweenness centrality (via <a href=
"betweenness_centrality.html">brandes_betweenness_centrality</a>) and
removes the edge with the maximum betweenness centrality. The
<tt class="computeroutput">done</tt> function object determines
@@ -89,7 +96,7 @@ OUT/UTIL: <tt>EdgeCentralityMap edge_centrality_map</tt>
This property map is used to accumulate the betweenness centrality
of each edge, and is a secondary form of output for the
algorithm. The type <tt>EdgeCentralityMap</tt> must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a>, with the graph's edge descriptor type as its key
type. The value type of this property map should be the same as the
value type of the <tt>CentralityMap</tt> property map.<br>
@@ -107,10 +114,14 @@ IN: <tt>VertexIndexMap vertex_index</tt>
num_vertices(g))</tt>. This is necessary for efficient updates of the
heap data structure when an edge is relaxed. The type
<tt>VertexIndexMap</tt> must be a model of
<a href="../../property_map/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
integer type. The vertex descriptor type of the graph needs to be
usable as the key type of the map.<br>
<b>Default:</b> <tt>get(vertex_index, g)</tt><br>
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
Note: if you use this default, make sure your graph has
an internal <tt>vertex_index</tt> property. For example,
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
not have an internal <tt>vertex_index</tt> property.<br>
<b>Python</b>: Unsupported parameter.
</blockquote>
@@ -129,7 +140,7 @@ IN: <tt>VertexIndexMap vertex_index</tt>
<table>
<tr valign="top">
<td nowrap>Copyright &copy; 2004</td>
<td><a href="../../../people/doug_gregor.html">Douglas Gregor</a>,
<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
University (<a href=
+9 -13
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Bellman Ford Shortest Paths</Title>
@@ -205,7 +201,7 @@ IN: <tt>weight_map(WeightMap w)</tt>
<blockquote>
The weight (also know as ``length'' or ``cost'') of each edge in the
graph. The <tt>WeightMap</tt> type must be a model of <a
href="../../property_map/ReadablePropertyMap.html">Readable Property
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
Map</a>. The key type for this property map must be the edge
descriptor of the graph. The value type for the weight map must be
<i>Addable</i> with the distance map's value type. <br>
@@ -223,7 +219,7 @@ OUT: <tt>predecessor_map(PredecessorMap p_map)</tt>
u</i> then <i>u</i> is either the source vertex or a vertex that is
not reachable from the source. The <tt>PredecessorMap</tt> type
must be a <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a> which key and vertex types the same as the vertex
descriptor type of the graph.<br>
<b>Default:</b> <tt>dummy_property_map</tt><br>
@@ -236,7 +232,7 @@ IN/OUT: <tt>distance_map(DistanceMap d)</tt>
The shortest path weight from the source vertex to each vertex in
the graph <tt>g</tt> is recorded in this property map. The type
<tt>DistanceMap</tt> must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
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
@@ -346,7 +342,7 @@ href="../example/bellman-example.cpp"><TT>examples/bellman-example.cpp</TT></a>.
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy; 2000</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+11 -15
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: bellman_visitor</Title>
@@ -26,7 +22,7 @@ bellman_visitor&lt;EventVisitorList&gt;
</H1>
This class is an adapter that converts a list of <a
href="./EventVisitor.html">EventVisitor</a>'s (constructed using
href="./EventVisitor.html">EventVisitor</a>s (constructed using
<tt>std::pair</tt>) into a <a
href="./BellmanFordVisitor.html">BellmanFordVisitor</a>.
@@ -67,7 +63,7 @@ with <tt>std::pair</tt>.
This class implements all of the member functions required by <a
href="./BellmanFordVisitor.html">BellmanFordVisitor</a>. In each function the
appropriate event is dispatched to the <a
href="./EventVisitor.html">EventVisitor</a>'s in the EventVisitorList.
href="./EventVisitor.html">EventVisitor</a> in the EventVisitorList.
<h3>Non-Member Functions</h3>
@@ -101,12 +97,12 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+27 -16
View File
@@ -1,5 +1,12 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<!--
Copyright (c) 2004 Trustees of Indiana University
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<head>
<title>Boost Graph Library: Brandes' Betweenness Centrality</title>
</head>
@@ -134,13 +141,13 @@ IN: <tt>const Graph&amp; g</tt>
UTIL: <tt>IncomingMap incoming</tt>
<blockquote>
This property map records the set of edges incoming to each vertex that comprise a shortest path from a particular source vertex through this vertex, and is used internally by the algorithm.The <tt>IncomingMap</tt> type must be a <a
href="../../property_map/LvaluePropertyMap.html">Lvalue Property
href="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property
Map</a> whose key type is the same as the vertex descriptor type of
the graph and whose value type is a Sequence (e.g., an
<tt>std::vector</tt>) containing edge descriptors.<br>
<b>Default:</b> <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
<tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of <tt>std::vector&lt;Edge&gt;</tt>, where
<tt>Edge</tt> is the edge descriptor type of the graph.<br>
@@ -154,14 +161,14 @@ UTIL: <tt>DistanceMap distance_map</tt>
vertex in the graph <tt>g</tt> is recorded in this property map, but
the result is only used internally. The type <tt>DistanceMap</tt>
must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a>. The vertex descriptor type of the graph needs to
be usable as the key type of the distance map. The value type of the
distance map is the element type of a <a
href="./Monoid.html">Monoid</a>.<br>
<b>Default:</b> <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
<tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of the <tt>WeightMap</tt>'s value type (or the
<tt>vertices_size_type</tt> of the graph when no weight map exists)
@@ -175,14 +182,14 @@ UTIL: <tt>DependencyMap dependency</tt>
<blockquote>
Property map used internally to accumulate partial betweenness
centrality results. The type <tt>DependencyMap</tt> must be a model
of <a href="../../property_map/ReadWritePropertyMap.html">Read/Write
of <a href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a>. The vertex descriptor type of the graph needs to
be usable as the key type of the dependency map. The value type of
the dependency map must be compatible with the value type of the
centrality map.<br>
<b>Default:</b> <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
<tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of the <tt>CentralityMap</tt>'s value type of
size <tt>num_vertices(g)</tt> and using the <tt>vertex_index</tt>
@@ -196,14 +203,14 @@ UTIL: <tt>PathCountMap path_count</tt>
Property map used internally to accumulate the number of paths that
pass through each particular vertex. The type <tt>PathCountMap</tt>
must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a>. The vertex descriptor type of the graph needs to
be usable as the key type of the dependency map. The value type of
the dependency map must be an integral type large enough to store
the number of paths in the graph.<br>
<b>Default:</b> <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
<tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of the <tt>degree_size_type</tt> of the graph of
size <tt>num_vertices(g)</tt> and using the <tt>vertex_index</tt>
@@ -218,7 +225,7 @@ OUT/UTIL: <tt>CentralityMap centrality_map</tt>
This property map is used to accumulate the betweenness centrality
of each vertex, and is the primary output of the algorithm. The type
<tt>CentralityMap</tt> must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a>, with the graph's vertex descriptor type as its key
type. The value type of this property map should be a floating-point
or rational type.<br>
@@ -235,7 +242,7 @@ OUT/UTIL: <tt>EdgeCentralityMap edge_centrality_map</tt>
This property map is used to accumulate the betweenness centrality
of each edge, and is a secondary form of output for the
algorithm. The type <tt>EdgeCentralityMap</tt> must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a>, with the graph's edge descriptor type as its key
type. The value type of this property map should be the same as the
value type of the <tt>CentralityMap</tt> property map.<br>
@@ -253,10 +260,14 @@ IN: <tt>vertex_index_map(VertexIndexMap vertex_index)</tt>
num_vertices(g))</tt>. This is necessary for efficient updates of the
heap data structure when an edge is relaxed. The type
<tt>VertexIndexMap</tt> must be a model of
<a href="../../property_map/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
integer type. The vertex descriptor type of the graph needs to be
usable as the key type of the map.<br>
<b>Default:</b> <tt>get(vertex_index, g)</tt>
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
Note: if you use this default, make sure your graph has
an internal <tt>vertex_index</tt> property. For example,
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
not have an internal <tt>vertex_index</tt> property.<br>
<b>Python</b>: Unsupported parameter.
</blockquote>
@@ -267,7 +278,7 @@ IN: <tt>weight_map(WeightMap w_map)</tt>
<a href="./exception.html#negative_edge"><tt>negative_edge</tt></a>
exception is one of the edges is negative.
The type <tt>WeightMap</tt> must be a model of
<a href="../../property_map/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
the graph needs to be usable as the key type for the weight
map. The value type for this map must be
the same as the value type of the distance map.<br>
@@ -284,9 +295,9 @@ is <em>O(VE)</em>.
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2004</TD><TD>
<A HREF="../../../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>,
<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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+11 -15
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: bfs_visitor</Title>
@@ -26,7 +22,7 @@ bfs_visitor&lt;EventVisitorList&gt;
</H1>
This class is an adapter that converts a list of <a
href="./EventVisitor.html">EventVisitor</a>'s (constructed using
href="./EventVisitor.html">EventVisitor</a>s (constructed using
<tt>std::pair</tt>) into a <a href="./BFSVisitor.html">BFSVisitor</a>.
@@ -84,7 +80,7 @@ with <tt>std::pair</tt>.
This class implements all of the member functions required by <a
href="./BFSVisitor.html">BFSVisitor</a>. In each function the
appropriate event is dispatched to the <a
href="./EventVisitor.html">EventVisitor</a>'s in the EventVisitorList.
href="./EventVisitor.html">EventVisitor</a> in the EventVisitorList.
<h3>Non-Member Functions</h3>
@@ -118,12 +114,12 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+9 -13
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Jeremy Siek makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Named Parameters</Title>
@@ -86,12 +82,12 @@ like <tt>boost::weight_map</tt> that create an instance of
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+64 -12
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Bibliography</Title>
@@ -379,15 +375,71 @@ Software--Practice & Experience, 21 (11), pp. 1129-1164, 1991.
<dd>King, I. P.<br>
<em>An automatic reordering scheme for simultaneous equations derived from network analysis.</em><br>
Int. J. Numer. Methods Engrg. 2, pp. 523-533, 1970.
<p></p><dt><a name="palmer2000">63</a>
<dd>C. Palmer and J. Steffan<br>
<em>Generating Network Topologies That Obey Power Laws</em><br>
Proceedings of GLOBECOM. November, 2000.
<p></p><dt><a name="edmonds65">64</a>
<dd>J. Edmonds<br>
<em>Paths, trees, and flowers</em><br>
Canadian Journal of Mathematics 17 (1965), pp. 449-467.
<p></p><dt><a name="lengauer-tarjan79">65</a>
<dd>Thomas Lengauer and Robert Endre Tarjan<br>
<em>A fast algorithm for finding dominators in a flowgraph</em><br>
ACM Transactions on Programming Language and Systems, 1(1):121-141, 1979.
<p></p><dt><a name="muchnick97">66</a>
<dd>Steven S. Muchnick<br>
<em>Advanced Compiler Design and Implementation</em><br>
Morgan Kaufmann Publishers, San Fransisco, 1997.
<p></p><dt><a name="appel98">67</a>
<dd>Andrew W. Appel<br>
<em>Modern Compiler Implementation in JAVA</em><br>
Cambridge University Press, 1998.
<p></p><dt><a name="kolmogorov03">68</a>
<dd>Vladimir Kolmogorov<br>
<em>Graph Based Algorithms for Scene Reconstruction from Two or More Views</em><br>
PhD thesis, Cornell University, September 2003.
<p></p><dt><a name="boykov-kolmogorov04">69</a>
<dd>Yuri Boykov and Vladimir Kolmogorov<br>
<em><a href="http://www.csd.uwo.ca/faculty/yuri/Abstracts/pami04-abs.html">An Experimental Comparison of Min-Cut/Max-Flow Algorithms for Energy Minimization in Vision</a></em><br>
In IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 26, no. 9, pp. 1124-1137, Sept. 2004.
<p></p><dt><a name="boyermyrvold04">70</a>
<dd>John M. Boyer and Wendy J. Myrvold<br>
<em><a href="http://www.emis.de/journals/JGAA/accepted/2004/BoyerMyrvold2004.8.3.pdf">
On the Cutting Edge: Simplified O(n) Planarity by Edge Addition</a>
</em><br>
Journal of Graph Algorithms and Applications, 8(2): 241-273, 2004.
<p></p><dt><a name="chrobakpayne95">71</a>
<dd>M. Chrobak, T. Payne<br>
<em>
A Linear-time Algorithm for Drawing a Planar Graph on the Grid
</em><br>
Information Processing Letters 54: 241-246, 1995.
<p></p><dt><a name="defraysseixpachpollack90">72</a>
<dd>H. de Fraysseix, J. Pach, R. Pollack<br>
<em>
How to Draw a Planar Graph on a Grid
</em><br>
Combinatorica 10: 41-51, 1990.
</dl>
<br>
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+97 -25
View File
@@ -1,14 +1,14 @@
<HTML>
<!--
-- Copyright 2001-2004 The Trustees of Indiana University.
--
-- 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)
--
-- Authors: Douglas Gregor
-- Jeremy Siek
-- Andrew Lumsdaine
Copyright 2001-2004 The Trustees of Indiana University.
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)
Authors: Douglas Gregor
Jeremy Siek
Andrew Lumsdaine
-->
<Head>
<Title>Boost Graph Library: Biconnected Components and Articulation Points</Title>
@@ -30,12 +30,30 @@ and
</h1>
<PRE>
template&lt;typename Graph, typename ComponentMap, typename OutputIterator,
typename DiscoverTimeMap, typename LowPointMap&gt;
<i>// named parameter version</i>
template &lt;typename Graph, typename ComponentMap, typename OutputIterator,
typename P, typename T, typename R&gt;
std::pair&lt;std::size_t, OutputIterator&gt;
biconnected_components(const Graph& g, ComponentMap comp, OutputIterator out,
const bgl_named_params&lt;P, T, R&gt;&amp; params)
template &lt;typename Graph, typename ComponentMap,
typename P, typename T, typename R&gt;
std::size_t
biconnected_components(const Graph& g, ComponentMap comp,
OutputIterator out, DiscoverTimeMap discover_time,
LowPointMap lowpt);
const bgl_named_params&lt;P, T, R&gt;&amp; params)
template &lt;typename Graph, typename OutputIterator,
typename P, typename T, typename R&gt;
OutputIterator articulation_points(const Graph& g, OutputIterator out,
const bgl_named_params&lt;P, T, R&gt;&amp; params)
<i>// non-named parameter version</i>
template &lt;typename Graph, typename ComponentMap, typename OutputIterator,
typename DiscoverTimeMap, typename LowPointMap&gt;
std::pair&lt;std::size_t, OutputIterator&gt;
biconnected_components(const Graph& g, ComponentMap comp, OutputIterator out,
DiscoverTimeMap discover_time, LowPointMap lowpt);
template &lt;typename Graph, typename ComponentMap, typename OutputIterator&gt;
std::pair&lt;std::size_t, OutputIterator&gt;
@@ -43,9 +61,8 @@ biconnected_components(const Graph& g, ComponentMap comp, OutputIterator out);
template &lt;typename Graph, typename ComponentMap&gt;
std::size_t biconnected_components(const Graph& g, ComponentMap comp);
<a name="sec:articulation_points">
template&lt;typename Graph, typename OutputIterator&gt;
template &lt;typename Graph, typename OutputIterator&gt;
OutputIterator articulation_points(const Graph& g, OutputIterator out);
</PRE>
@@ -103,7 +120,7 @@ and assigning each component an integer label. The algorithm then
records which component each edge in the graph belongs to by
recording the component number in the component property map. The
<tt>ComponentMap</tt> type must be a model of <a
href="../../property_map/WritablePropertyMap.html">Writable Property
href="../../property_map/doc/WritablePropertyMap.html">Writable Property
Map</a>. The value type shouch be an integer type, preferably the same
as the <tt>edges_size_type</tt> of the graph. The key type must be
the graph's edge descriptor type.<br>
@@ -123,16 +140,31 @@ algorithms return a Python <tt>list</tt> containing the articulation
points.
</blockquote>
UTIL/OUT: <tt>DiscoverTimeMap discover_time</tt>
<h3>Named Parameters</h3>
IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
<blockquote>
This maps each vertex to an integer in the range <tt>[0,
num_vertices(g))</tt>. The type
<tt>VertexIndexMap</tt> must be a model of
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
integer type. The vertex descriptor type of the graph needs to be
usable as the key type of the map.<br>
<b>Default:</b> <tt>get(vertex_index, g)</tt><br>
<b>Python</b>: Unsupported parameter.
</blockquote>
UTIL/OUT: <tt>discover_time_map(DiscoverTimeMap discover_time)</tt>
<blockquote>
The discovery time of each vertex in the depth-first search. The
type <tt>DiscoverTimeMap</tt> must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a>. The value type of the map must be an integer
type. The vertex descriptor type of the graph needs to be usable as
the key type of the map.<br>
<b>Default</b>: an <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
</tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of <tt>vertices_size_type</tt> of size
<tt>num_vertices(g)</tt> and using <tt>get(vertex_index, g)</tt> for
@@ -141,17 +173,17 @@ UTIL/OUT: <tt>DiscoverTimeMap discover_time</tt>
<b>Python</b>: Unsupported parameter.
</blockquote>
UTIL/OUT: <tt>LowPointMap lowpt</tt>
UTIL/OUT: <tt>lowpoint_map(LowPointMap lowpt)</tt>
<blockquote>
The low point of each vertex in the depth-first search, which is the
smallest vertex reachable from a given vertex with at most one back
edge. The type <tt>LowPointMap</tt> must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a>. The value type of the map must be an integer
type. The vertex descriptor type of the graph needs to be usable as
the key type of the map.<br>
<b>Default</b>: an <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
</tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of <tt>vertices_size_type</tt> of size
<tt>num_vertices(g)</tt> and using <tt>get(vertex_index, g)</tt> for
@@ -160,6 +192,37 @@ UTIL/OUT: <tt>LowPointMap lowpt</tt>
<b>Python</b>: Unsupported parameter.
</blockquote>
UTIL/OUT: <tt>predecessor_map(PredecessorMap p_map)</tt>
<blockquote>
The predecessor map records the depth first search tree.
The <tt>PredecessorMap</tt> type
must be a <a
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a> whose key and value types are the same as the vertex
descriptor type of the graph.<br>
<b>Default:</b> an <a
href="../../property_map/doc/iterator_property_map.html">
</tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of <tt>vertex_descriptor</tt> of size
<tt>num_vertices(g)</tt> and using <tt>get(vertex_index, g)</tt> for
the index map.<br>
<b>Python</b>: Must be a <tt>vertex_vertex_map</tt> for the graph.<br>
</blockquote>
IN: <tt>visitor(DFSVisitor vis)</tt>
<blockquote>
A visitor object that is invoked inside the algorithm at the
event-points specified by the <a href="./DFSVisitor.html">DFS
Visitor</a> concept. The visitor object is passed by value <a
href="#1">[1]</a>. <br> <b>Default:</b>
<tt>dfs_visitor&lt;null_visitor&gt;</tt><br>
<b>Python</b>: The parameter should be an object that derives from
the <a href="DFSVisitor.html#python"><tt>DFSVisitor</tt></a> type of
the graph.
</blockquote>
<H3>Complexity</H3>
<P>
@@ -176,15 +239,24 @@ href="../example/biconnected_components.cpp"><tt>examples/biconnected_components
contains an example of calculating the biconnected components and
articulation points of an undirected graph.
<h3>Notes</h3>
<p><a name="1">[1]</a>
Since the visitor parameter is passed by value, if your visitor
contains state then any changes to the state during the algorithm
will be made to a copy of the visitor object, not the visitor object
passed in. Therefore you may want the visitor to hold this state by
pointer or reference.
<br>
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2004</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana
<TD nowrap>Copyright &copy; 2000-2004</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana
University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<a href="../../../people/doug_gregor.html">Doug Gregor</a>, Indiana University
<a href="http://www.boost.org/people/doug_gregor.html">Doug Gregor</a>, Indiana University
</TD></TR></TABLE>
</BODY>
+1 -1
View File
@@ -285,7 +285,7 @@ S.pop();
#include <boost/limits.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/graph_concepts.hpp>
#include <boost/property_map.hpp>
#include <boost/property_map/property_map.hpp>
namespace boost {
@<Biconnected Components Algorithm@>
+259
View File
@@ -0,0 +1,259 @@
<HTML>
<!-- Copyright 2007 Aaron Windsor
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Boyer-Myrvold Planarity Testing/Embedding</Title>
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
ALINK="#ff0000">
<IMG SRC="../../../boost.png"
ALT="C++ Boost" width="277" height="86">
<BR Clear>
<H1>Boyer-Myrvold Planarity Testing/Embedding</H1>
<p>
A graph is <a href="./planar_graphs.html#planar"><i>planar</i></a> if it can
be drawn in two-dimensional space without any of its edges crossing. Such a
drawing of a planar graph is called a
<a href="./planar_graphs.html#plane_drawing"><i>plane drawing</i></a>. Each
plane drawing belongs to an equivalence class called a <i>planar embedding</i>
<a href="#1">[1]</a> that is defined by the clockwise ordering of adjacent
edges around each vertex in the graph. A planar embedding is a convenient
intermediate representation of an actual drawing of a planar graph, and many
planar graph drawing algorithms are formulated as functions mapping a planar
embedding to a plane drawing.
<br>
<br>
<table align="center" class="image">
<caption align="bottom"><h5>A planar graph (top left), along with a planar
embedding of that graph (bottom left) can be used to create a plane drawing
(right) by embedding edges around each vertex in the order in which they
appear in the planar embedding.
</h5></caption>
<tr><td>
<img src="./figs/embedding_illustration.png">
</td></tr>
<tr></tr>
<tr></tr>
</table>
<br>
<p>
The function <tt>boyer_myrvold_planarity_test</tt> implements the planarity
testing/embedding algorithm of Boyer and Myrvold
[<a href="./bibliography.html#boyermyrvold04">70</a>].
<tt>boyer_myrvold_planarity_test</tt> returns <tt>true</tt> if the input graph
is planar and <tt>false</tt> otherwise. As a side-effect of this test, a planar
embedding can be constructed if the graph is planar or a minimal set of edges
that form a <a href = "./planar_graphs.html#kuratowskisubgraphs">Kuratowski
subgraph</a> can be found if the graph is not planar.
<tt>boyer_myrvold_planarity_test</tt> uses named parameter arguments (courtesy
of the <a href="../../parameter/doc/html/index.html">Boost.Parameter</a>
library) to specify what the function actually does. Some examples are:
<ul>
<li>Testing whether or not a graph is planar:
<pre>
bool is_planar = boyer_myrvold_planarity_test(g);
</pre>
<li>Computing a planar embedding for a graph if it is planar, otherwise finding
a set of edges that forms an obstructing Kuratowski subgraph:
<pre>
if (boyer_myrvold_planarity_test(boyer_myrvold_params::graph = g,
boyer_myrvold_params::embedding = embedding_pmap,
boyer_myrvold_params::kuratowski_subgraph = out_itr
)
)
{
//do something with the embedding in embedding_pmap
}
else
{
//do something with the kuratowski subgraph output to out_itr
}
</pre>
</ul>
<p>
The parameters passed to <tt>boyer_myrvold_planarity_test</tt> in the examples
above do more than just carry the data structures used for input and output -
the algorithm is optimized at compile time based on which parameters are
present. A complete list of parameters accepted and their interactions are
described below.
<p>
<tt>boyer_myrvold_planarity_test</tt> accepts as input any undirected graph,
even those with self-loops and multiple edges.
However, many planar graph drawing algorithms make additional restrictions
on the structure of the input graph - for example, requiring that the input
graph is connected, biconnected, or even maximal planar (triangulated.)
Fortunately, any planar graph on <i>n</i> vertices that lacks one of these
properties can be augmented with additional edges so that it satisfies that
property in <i>O(n)</i> time - the functions
<tt><a href="./make_connected.html">make_connected</a></tt>,
<tt><a href="./make_biconnected_planar.html">make_biconnected_planar</a></tt>,
and <tt><a href="./make_maximal_planar.html">make_maximal_planar</a></tt>
exist for this purpose. If the graph drawing algorithm you're using requires,
say, a biconnected graph, then you must make your input graph biconnected
<i>before</i> passing it into <tt>boyer_myrvold_planarity_test</tt> so that the
computed planar embedding includes these additional edges. This may require
more than one call to <tt>boyer_myrvold_planarity_test</tt> depending on the
structure of the graph you begin with, since both
<tt>make_biconnected_planar</tt> and <tt>make_maximal_planar</tt> require a
planar embedding of the existing graph as an input parameter.
<p><p>
The named parameters accepted by <tt>boyer_myrvold_planarity_test</tt> are:
<ul>
<li><b><tt>graph</tt></b> : The input graph - this is the only required
parameter.
<li><b><tt>vertex_index_map</tt></b> : A mapping from vertices of the input
graph to indexes in the range <tt>[0..num_vertices(g))</tt>. If this parameter
is not provided, the vertex index map is assumed to be available as an interior
property of the graph, accessible by calling <tt>get(vertex_index, g)</tt>.
<li><b><tt>edge_index_map</tt></b>: A mapping from the edges of the input graph
to indexes in the range <tt>[0..num_edges(g))</tt>. This parameter is only
needed if the <tt>kuratowski_subgraph</tt> argument is provided. If the
<tt>kuratowski_subgraph</tt> argument is provided and this parameter is not
provided, the EdgeIndexMap is assumed to be available as an interior property
accessible by calling <tt>get(edge_index, g)</tt>.
<li><b><tt>embedding</tt></b> : If the graph is planar, this will be populated
with a mapping from vertices to the clockwise order of neighbors in the planar
embedding.
<li><b><tt>kuratowski_subgraph</tt></b> : If the graph is not planar, a minimal
set of edges that form the obstructing Kuratowski subgraph will be written to
this iterator.
</ul>
These named parameters all belong to the namespace
<tt>boyer_myrvold_params</tt>. See below for more information on the concepts
required for these arguments.
<H3>Verifying the output</H3>
Whether or not the input graph is planar, <tt>boyer_myrvold_planarity_test</tt>
can produce a certificate that can be automatically checked to verify that the
function is working properly.
<p>
If the graph is planar, a planar embedding can be produced. The
planar embedding can be verified by passing it to a plane drawing routine
(such as <tt><a href="straight_line_drawing.html">
chrobak_payne_straight_line_drawing</a></tt>) and using the function
<tt><a href="is_straight_line_drawing.html">is_straight_line_drawing</a></tt>
to verify that the resulting graph is planar.
<p>
If the graph is not planar, a set of edges that forms a Kuratowski subgraph in
the original graph can be produced. This set of edges can be passed to the
function <tt><a href="is_kuratowski_subgraph.html">is_kuratowski_subgraph</a>
</tt> to verify that they can be contracted into a <i>K<sub>5</sub></i> or
<i>K<sub>3,3</sub></i>. <tt>boyer_myrvold_planarity_test</tt> chooses the set
of edges forming the Kuratowski subgraph in such a way that the contraction to
a <i>K<sub>5</sub></i> or <i>K<sub>3,3</sub></i> can be done by a simple
deterministic process which is described in the documentation to
<tt>is_kuratowski_subgraph</tt>.
<H3>Where Defined</H3>
<P>
<a href="../../../boost/graph/boyer_myrvold_planar_test.hpp">
<TT>boost/graph/boyer_myrvold_planar_test.hpp</TT>
</a>
<H3>Parameters</H3>
IN: <tt>Graph&amp; g</tt>
<blockquote>
Any undirected graph. The graph type must be a model of
<a href="VertexAndEdgeListGraph.html">VertexAndEdgeListGraph</a> and
<a href="IncidenceGraph.html">IncidenceGraph</a>.
</blockquote>
OUT <tt>PlanarEmbedding embedding</tt>
<blockquote>
Must model the <a href="PlanarEmbedding.html">PlanarEmbedding</a> concept.
</blockquote>
IN <tt>OutputIterator kuratowski_subgraph</tt>
<blockquote>
An OutputIterator which accepts values of the type
<tt>graph_traits&lt;Graph&gt;::edge_descriptor</tt>
</blockquote>
IN <tt>VertexIndexMap vm</tt>
<blockquote>
A <a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map
</a> that maps vertices from <tt>g</tt> to distinct integers in the range
<tt>[0, num_vertices(g) )</tt><br>
<b>Default</b>: <tt>get(vertex_index,g)</tt><br>
</blockquote>
IN <tt>EdgeIndexMap em</tt>
<blockquote>
A <a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map
</a> that maps edges from <tt>g</tt> to distinct integers in the range
<tt>[0, num_edges(g) )</tt><br>
<b>Default</b>: <tt>get(edge_index,g)</tt>, but this parameter is only used if
the <tt>kuratowski_subgraph_iterator</tt> is provided.<br>
</blockquote>
<H3>Complexity</H3>
Assuming that both the vertex index and edge index supplied take time
<i>O(1)</i> to return an index and there are <i>O(n)</i>
total self-loops and parallel edges in the graph, most combinations of
arguments given to
<tt>boyer_myrvold_planarity_test</tt> result in an algorithm that runs in time
<i>O(n)</i> for a graph with <i>n</i> vertices and <i>m</i> edges. The only
exception is when Kuratowski subgraph isolation is requested for a dense graph
(a graph with <i>n = o(m)</i>) - the running time will be <i>O(n+m)</i>
<a href = "#2">[2]</a>.
<H3>Examples</H3>
<P>
<ul>
<li><a href="../example/simple_planarity_test.cpp">A simple planarity test</a>
<li><a href="../example/kuratowski_subgraph.cpp">Isolating a Kuratowski
Subgraph</a>
<li><a href="../example/straight_line_drawing.cpp">Using a planar embedding to
create a straight line drawing</a>
</ul>
<h3>See Also</h3>
<a href="./planar_graphs.html">Planar Graphs in the Boost Graph Library</a>
<h3>Notes</h3>
<p><a name="1">[1] A planar embedding is also called a <i>combinatorial
embedding</i>.
<p><a name="2">[2] The algorithm can still be made to run in time <i>O(n)</i>
for this case, if needed. <a href="planar_graphs.html#EulersFormula">Euler's
formula</a> implies that a planar graph with <i>n</i> vertices can have no more
than <i>3n - 6</i> edges, which means that any non-planar graph on <i>n</i>
vertices has a subgraph of only <i>3n - 5</i> edges that contains a Kuratowski
subgraph. So, if you need to find a Kuratowski subgraph of a graph with more
than <i>3n - 5</i> edges in time <i>O(n)</i>, you can create a subgraph of the
original graph consisting of any arbitrary <i>3n - 5</i> edges and pass that
graph to <tt>boyer_myrvold_planarity_test</tt>.
<br>
<HR>
Copyright &copy; 2007 Aaron Windsor (<a href="mailto:aaron.windsor@gmail.com">
aaron.windsor@gmail.com</a>)
</BODY>
</HTML>
+16 -16
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000, 2001
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000, 2001
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Breadth-First Search</Title>
@@ -198,12 +194,12 @@ UTIL/OUT: <tt>color_map(ColorMap color)</tt>
function and do your own color initialization.
<p>The type <tt>ColorMap</tt> must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a> and its key type must be the graph's vertex
descriptor type and the value type of the color map must model
<a href="./ColorValue.html">ColorValue</a>.<br>
<b>Default:</b> an <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
</tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of <tt>default_color_type</tt> of size
<tt>num_vertices(g)</tt> and using the <tt>i_map</tt> for the index
@@ -219,12 +215,16 @@ IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
num_vertices(g))</tt>. This parameter is only necessary when the
default color property map is used. The type <tt>VertexIndexMap</tt>
must be a model of <a
href="../../property_map/ReadablePropertyMap.html">Readable Property
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
Map</a>. The value type of the map must be an integer type. The
vertex descriptor type of the graph needs to be usable as the key
type of the map.<br>
<b>Default:</b> <tt>get(vertex_index, g)</tt><br>
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
Note: if you use this default, make sure your graph has
an internal <tt>vertex_index</tt> property. For example,
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
not have an internal <tt>vertex_index</tt> property.<br>
<b>Python</b>: Unsupported parameter.
</blockquote>
@@ -242,7 +242,7 @@ UTIL: <tt>buffer(Buffer&amp; Q)</tt>
<b>Default:</b> <tt>boost::queue</tt><br>
<b>Python</b>: The buffer must derive from the <a
href="./Buffer.html#python">Buffer</a> type for the graph.
href="./Buffer.html">Buffer</a> type for the graph.
</blockquote>
@@ -330,8 +330,8 @@ to <tt>listS</tt>.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+9 -16
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000, 2001
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000, 2001
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Breadth-First Visit</Title>
@@ -91,7 +87,7 @@ UTIL/OUT: <tt>color_map(ColorMap color)</tt>
<blockquote>
This is used by the algorithm to keep track of its progress through
the graph. The type <tt>ColorMap</tt> must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a> and its key type must be the graph's vertex
descriptor type and the value type of the color map must model
<a href="./ColorValue.html">ColorValue</a>.<br>
@@ -113,7 +109,7 @@ UTIL: <tt>buffer(Buffer&amp; Q)</tt>
<b>Default:</b> <tt>boost::queue</tt><br>
<b>Python</b>: The buffer must derive from the <a
href="./Buffer.html#python">Buffer</a> type for the graph.
href="./Buffer.html">Buffer</a> type for the graph.
</blockquote>
@@ -129,9 +125,6 @@ The time complexity is <i>O(E)</i>.
<h3>Visitor Event Points</h3>
<ul>
<li><b><tt>vis.initialize_vertex(v, g)</tt></b> is invoked on every vertex
before the start of the search.
<li><b><tt>vis.examine_vertex(u, g)</tt></b>r is invoked in each
vertex as it is removed from the queue.
@@ -185,8 +178,8 @@ The time complexity is <i>O(E)</i>.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+7 -7
View File
@@ -1,12 +1,12 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<!--
-- Copyright Doug Gregor 2004. 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)
Copyright Doug Gregor 2004. 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)
-- For more information, see http://www.boost.org
For more information, see http://www.boost.org
-->
<head>
<title>Bundled Properties</title>
@@ -147,7 +147,7 @@ dijkstra_shortest_paths(map, from,
<p> You may also access the entire vertex or edge bundle as a property map
using the <code>vertex_bundle</code> or <code>edge_bundle</code> properties,
respectively. For instance, the property map returned by <code>get(vertex_bundle, map)</code> is
an <a href="../../property_map/LvaluePropertyMap.html">Lvalue Property Map</a> providing access to the
an <a href="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property Map</a> providing access to the
<code>City</code> values stored in each vertex.
<h2>Getting the type of bundled properties</h2>
@@ -168,7 +168,7 @@ dijkstra_shortest_paths(map, from,
specialization.</p>
<hr>
Copyright &copy; 2004 <a href="../../../people/doug_gregor.html">Doug Gregor</a>.
Copyright &copy; 2004 <a href="http://www.boost.org/people/doug_gregor.html">Doug Gregor</a>.
<address><a href="mailto:gregod@cs.rpi.edu"></a></address>
<!-- Created: Fri May 7 09:59:21 EDT 2004 -->
<!-- hhmts start -->
+11 -13
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Challenge</Title>
@@ -26,9 +22,9 @@
<ul>
<li>Dynamic graph algorithms such as described in <a
href="http://citeseer.nj.nec.com/eppstein99dynamic.html">Dynamic Graph
href="http://citeseer.ist.psu.edu/eppstein99dynamic.html">Dynamic Graph
Algorithms</a> and <a
href="http://citeseer.nj.nec.com/alberts98software.html">A Software
href="http://citeseer.ist.psu.edu/alberts98software.html">A Software
Library of Dynamic Graph Algorithms</a>.
<li>Polish up code/docs for pending items and champion the formal
@@ -108,14 +104,16 @@ It is currently difficult to use from a C++ program.
<li>Implement a minimum-cost maximum-flow algorithm.</li>
<li>Make the <tt>type</tt> of all (internal) property maps convertible to the <tt>const_type</tt> of the property maps.<li>
<li>Add static functions to <tt>adjacency_list</tt> to return the per-vertex, per-edge, and per-graph overhead.</li>
</ul>
<br>
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+12 -5
View File
@@ -1,4 +1,11 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Function template circle_graph_layout</title></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table cellpadding="2" width="100%"><td valign="top"><img src="../../../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td><td align="center"><a href="../../../index.htm">Home</a></td><td align="center"><a href="../../libraries.htm">Libraries</a></td><td align="center"><a href="../../../people/people.htm">People</a></td><td align="center"><a href="../../../more/faq.htm">FAQ</a></td><td align="center"><a href="../../../more/index.htm">More</a></td></table><hr><div class="refentry" lang="en"><a name="id103562-bb"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><img src="figs/python.gif" alt="(Python)"/><span class="refentrytitle">Function template circle_graph_layout</span></h2><p>boost::circle_graph_layout &#8212; Layout the graph with the vertices at the points of a regular n-polygon. </p></div><h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2><div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
<html><!--
Copyright (c) 2004 Trustees of Indiana University
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Function template circle_graph_layout</title></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table cellpadding="2" width="100%"><td valign="top"><img src="../../../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td><td align="center"><a href="../../../index.htm">Home</a></td><td align="center"><a href="../../libraries.htm">Libraries</a></td><td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td><td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td><td align="center"><a href="../../../more/index.htm">More</a></td></table><hr><div class="refentry" lang="en"><a name="id103562-bb"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><img src="figs/python.gif" alt="(Python)"/><span class="refentrytitle">Function template circle_graph_layout</span></h2><p>boost::circle_graph_layout &#8212; Layout the graph with the vertices at the points of a regular n-polygon. </p></div><h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2><div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
<span class="bold"><b>template</b></span>&lt;<span class="bold"><b>typename</b></span> VertexListGraph, <span class="bold"><b>typename</b></span> PositionMap, <span class="bold"><b>typename</b></span> Radius&gt;
  <span class="type"><span class="bold"><b>void</b></span></span> circle_graph_layout(<span class="bold"><b>const</b></span> VertexListGraph &amp; g, PositionMap position,
                           Radius radius);</pre></div><div class="refsect1" lang="en"><a name="id821794"></a><h2>Where Defined</h2><a href="../../../boost/graph/circle_layout.hpp">boost/graph/circle_layout.hpp</a><h2>Description</h2><p>The distance from the center of the polygon to each point is determined by the <tt class="computeroutput">radius</tt> parameter. The <tt class="computeroutput">position</tt> parameter must be an Lvalue Property Map whose value type is a class type containing <tt class="computeroutput">x</tt> and <tt class="computeroutput">y</tt> members that will be set to the <tt class="computeroutput">x</tt> and <tt class="computeroutput">y</tt> coordinates.
@@ -16,7 +23,7 @@ OUT: <tt>PositionMap position</tt>
<blockquote>
This property map is used to store the position of each vertex. The
type <tt>PositionMap</tt> must be a model of <a
href="../../property_map/WritablePropertyMap.html">Writable Property
href="../../property_map/doc/WritablePropertyMap.html">Writable Property
Map</a>, with the graph's edge descriptor type as its key type. The
value type of this property map should be assignable from the
type <tt>Radius</tt>. <br>
@@ -36,9 +43,9 @@ IN: <tt>Radius radius</tt>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2004</TD><TD>
<A HREF="../../../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>,
<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>,
Indiana University (lums -at- osl.iu.edu)
</TD></TR></TABLE>
</body></html>
Binary file not shown.
+971
View File
@@ -0,0 +1,971 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<!--
Copyright (c) 2005-2009 Trustees of Indiana University
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<head>
<title>Compressed Sparse Row Graph</title>
<STYLE TYPE="text/css">
<!--
.indent
{
padding-left: 50pt;
padding-right: 50pt;
}
-->
</STYLE>
<script language="JavaScript" type="text/JavaScript">
<!--
function address(host, user) {
var atchar = '@';
var thingy = user+atchar+host;
thingy = '<a hre' + 'f=' + "mai" + "lto:" + thingy + '>' + user+atchar+host + '</a>';
document.write(thingy);
}
//-->
</script>
</head>
<body>
<IMG SRC="../../../boost.png"
ALT="C++ Boost" width="277" height="86"></img>
<h1>Compressed Sparse Row Graph</h1>
<p>The class template <code>compressed_sparse_row_graph</code> is
a graph class that uses the compact Compressed Sparse Row (CSR)
format to store directed (and bidirectional) graphs. While CSR graphs have
much less
overhead than many other graph formats (e.g., <a
href="adjacency_list.html"><code>adjacency_list</code></a>), they
do not provide any mutability: one cannot add or remove vertices
or edges from a CSR graph. Use this format in high-performance
applications or for very large graphs that you do not need to
change.</p>
<p>The CSR format stores vertices and edges in separate arrays,
with the indices into these arrays corresponding to the identifier
for the vertex or edge, respectively. The edge array is sorted by
the source of each edge, but contains only the targets for the
edges. The vertex array stores offsets into the edge array,
providing the offset of the first edge outgoing from each
vertex. Iteration over the out-edges for the <i>i</i><sup>th</sup>
vertex in the graph is achieved by
visiting <tt>edge_array[vertex_array[i]]</tt>,
<tt>edge_array[vertex_array[i]+1]</tt>,
..., <tt>edge_array[vertex_array[i+1]]</tt>. This format minimizes
memory use to <i>O(n + m)</i>, where <i>n</i> and <i>m</i> are the
number of vertices and edges, respectively. The constants
multiplied by <i>n</i> and <i>m</i> are based on the size of the
integers needed to represent indices into the edge and vertex
arrays, respectively, which can be controlled using
the <a href="#template-parms">template parameters</a>. The
<tt>Directed</tt> template parameter controls whether one edge direction
(the default) or both directions are stored. A directed CSR graph has
<tt>Directed</tt> = <tt>directedS</tt> and a bidirectional CSR graph (with
a limited set of constructors)
has <tt>Directed</tt> = <tt>bidirectionalS</tt>.</p>
<ul>
<li><a href="#synopsis">Synopsis</a></li>
<li><a href="#where">Where Defined</a></li>
<li><a href="#models">Models</a></li>
<li><a href="#template-parms">Template parameters</a></li>
<li><a href="#properties">Properties</a></li>
<li><a href="#member-functions">Member functions</a>
<ul>
<li><a href="#constructors">Constructors</a></li>
<li><a href="#mutators">Mutators</a></li>
<li><a href="#property-access">Property access</a></li>
</ul></li>
<li><a href="#non-members">Non-member functions</a>
<ul>
<li><a href="#vertex-access">Vertex access</a></li>
<li><a href="#edge-access">Edge access</a></li>
<li><a href="#property-map-accessors">Property map accessors</a></li>
<li><a href="#incremental-construction-functions">Incremental construction functions</a></li>
</ul></li>
<li><a href="#example">Example</a></li>
</ul>
<a name="synopsis"></a><h2>Synopsis</h2>
<pre>
namespace boost {
template&lt;typename <a href="#Directed">Directed</a> = directedS, typename <a href="#VertexProperty">VertexProperty</a> = void,
typename <a href="#EdgeProperty">EdgeProperty</a> = void, typename <a href="#GraphProperty">GraphProperty</a> = no_property,
typename <a href="#Vertex">Vertex</a> = std::size_t, typename <a href="#EdgeIndex">EdgeIndex</a> = Vertex&gt;
class compressed_sparse_row_graph
{
public:
<i>// <a href="#constructors">Graph constructors</a></i>
<a href="#default-const">compressed_sparse_row_graph</a>();
<i>// Unsorted edge list constructors </i>
template&lt;typename InputIterator&gt;
<a href="#edge-const">compressed_sparse_row_graph</a>(edges_are_unsorted_t,
InputIterator edge_begin, InputIterator edge_end,
vertices_size_type numverts,
const GraphProperty&amp; prop = GraphProperty());
template&lt;typename InputIterator, typename EdgePropertyIterator&gt;
<a href="#edge-prop-const">compressed_sparse_row_graph</a>(edges_are_unsorted_t,
InputIterator edge_begin, InputIterator edge_end,
EdgePropertyIterator ep_iter,
vertices_size_type numverts,
const GraphProperty&amp; prop = GraphProperty());
template&lt;typename MultiPassInputIterator&gt;
<a href="#edge-multi-const">compressed_sparse_row_graph</a>(edges_are_unsorted_multi_pass_t,
MultiPassInputIterator edge_begin, MultiPassInputIterator edge_end,
vertices_size_type numverts,
const GraphProperty&amp; prop = GraphProperty());
template&lt;typename MultiPassInputIterator, typename EdgePropertyIterator&gt;
<a href="#edge-multi-prop-const">compressed_sparse_row_graph</a>(edges_are_unsorted_multi_pass_t,
MultiPassInputIterator edge_begin, MultiPassInputIterator edge_end,
EdgePropertyIterator ep_iter,
vertices_size_type numverts,
const GraphProperty&amp; prop = GraphProperty());
<i>// New sorted edge list constructors <b>(directed only)</b></i>
template&lt;typename InputIterator&gt;
<a href="#edge-sorted-const">compressed_sparse_row_graph</a>(edges_are_sorted_t,
InputIterator edge_begin, InputIterator edge_end,
vertices_size_type numverts,
edges_size_type numedges = 0,
const GraphProperty&amp; prop = GraphProperty());
template&lt;typename InputIterator, typename EdgePropertyIterator&gt;
<a href="#edge-sorted-prop-const">compressed_sparse_row_graph</a>(edges_are_sorted_t,
InputIterator edge_begin, InputIterator edge_end,
EdgePropertyIterator ep_iter,
vertices_size_type numverts,
edges_size_type numedges = 0,
const GraphProperty&amp; prop = GraphProperty());
<i>// In-place unsorted edge list constructors <b>(directed only)</b></i>
template&lt;typename InputIterator&gt;
<a href="#edge-inplace-const">compressed_sparse_row_graph</a>(construct_inplace_from_sources_and_targets_t,
std::vector&lt;vertex_descriptor&gt;&amp; sources,
std::vector&lt;vertex_descriptor&gt;&amp; targets,
vertices_size_type numverts,
const GraphProperty&amp; prop = GraphProperty());
template&lt;typename InputIterator&gt;
<a href="#edge-inplace-prop-const">compressed_sparse_row_graph</a>(construct_inplace_from_sources_and_targets_t,
std::vector&lt;vertex_descriptor&gt;&amp; sources,
std::vector&lt;vertex_descriptor&gt;&amp; targets,
std::vector&lt;EdgeProperty&gt;&amp; edge_props,
vertices_size_type numverts,
const GraphProperty&amp; prop = GraphProperty());
<i>// Miscellaneous constructors <b>(directed only)</b></i>
template&lt;typename Graph, typename VertexIndexMap&gt;
<a href="#graph-const">compressed_sparse_row_graph</a>(const Graph&amp; g, const VertexIndexMap&amp; vi,
vertices_size_type numverts,
edges_size_type numedges);
template&lt;typename Graph, typename VertexIndexMap&gt;
compressed_sparse_row_graph(const Graph&amp; g, const VertexIndexMap&amp; vi);
template&lt;typename Graph&gt;
explicit <a href="#graph-const">compressed_sparse_row_graph</a>(const Graph&amp; g);
<i>// <a href="#mutators">Graph mutators <b>(directed only)</b></a></i>
template&lt;typename Graph, typename VertexIndexMap&gt;
void <a href="#assign">assign</a>(const Graph&amp; g, const VertexIndexMap&amp; vi,
vertices_size_type numverts, edges_size_type numedges);
template&lt;typename Graph, typename VertexIndexMap&gt;
void <a href="#assign">assign</a>(const Graph&amp; g, const VertexIndexMap&amp; vi);
template&lt;typename Graph&gt;
void <a href="#assign">assign</a>(const Graph&amp; g);
<i>// <a href="#property-access">Property Access</a></i>
VertexProperty&amp; <a href="#vertex-subscript">operator[]</a>(vertex_descriptor v);
const VertexProperty&amp; <a href="#vertex-subscript">operator[]</a>(vertex_descriptor v) const;
EdgeProperty&amp; <a href="#edge-subscript">operator[]</a>(edge_descriptor v);
const EdgeProperty&amp; <a href="#edge-subscript">operator[]</a>(edge_descriptor v) const;
};
<i>// <a href="IncidenceGraph.html">Incidence Graph requirements</a></i>
vertex_descriptor source(edge_descriptor, const compressed_sparse_row_graph&amp;);
vertex_descriptor target(edge_descriptor, const compressed_sparse_row_graph&amp;);
std::pair&lt;out_edge_iterator, out_edge_iterator&gt;
out_edges(vertex_descriptor, const compressed_sparse_row_graph&amp;);
degree_size_type out_degree(vertex_descriptor v, const compressed_sparse_row_graph&amp;);
<i>// <a href="BidirectionalGraph.html">Bidirectional Graph requirements <b>(bidirectional only)</b></a></i>
std::pair&lt;in_edge_iterator, in_edge_iterator&gt;
in_edges(vertex_descriptor, const compressed_sparse_row_graph&amp;);
degree_size_type in_degree(vertex_descriptor v, const compressed_sparse_row_graph&amp;);
<i>// <a href="AdjacencyGraph.html">Adjacency Graph requirements</a></i>
std::pair&lt;adjacency_iterator, adjacency_iterator&gt;
adjacent_vertices(vertex_descriptor, const compressed_sparse_row_graph&amp;);
<i>// <a href="VertexListGraph.html">Vertex List Graph requirements</a></i>
std::pair&lt;vertex_iterator, vertex_iterator&gt; vertices(const compressed_sparse_row_graph&amp;);
vertices_size_type num_vertices(const compressed_sparse_row_graph&amp;);
<i>// <a href="EdgeListGraph.html">Edge List Graph requirements</a></i>
std::pair&lt;edge_iterator, edge_iterator&gt; edges(const compressed_sparse_row_graph&amp;);
edges_size_type num_edges(const compressed_sparse_row_graph&amp;);
<i>// <a href="#vertex-access">Vertex access</a></i>
vertex_descriptor <a href="#vertex-lookup">vertex</a>(vertices_size_type i, const compressed_sparse_row_graph&amp;);
<i>// <a href="#edge-access">Edge access</a></i>
std::pair&lt;edge_descriptor, bool&gt;
<a href="#edge">edge</a>(vertex_descriptor u, vertex_descriptor v, const compressed_sparse_row_graph&amp;);
edge_descriptor <a href="#edge_from_index">edge_from_index</a>(edges_size_type i, const compressed_sparse_row_graph&amp;);
<i>// <a href="#property-map-accessors">Property map accessors</a></i>
template&lt;typename <a href="./PropertyTag.html">PropertyTag</a>&gt;
property_map&lt;compressed_sparse_row_graph, PropertyTag&gt;::type
<a href="#get">get</a>(PropertyTag, compressed_sparse_row_graph&amp; g)
template&lt;typename <a href="./PropertyTag.html">PropertyTag</a>&gt;
property_map&lt;compressed_sparse_row_graph, Tag&gt;::const_type
<a href="#get">get</a>(PropertyTag, const compressed_sparse_row_graph&amp; g)
template&lt;typename <a href="./PropertyTag.html">PropertyTag</a>, class X&gt;
typename property_traits&lt;property_map&lt;compressed_sparse_row_graph, PropertyTag&gt;::const_type&gt;::value_type
<a href="#get-x">get</a>(PropertyTag, const compressed_sparse_row_graph&amp; g, X x)
template&lt;typename <a href="./PropertyTag.html">PropertyTag</a>, class X, class Value&gt;
void <a href="#put-x">put</a>(PropertyTag, const compressed_sparse_row_graph&amp; g, X x, const Value&amp; value);
template&lt;typename <a href="./PropertyTag.html#GraphPropertyTag">GraphPropertyTag</a>&gt;
typename graph_property&lt;compressed_sparse_row_graph, GraphPropertyTag&gt;::type&amp;
<a href="#get_property">get_property</a>(compressed_sparse_row_graph&amp; g, GraphPropertyTag);
template&lt;typename <a href="./PropertyTag.html#GraphPropertyTag">GraphPropertyTag</a>&gt;
typename graph_property&lt;compressed_sparse_row_graph, GraphPropertyTag&gt;::type const &amp;
<a href="#get_property">get_property</a>(const compressed_sparse_row_graph&amp; g, GraphPropertyTag);
template&lt;typename <a href="./PropertyTag.html#GraphPropertyTag">GraphPropertyTag</a>&gt;
void <a href="#set_property">set_property</a>(const compressed_sparse_row_graph&amp; g, GraphPropertyTag,
const typename graph_property&lt;compressed_sparse_row_graph, GraphPropertyTag&gt;::type&amp; value);
<i>// <a href="#incremental-construction-functions">Incremental construction functions</a></i>
<b>(directed only)</b>
template&lt;typename InputIterator, typename Graph&gt;
void <a href="#add_edges">add_edges</a>(InputIterator first, InputIterator last, compressed_sparse_row_graph&amp; g);
<b>(directed only)</b>
template&lt;typename InputIterator, typename EPIter, typename Graph&gt;
void <a href="#add_edges_prop">add_edges</a>(InputIterator first, InputIterator last, EPIter ep_first, EPIter ep_last, compressed_sparse_row_graph&amp; g);
<b>(directed only)</b>
template&lt;typename BidirectionalIterator, typename Graph&gt;
void <a href="#add_edges_sorted">add_edges_sorted</a>(BidirectionalIterator first, BidirectionalIterator last, compressed_sparse_row_graph&amp; g);
<b>(directed only)</b>
template&lt;typename BidirectionalIterator, typename EPIter, typename Graph&gt;
void <a href="#add_edges_sorted_prop">add_edges_sorted</a>(BidirectionalIterator first, BidirectionalIterator last, EPIter ep_iter, compressed_sparse_row_graph&amp; g);
} <i>// end namespace boost</i>
</pre>
<a name="where"></a><h2>Where Defined</h2>
<p><code>&lt;<a href="../../../boost/graph/compressed_sparse_row_graph.hpp">boost/graph/compressed_sparse_row_graph.hpp</a>&gt;</code></p>
<a name="models"></a><h2>Models</h2>
<p>The <tt>compressed_sparse_row_graph</tt> class template models
(i.e., implements the requirements of) many of the
BGL <a href="graph_concepts.html">graph concepts</a>, allowing it
to be used with most of the BGL algorithms. In particular, it
models the following specific graph concepts:</p>
<ul>
<li><a href="Graph.html">Graph</a></li>
<li><a href="IncidenceGraph.html">IncidenceGraph</a></li>
<li><a href="AdjacencyGraph.html">AdjacencyGraph</a></li>
<li><a href="VertexListGraph.html">VertexListGraph</a></li>
<li><a href="EdgeListGraph.html">EdgeListGraph</a></li>
<li><a href="PropertyGraph.html">PropertyGraph</a></li>
</ul>
<a name="template-parms"></a><h2>Template Parameters</h2>
<p>The <tt>compressed_sparse_row_graph</tt> class has several
template parameters that can customize the layout in memory and
what properties are attached to the graph itself. All
parameters have defaults, so users interested only in the
structure of a graph can use the
type <tt>compressed_sparse_row_graph&lt;&gt;</tt> and ignore
the parameters.</p>
<b>Parameters</b>
<br>
<br>
<a name="Directed"></a><code>Directed</code>
<blockquote>
A selector that determines whether the graph will be directed,
bidirectional or undirected. At this time, the CSR graph type
only supports directed and bidirectional graphs, so this value must
be either <code>boost::directedS</code> or
<code>boost::bidirectionalS</code>.<br>
<b>Default</b>: <code>boost::directedS</code>
</blockquote>
<a name="VertexProperty"></a><code>VertexProperty</code>
<blockquote>
A class type that will be
attached to each vertex in the graph. If this value
is <code>void</code>, no properties will be attached to
the vertices of the graph.<br>
<b>Default</b>: <code>void</code>
</blockquote>
<a name="EdgeProperty"></a><code>EdgeProperty</code>
<blockquote>
A class type that will be attached to each edge in the graph. If
this value is <code>void</code>, no properties will be
attached to the edges of the graph.<br>
<b>Default</b>: <code>void</code>
</blockquote>
<a name="GraphProperty"></a><code>GraphProperty</code>
<blockquote>
A nested set
of <code>property</code> templates that describe the
properties of the graph itself. If this value
is <code>no_property</code>, no properties will be attached to
the graph.<br>
<b>Default</b>: <code>no_property</code>
</blockquote>
<a name="Vertex"></a><code>Vertex</code>
<blockquote>
An unsigned integral type that will be
used as both the index into the array of vertices and as the
vertex descriptor itself. Larger types permit the CSR graph to
store more vertices; smaller types reduce the storage required
per vertex.<br>
<b>Default</b>: <code>std::size_t</code>
</blockquote>
<a name="EdgeIndex"></a><code>EdgeIndex</code>
<blockquote>
An unsigned integral type that will be used as the index into
the array of edges. As with the <code>Vertex</code> parameter,
larger types permit more edges whereas smaller types reduce
the amount of storage needed per
edge. The <code>EdgeIndex</code> type shall not be smaller
than the <code>Vertex</code> type, but it may be larger. For
instance, <code>Vertex</code> may be a 16-bit integer
(allowing 32,767 vertices in the graph)
whereas <code>EdgeIndex</code> could then be a 32-bit integer
to allow a complete graph to be stored in the CSR format.<br>
<b>Default</b>: <code>Vertex</code>
</blockquote>
<a name="properties"></a><h2>Interior Properties</h2>
<p> The <tt>compressed_sparse_row_graph</tt> allows properties to
be attached to its vertices, edges, or to the graph itself by way
of its <a href="#template-parms">template parameters</a>. These
properties may be accessed via
the <a href="#property-access">member</a>
and <a href="#property-map-accessors">non-member</a> property
access functions, using the <a href="bundles.html">bundled
properties</a> scheme.</p>
<p>The CSR graph provides two kinds of built-in
properties: <tt>vertex_index</tt>, which maps from vertices to
values in <tt>[0, n)</tt> and <tt>edge_index</tt>, which maps
from edges to values in <tt>[0, m)</tt>, where <tt>n</tt>
and <tt>m</tt> are the number of vertices and edges in the graph,
respectively. </p>
<a name="member-functions"></a><h2>Member Functions</h2>
<a name="constructors"></a><h3>Constructors</h3>
<pre><a name="default-const"></a>
compressed_sparse_row_graph();
</pre>
<p class="indent">Constructs a graph with no vertices or edges.</p>
<hr></hr>
<pre><a name="edge-const"></a>
template&lt;typename InputIterator&gt;
compressed_sparse_row_graph(edges_are_unsorted_t,
InputIterator edge_begin, InputIterator edge_end,
vertices_size_type numverts,
const GraphProperty&amp; prop = GraphProperty());
</pre>
<p class="indent">
Constructs a graph with <code>numverts</code> vertices whose
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>
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,
numverts)</code>. The edges in <code>[edge_begin,
edge_end)</code> do not need to be sorted. This constructor uses extra
memory to save the edge information before adding it to the graph,
avoiding the requirement for the iterator to have multi-pass capability.
</p>
<p class="indent">
The value <code>prop</code> will be used to initialize the graph
property.
</p>
<hr></hr>
<pre><a name="edge-prop-const"></a>
template&lt;typename InputIterator, typename EdgePropertyIterator&gt;
compressed_sparse_row_graph(edges_are_unsorted_t,
InputIterator edge_begin, InputIterator edge_end,
EdgePropertyIterator ep_iter,
vertices_size_type numverts,
const GraphProperty&amp; prop = GraphProperty());
</pre>
<p class="indent">
This constructor constructs a graph with <code>numverts</code>
vertices and the edges provided in the iterator range
<code>[edge_begin, edge_end)</code>. Its semantics are identical
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>
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
of the graph, where <tt>m</tt> is distance from
<tt>edge_begin</tt> to <tt>edge_end</tt>. This constructor uses extra
memory to save the edge information before adding it to the graph,
avoiding the requirement for the iterator to have multi-pass capability.
</p>
<hr></hr>
<pre><a name="edge-multi-const"></a>
template&lt;typename MultiPassInputIterator&gt;
compressed_sparse_row_graph(edges_are_unsorted_multi_pass_t,
MultiPassInputIterator edge_begin, MultiPassInputIterator edge_end,
vertices_size_type numverts,
const GraphProperty&amp; prop = GraphProperty());
</pre>
<p class="indent">
Constructs a graph with <code>numverts</code> vertices whose
edges are specified by the iterator range <code>[edge_begin,
edge_end)</code>. The <tt>MultiPassInputIterator</tt> must be a model of
<a
href="../../utility/MultiPassInputIterator.html">MultiPassInputIterator</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,
numverts)</code>. The edges in <code>[edge_begin,
edge_end)</code> do not need to be sorted. Multiple passes will be made
over the edge range.
</p>
<p class="indent">
The value <code>prop</code> will be used to initialize the graph
property.
</p>
<hr></hr>
<pre><a name="edge-multi-prop-const"></a>
template&lt;typename MultiPassInputIterator, typename EdgePropertyIterator&gt;
compressed_sparse_row_graph(edges_are_unsorted_multi_pass_t,
MultiPassInputIterator edge_begin, MultiPassInputIterator edge_end,
EdgePropertyIterator ep_iter,
vertices_size_type numverts,
const GraphProperty&amp; prop = GraphProperty());
</pre>
<p class="indent">
This constructor constructs a graph with <code>numverts</code>
vertices and the edges provided in the iterator range
<code>[edge_begin, edge_end)</code>. Its semantics are identical
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="../../utility/MultiPassInputIterator.html">MultiPassInputIterator</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
of the graph, where <tt>m</tt> is distance from
<tt>edge_begin</tt> to <tt>edge_end</tt>. Multiple passes will be made
over the edge and property ranges.
</p>
<hr></hr>
<pre><a name="edge-sorted-const"></a>
template&lt;typename InputIterator&gt;
compressed_sparse_row_graph(edges_are_sorted_t,
InputIterator edge_begin, InputIterator edge_end,
vertices_size_type numverts,
edges_size_type numedges = 0,
const GraphProperty&amp; prop = GraphProperty());
</pre>
<p class="indent">
Constructs a graph with <code>numverts</code> vertices whose
edges are specified by the iterator range <code>[edge_begin,
edge_end)</code>. The argument of type <code>edges_are_sorted_t</code> is
a tag used to distinguish this constructor; the value
<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>
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,
numverts)</code>. The edges in <code>[edge_begin,
edge_end)</code> must be sorted so that all edges originating
from vertex <i>i</i> preceed any edges originating from all
vertices <i>j</i> where <i>j &gt; i</i>.
</p>
<p class="indent">
The value <code>numedges</code>, if provided, tells how many
edges are in the range <code>[edge_begin, edge_end)</code> and
will be used to preallocate data structures to save both memory
and time during construction.
</p>
<p class="indent">
The value <code>prop</code> will be used to initialize the graph
property.
</p>
<hr></hr>
<pre><a name="edge-sorted-prop-const"></a>
template&lt;typename InputIterator, typename EdgePropertyIterator&gt;
compressed_sparse_row_graph(edges_are_sorted_t,
InputIterator edge_begin, InputIterator edge_end,
EdgePropertyIterator ep_iter,
vertices_size_type numverts,
edges_size_type numedges = 0,
const GraphProperty&amp; prop = GraphProperty());
</pre>
<p class="indent">
This constructor constructs a graph with <code>numverts</code>
vertices and the edges provided in the iterator range
<code>[edge_begin, edge_end)</code>. Its semantics are identical
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>
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
of the graph, where <tt>m</tt> is distance from
<tt>edge_begin</tt> to <tt>edge_end</tt>.
</p>
<hr></hr>
<pre><a name="edge-inplace-const"></a>
template&lt;typename InputIterator&gt;
compressed_sparse_row_graph(construct_inplace_from_sources_and_targets_t,
std::vector&lt;vertex_descriptor&gt;&amp; sources,
std::vector&lt;vertex_descriptor&gt;&amp; targets,
vertices_size_type numverts,
const GraphProperty&amp; prop = GraphProperty());
</pre>
<p class="indent">
This constructor constructs a graph with <code>numverts</code> vertices
and the edges provided in the two vectors <code>sources</code> and
<code>targets</code>. The two vectors are mutated in-place to sort them
by source vertex. They are returned with unspecified values, but do not
share storage with the constructed graph (and so are safe to destroy).
The parameter <code>prop</code>, if provided, is used to initialize the
graph property.
</p>
<hr></hr>
<pre><a name="edge-inplace-prop-const"></a>
template&lt;typename InputIterator&gt;
compressed_sparse_row_graph(construct_inplace_from_sources_and_targets_t,
std::vector&lt;vertex_descriptor&gt;&amp; sources,
std::vector&lt;vertex_descriptor&gt;&amp; targets,
std::vector&lt;EdgeProperty&gt;&amp; edge_props,
vertices_size_type numverts,
const GraphProperty&amp; prop = GraphProperty());
</pre>
<p class="indent">
This constructor constructs a graph with <code>numverts</code> vertices
and the edges provided in the two vectors <code>sources</code> and
<code>targets</code>. Edge properties are initialized from the vector
<code>edge_props</code>. The three vectors are mutated in-place to sort
them by source vertex. They are returned with unspecified values, but do
not share storage with the constructed graph (and so are safe to
destroy). The parameter <code>prop</code>, if provided, is used to
initialize the graph property.
</p>
<hr></hr>
<pre><a name="graph-const"></a>
template&lt;typename Graph, typename VertexIndexMap&gt;
compressed_sparse_row_graph(const Graph&amp; g, const VertexIndexMap&amp; vi,
vertices_size_type numverts,
edges_size_type numedges);
template&lt;typename Graph, typename VertexIndexMap&gt;
compressed_sparse_row_graph(const Graph&amp; g, const VertexIndexMap&amp; vi);
template&lt;typename Graph&gt;
explicit compressed_sparse_row_graph(const Graph&amp; g);
</pre>
<p class="indent">
Calls the <a href="#assign"><tt>assign</tt></a> function with
all of the arguments it is given.
</p>
<hr></hr>
<a name="mutators"></a><h3>Mutators</h3>
<pre><a name="assign"></a>
template&lt;typename Graph, typename VertexIndexMap&gt;
void assign(const Graph&amp; g, const VertexIndexMap&amp; vi,
vertices_size_type numverts, edges_size_type numedges);
template&lt;typename Graph, typename VertexIndexMap&gt;
void assign(const Graph&amp; g, const VertexIndexMap&amp; vi);
template&lt;typename Graph&gt;
void assign(const Graph&amp; g);
</pre>
<p class="indent">
Clears the CSR graph and builds a CSR graph in place from the
structure of another graph. The graph type <tt>Graph</tt> must
be a model of <a href="IncidenceGraph.html">IncidenceGraph</a>.
<br><b>Parameters</b>
<ul>
<li><tt>g</tt>: The incoming graph.</li>
<li><tt>vi</tt>: A map from vertices to indices. If not
provided, <tt>get(vertex_index, g)</tt> will be used.</li>
<li><tt>numverts</tt>: The number of vertices in the graph
<tt>g</tt>. If not provided, <tt>Graph</tt> must be a model of
<a href="VertexListGraph.html">VertexListGraph</a>.</li>
<li><tt>numedges</tt>: The number of edges in the graph
<tt>g</tt>. If not provided, <tt>Graph</tt> must be a model of
<a href="EdgeListGraph.html">EdgeListGraph</a>.</li>
</ul>
</p>
<hr></hr>
<a name="property-access"></a><h3>Property Access</h3>
<pre><a name="vertex-subscript"></a>
VertexProperty&amp; operator[](vertex_descriptor v);
const VertexProperty&amp; operator[](vertex_descriptor v) const;
</pre>
<p class="indent">
Retrieves the property value associated with vertex
<tt>v</tt>. Only valid when <tt>VertexProperty</tt> is a class
type that is not <tt>no_property</tt>.
</p>
<hr></hr>
<pre><a name="edge-subscript">
EdgeProperty&amp; operator[](edge_descriptor v);
const EdgeProperty&amp; operator[](edge_descriptor v) const;
</pre>
<p class="indent">
Retrieves the property value associated with edge
<tt>v</tt>. Only valid when <tt>EdgeProperty</tt> is a class
type that is not <tt>no_property</tt>.
</p>
<hr></hr>
<a name="non-members"></a><h2>Non-member Functions</h2>
<a name="vertex-access"></a><h3>Vertex access</h3>
<pre><a name="vertex-lookup"></a>
vertex_descriptor vertex(vertices_size_type i, const compressed_sparse_row_graph&amp;);
</pre>
<p class="indent">
Retrieves the <i>i</i><sup>th</sup> vertex in the graph in
constant time.
</p>
<hr></hr>
<a name="edge-access"></a><h3>Edge access</h3>
<pre><a name="edge"></a>
std::pair&lt;edge_descriptor, bool&gt;
edge(vertex_descriptor u, vertex_descriptor v, const compressed_sparse_row_graph&amp;);
</pre>
<p class="indent">
If there exists an edge <i>(u, v)</i> in the graph, returns the
descriptor for that edge and <tt>true</tt>; otherwise, the
second value in the pair will be <tt>false</tt>. If multiple
edges exist from <tt>u</tt> to <tt>v</tt>, the first edge will
be returned; use <a href="IncidenceGraph.html"><tt>out_edges</tt></a> and a
conditional statement
to retrieve all edges to a given target. This function requires linear
time in the
number of edges outgoing from <tt>u</tt>.
</p>
<hr></hr>
<pre><a name="edge_from_index"></a>
edge_descriptor edge_from_index(edges_size_type i, const compressed_sparse_row_graph&amp;);
</pre>
<p class="indent">
Returns the <i>i</i><sup>th</sup> edge in the graph. This
operation requires logarithmic time in the number of vertices.
</p>
<hr></hr>
<h3><a name="property-map-accessors">Property Map Accessors</a></h3>
<pre><a name="get"></a>
template&lt;typename <a href="./PropertyTag.html">PropertyTag</a>&gt;
property_map&lt;compressed_sparse_row_graph, PropertyTag&gt;::type
get(PropertyTag, compressed_sparse_row_graph&amp; g)
template&lt;typename <a href="./PropertyTag.html">PropertyTag</a>&gt;
property_map&lt;compressed_sparse_row_graph, Tag&gt;::const_type
get(PropertyTag, const compressed_sparse_row_graph&amp; g)
</pre>
<p class="indent">
Returns the property map object for the vertex property
specified by <TT>PropertyTag</TT>. The <TT>PropertyTag</TT> must
be a member pointer to access one of the fields in
<tt>VertexProperty</tt> or <tt>EdgeProperty</tt>.
</p>
<hr></hr>
<pre><a name="get-x"></a>
template&lt;typename <a href="./PropertyTag.html">PropertyTag</a>, class X&gt;
typename property_traits&lt;property_map&lt;compressed_sparse_row_graph, PropertyTag&gt;::const_type&gt::value_type
get(PropertyTag, const compressed_sparse_row_graph&amp; g, X x)
</pre>
<p class="indent">
This returns the property value for <tt>x</tt>, where <tt>x</tt>
is either a vertex or edge descriptor.
</p>
<hr></hr>
<pre><a name="put-x"></a>
template&lt;typename <a href="./PropertyTag.html">PropertyTag</a>, class X, class Value&gt;
void put(PropertyTag, const compressed_sparse_row_graph&amp; g, X x, const Value&amp; value);
</pre>
<p class="indent">
This sets the property value for <tt>x</tt> to
<tt>value</tt>. <tt>x</tt> is either a vertex or edge
descriptor. <tt>Value</tt> must be convertible to <tt>typename
property_traits&lt;property_map&lt;compressed_sparse_row_graph,
PropertyTag&gt;::type&gt::value_type</tt>
</p>
<hr></hr>
<pre><a name="get_property"></a>
template&lt;typename <a href="./PropertyTag.html#GraphPropertyTag">GraphPropertyTag</a>&gt;
typename graph_property&lt;compressed_sparse_row_graph, GraphPropertyTag&gt;::type&amp;
get_property(compressed_sparse_row_graph&amp; g, GraphPropertyTag);
template&lt;typename <a href="./PropertyTag.html#GraphPropertyTag">GraphPropertyTag</a>&gt;
typename graph_property&lt;compressed_sparse_row_graph, GraphPropertyTag&gt;::type const &amp;
get_property(const compressed_sparse_row_graph&amp; g, GraphPropertyTag);
</pre>
<p class="indent">
Return the property specified by <tt>GraphPropertyTag</tt> that
is attached to the graph object <tt>g</tt>.
</p>
<hr></hr>
<pre><a name="set_property"></a>
template&lt;typename <a href="./PropertyTag.html#GraphPropertyTag">GraphPropertyTag</a>&gt;
void set_property(const compressed_sparse_row_graph&amp; g, GraphPropertyTag,
const typename graph_property&lt;compressed_sparse_row_graph, GraphPropertyTag&gt;::type&amp; value);
</pre>
<p class="indent">
Set the property specified by <tt>GraphPropertyTag</tt> that
is attached to the graph object <tt>g</tt>.
</p>
<hr></hr>
<h3><a name="incremental-construction-functions">Incremental construction functions</a></h3>
<pre><a name="add_edges"></a>
template&lt;typename InputIterator&gt;
void add_edges(InputIterator first, InputIterator last, compressed_sparse_row_graph&amp; g)
</pre>
<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>
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.
</p>
<hr></hr>
<pre><a name="add_edges_prop"></a>
template&lt;typename InputIterator, typename EPIter&gt;
void add_edges(InputIterator first, InputIterator last, EPIter ep_first, EPIter ep_last, compressed_sparse_row_graph&amp; g)
</pre>
<p class="indent">
Add a range of edges (from <tt>first</tt> to <tt>last</tt>) with
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>;
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
integer values produced by the <tt>InputIterator</tt> are the source and
target vertices of the new edges. The edges do not need to be sorted.
</p>
<hr></hr>
<pre><a name="add_edges_sorted"></a>
template&lt;typename BidirectionalIterator&gt;
void add_edges_sorted(BidirectionalIterator first, BidirectionalIterator last, compressed_sparse_row_graph&amp; g)
</pre>
<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>
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
index.
</p>
<hr></hr>
<pre><a name="add_edges_sorted_prop"></a>
template&lt;typename BidirectionalIterator, typename EPIter&gt;
void add_edges_sorted(BidirectionalIterator first, BidirectionalIterator last, EPIter ep_iter, compressed_sparse_row_graph&amp; g)
</pre>
<p class="indent">
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>.
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
new edges.
The <code>value_type</code> of the <tt>EPIter</tt> must be the edge
property type of the graph.
The edges must be sorted in increasing order by source vertex
index.
</p>
<hr></hr>
<a name="example"></a><h2>Example</h2>
<br>[<a
href="../example/csr-example.cpp">libs/graph/example/csr-example.cpp</a>]
<p>We will use the <tt>compressed_sparse_row_graph</tt> graph
class to store a simple Web graph. In this web graph the vertices
represent web pages and the edges represent links from one web
page to another. With each web page we want to associate a URL, so
we initially create a <tt>WebPage</tt> class that stores the
URL. Then we can create our graph type by providing
<tt>WebPage</tt> as a parameter to the
<tt>compressed_sparse_row_graph</tt> class template.</p>
<pre>
class WebPage
{
public:
std::string url;
};
// ...
typedef compressed_sparse_row_graph&lt;directedS, WebPage&gt; WebGraph;
WebGraph g(&the_edges[0], &the_edges[0] + sizeof(the_edges)/sizeof(E), 6);
</pre>
<p>We can then set the properties on the vertices of the graph
using the <a href="bundles.html">bundled properties</a> syntax,
and display the edges for the user.</p>
<pre>
// Set the URLs of each vertex
int index = 0;
BGL_FORALL_VERTICES(v, g, WebGraph)
g[v].url = urls[index++];
// Output each of the links
std::cout &lt;&lt; "The web graph:" &lt;&lt; std::endl;
BGL_FORALL_EDGES(e, g, WebGraph)
std::cout &lt;&lt; " " &lt;&lt; g[source(e, g)].url &lt;&lt; " -> " &lt;&lt; g[target(e, g)].url
&lt;&lt; std::endl;
</pre>
<p>See the <a href="../example/csr-example.cpp">complete example
source</a> for other operations one can perform with a
<tt>compressed_sparse_row_graph</tt>.</p>
<br>
<HR>
<TABLE>
<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>
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>,
Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
</TD></TR></TABLE>
</body>
</html>
+17 -16
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000-2001
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Jeremy Siek makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000-2001
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Connected Components</Title>
@@ -78,7 +74,7 @@ and assigning each component an integer label. The algorithm then
records which component each vertex in the graph belongs to by
recording the component number in the component property map. The
<tt>ComponentMap</tt> type must be a model of <a
href="../../property_map/WritablePropertyMap.html">Writable Property
href="../../property_map/doc/WritablePropertyMap.html">Writable Property
Map</a>. The value type shouch be an integer type, preferably the same
as the <tt>vertices_size_type</tt> of the graph. The key type must be
the graph's vertex descriptor type.<br>
@@ -93,12 +89,12 @@ UTIL: <tt>color_map(ColorMap color)</tt>
<blockquote>
This is used by the algorithm to keep track of its progress through
the graph. The type <tt>ColorMap</tt> must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a> and its key type must be the graph's vertex
descriptor type and the value type of the color map must model
<a href="./ColorValue.html">ColorValue</a>.<br>
<b>Default:</b> an <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
</tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of <tt>default_color_type</tt> of size
<tt>num_vertices(g)</tt> and using the <tt>i_map</tt> for the index
@@ -113,12 +109,17 @@ IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
num_vertices(g))</tt>. This parameter is only necessary when the
default color property map is used. The type <tt>VertexIndexMap</tt>
must be a model of <a
href="../../property_map/ReadablePropertyMap.html">Readable Property
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
Map</a>. The value type of the map must be an integer type. The
vertex descriptor type of the graph needs to be usable as the key
type of the map.<br>
<b>Default:</b> <tt>get(vertex_index, g)</tt><br>
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
Note: if you use this default, make sure your graph has
an internal <tt>vertex_index</tt> property. For example,
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
not have an internal <tt>vertex_index</tt> property.<br>
<b>Python</b>: Unsupported parameter.
</blockquote>
@@ -148,8 +149,8 @@ undirected graph.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+11 -15
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Constructing Graph Algorithms</Title>
@@ -95,12 +91,12 @@ use the propery map interface. This gives the user of the
algorithm the ability to decide how they want to store the properties.
Since we will need to both read and write the colors we specify the
requirements as <a
href="../../property_map/ReadWritePropertyMap.html">ReadWritePropertyMap</a>. The
href="../../property_map/doc/ReadWritePropertyMap.html">ReadWritePropertyMap</a>. The
<TT>key_type</TT> of the color map must be the
<TT>vertex_descriptor</TT> from the graph, and the <TT>value_type</TT>
must be some kind of integer. We also specify the interface for the
<TT>order</TT> parameter as a property map, in this case a <a
href="../../property_map/ReadablePropertyMap.html">ReadablePropertyMap</a>. For
href="../../property_map/doc/ReadablePropertyMap.html">ReadablePropertyMap</a>. For
order, the <TT>key_type</TT> is an integer offset and the
<TT>value_type</TT> is a <TT>vertex_descriptor</TT>. Again we enforce
these requirements with concept checks. The return value of this
@@ -173,12 +169,12 @@ namespace boost {
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+15 -15
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Jeremy Siek makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Copy Graph</Title>
@@ -77,11 +73,15 @@ map from the graph.
IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
<blockquote>
The vertex index map type must be a model of <a
href="../../property_map/ReadablePropertyMap.html">Readable Property
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
Map</a> and must map the vertex descriptors of <tt>G</tt> to the
integers from 0 to <tt>num_vertices(G)</tt>.<br>
integers in the half-open range <tt>[0,num_vertices(G))</tt>.<br>
<b>Default:</b> <tt>get(vertex_index, G)</tt>
<b>Default:</b> <tt>get(vertex_index, G)</tt>.
Note: if you use this default, make sure your graph has
an internal <tt>vertex_index</tt> property. For example,
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
not have an internal <tt>vertex_index</tt> property.
</blockquote>
@@ -90,7 +90,7 @@ UTIL/OUT: <tt>orig_to_copy(Orig2CopyMap c)</tt>
This maps vertices in the original graph to vertices in the copy.
<b>Default:</b> an <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
</tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of the output graph's vertex descriptor type of size
<tt>num_vertices(g)</tt> and using the <tt>i_map</tt> for the index
@@ -108,8 +108,8 @@ The time complexity is <i>O(V + E)</i>.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+14 -17
View File
@@ -1,14 +1,11 @@
<HTML>
<!-- Copyright (c) Jeremy Siek 2000 -->
<!-- Copyright (c) Jeremy Siek 2000
<!-- Permission to use, copy, modify, distribute and sell this software -->
<!-- and its documentation for any purpose is hereby granted without fee, -->
<!-- provided that the above copyright notice appears in all copies and -->
<!-- that both that copyright notice and this permission notice appear -->
<!-- in supporting documentation. Silicon Graphics makes no -->
<!-- representations about the suitability of this software for any -->
<!-- purpose. It is provided "as is" without express or implied warranty. -->
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Cuthill-Mckee Ordering</Title>
@@ -48,24 +45,24 @@
class ColorMap, class DegreeMap&gt;
OutputIterator
cuthill_mckee_ordering(const IncidenceGraph&amp; g,
typename graph_traits&lt;Graph&gt;::vertex_descriptor s,
typename graph_traits&lt;IncidenceGraph&gt;::vertex_descriptor s,
OutputIterator inverse_permutation,
ColorMap color, DegreeMap degree)
(2)
template &lt;class VertexListGraph, class OutputIterator&gt;
OutputIterator
cuthill_mckee_ordering(const VertexIndexMap&amp; G, OutputIterator inverse_permutation);
cuthill_mckee_ordering(const VertexListGraph&amp; g, OutputIterator inverse_permutation);
template &lt;class VertexListGraph, class OutputIterator, class VertexIndexMap&gt;
OutputIterator
cuthill_mckee_ordering(const VertexIndexMap&amp; G, OutputIterator inverse_permutation,
cuthill_mckee_ordering(const VertexListGraph&amp; g, OutputIterator inverse_permutation,
VertexIndexMap index_map);
template &lt;class VertexListGraph, class OutputIterator,
class ColorMap, class DegreeMap&gt;
OutputIterator
cuthill_mckee_ordering(const VertexListGraph&amp; G, OutputIterator inverse_permutation,
cuthill_mckee_ordering(const VertexListGraph&amp; g, OutputIterator inverse_permutation,
ColorMap color, DegreeMap degree)
(3)
@@ -74,7 +71,7 @@
OutputIterator
cuthill_mckee_ordering(const IncidenceGraph&amp; g,
std::deque&lt; typename
graph_traits&lt;Graph&gt;::vertex_descriptor &gt; vertex_queue,
graph_traits&lt;IncidenceGraph&gt;::vertex_descriptor &gt; vertex_queue,
OutputIterator inverse_permutation,
ColorMap color, DegreeMap degree)
</pre>
@@ -83,7 +80,7 @@ The goal of the Cuthill-Mckee (and reverse Cuthill-Mckee) ordering
algorithm[<A
HREF="bibliography.html#george81:__sparse_pos_def">14</A>, <A
HREF="bibliography.html#cuthill69:reducing_bandwith">43</A>, <a
href="bibliography.html#liu75:rcm">44</a>, <a
href="bibliography.html#liu75:anal_cm_rcm">44</a>, <a
href="bibliography.html#george71:fem">45</a> ] is to reduce the <a
href="./bandwidth.html">bandwidth</a> of a graph by reordering the
indices assigned to each vertex. The Cuthill-Mckee ordering algorithm
@@ -176,7 +173,7 @@ For version 2:
<li> <tt>VertexListGraph&amp; g</tt> &nbsp;(IN) <br>
An undirected graph. The graph's type must be a model of <a
href="./VertexListGraph.html">VertexListGraph</a>.<br>
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">
@@ -243,8 +240,8 @@ and <tt>degree_property_map</tt> in <tt>boost/graph/properties.hpp</tt>.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+20 -20
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Jeremy Siek makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Directed Acyclic Graph Shortest Paths</Title>
@@ -54,7 +50,7 @@ than either the Dijkstra or Bellman-Ford algorithm.
Use breadth-first search instead of this algorithm
when all edge weights are equal to one. For the definition of the
shortest-path problem see Section <A
HREF="graph_theory_review.html#sec:shortest-path-algorithms">Shortest-Paths
HREF="graph_theory_review.html#sec:shortest-paths-algorithms">Shortest-Paths
Algorithms</A> for some background to the shortest-path problem.
</P>
@@ -100,7 +96,7 @@ IN: <tt>weight_map(WeightMap w_map)</tt>
<blockquote>
The weight or ``length'' of each edge in the graph.
The type <tt>WeightMap</tt> must be a model of
<a href="../../property_map/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
the graph needs to be usable as the key type for the weight
map. The value type for the map must be
<i>Addable</i> with the value type of the distance map.<br>
@@ -116,10 +112,14 @@ IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
num_vertices(g))</tt>. This is necessary for efficient updates of the
heap data structure when an edge is relaxed. The type
<tt>VertexIndexMap</tt> must be a model of
<a href="../../property_map/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
integer type. The vertex descriptor type of the graph needs to be
usable as the key type of the map.<br>
<b>Default:</b> <tt>get(vertex_index, g)</tt><br>
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
Note: if you use this default, make sure your graph has
an internal <tt>vertex_index</tt> property. For example,
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
not have an internal <tt>vertex_index</tt> property.<br>
<b>Python</b>: Unsupported parameter.
</blockquote>
@@ -132,7 +132,7 @@ OUT: <tt>predecessor_map(PredecessorMap p_map)</tt>
u</i> then <i>u</i> is either the source vertex or a vertex that is
not reachable from the source. The <tt>PredecessorMap</tt> type
must be a <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a> which key and vertex types the same as the vertex
descriptor type of the graph.<br>
<b>Default:</b> <tt>dummy_property_map</tt><br>
@@ -145,7 +145,7 @@ UTIL/OUT: <tt>distance_map(DistanceMap d_map)</tt>
vertex in the graph <tt>g</tt> is recorded in this property map. The
shortest path weight is the sum of the edge weights along the
shortest path. The type <tt>DistanceMap</tt> must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a>. The vertex descriptor type of the graph needs to
be usable as the key type of the distance map.
@@ -157,7 +157,7 @@ UTIL/OUT: <tt>distance_map(DistanceMap d_map)</tt>
StrictWeakOrdering</a> provided by the <tt>compare</tt> function
object.<br>
<b>Default:</b> <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
<tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of the <tt>WeightMap</tt>'s value type of size
<tt>num_vertices(g)</tt> and using the <tt>i_map</tt> for the index
@@ -228,12 +228,12 @@ UTIL/OUT: <tt>color_map(ColorMap c_map)</tt>
from the queue. At the end of the algorithm, vertices reachable from
the source vertex will have been colored black. All other vertices
will still be white. The type <tt>ColorMap</tt> must be a model of
<a href="../../property_map/ReadWritePropertyMap.html">Read/Write
<a href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a>. A vertex descriptor must be usable as the key type
of the map, and the value type of the map must be a model of
<a href="./ColorValue.html">Color Value</a>.<br>
<b>Default:</b> an <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
<tt>iterator_property_map</tt></a> created from a <tt>std::vector</tt>
of <tt>default_color_type</tt> of size <tt>num_vertices(g)</tt> and
using the <tt>i_map</tt> for the index map.<br>
@@ -317,8 +317,8 @@ algorithm.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
Binary file not shown.
-224
View File
@@ -1,224 +0,0 @@
/*
:Author: David Goodger
:Contact: goodger@users.sourceforge.net
:date: $Date$
:version: $Revision$
:copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
*/
.first {
margin-top: 0 }
.last {
margin-bottom: 0 }
a.toc-backref {
text-decoration: none ;
color: black }
dd {
margin-bottom: 0.5em }
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.attention, div.caution, div.danger, div.error, div.hint,
div.important, div.note, div.tip, div.warning, div.admonition {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title {
color: red ;
font-weight: bold ;
font-family: sans-serif }
div.hint p.admonition-title, div.important p.admonition-title,
div.note p.admonition-title, div.tip p.admonition-title,
div.admonition p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em }
div.footer, div.header {
font-size: smaller }
div.sidebar {
margin-left: 1em ;
border: medium outset ;
padding: 0em 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr {
width: 75% }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font-family: serif ;
font-size: 100% }
pre.line-block {
font-family: serif ;
font-size: 100% }
pre.literal-block, pre.doctest-block {
margin-left: 2em ;
margin-right: 2em ;
background-color: #eeeeee }
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.option-argument {
font-style: italic }
span.pre {
white-space: pre }
span.problematic {
color: red }
table {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.citation {
border-left: solid thin gray ;
padding-left: 0.5ex }
table.docinfo {
margin: 2em 4em }
table.footnote {
border-left: solid thin black ;
padding-left: 0.5ex }
td, th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
th.docinfo-name, th.field-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap }
h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
font-size: 100% }
tt {
background-color: #eeeeee }
ul.auto-toc {
list-style-type: none }
+18 -18
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Depth-First Search</Title>
@@ -70,7 +66,7 @@ The <tt>depth_first_search()</tt> function invokes user-defined
actions at certain event-points within the algorithm. This provides a
mechanism for adapting the generic DFS algorithm to the many
situations in which it can be used. In the pseudo-code below, the
event points for DFS are indicated in by the triangles and labels on
event points for DFS are the labels on
the right. The user-defined actions must be provided in the form of a
visitor object, that is, an object whose type meets the requirements
for a <a href="./DFSVisitor.html">DFS Visitor</a>. In the pseudo-code
@@ -189,12 +185,12 @@ UTIL/OUT: <tt>color_map(ColorMap color)</tt>
<blockquote>
This is used by the algorithm to keep track of its progress through
the graph. The type <tt>ColorMap</tt> must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a> and its key type must be the graph's vertex
descriptor type and the value type of the color map must model
<a href="./ColorValue.html">ColorValue</a>.<br>
<b>Default:</b> an <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
</tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of <tt>default_color_type</tt> of size
<tt>num_vertices(g)</tt> and using the <tt>i_map</tt> for the index
@@ -219,12 +215,16 @@ IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
num_vertices(g))</tt>. This parameter is only necessary when the
default color property map is used. The type <tt>VertexIndexMap</tt>
must be a model of <a
href="../../property_map/ReadablePropertyMap.html">Readable Property
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
Map</a>. The value type of the map must be an integer type. The
vertex descriptor type of the graph needs to be usable as the key
type of the map.<br>
<b>Default:</b> <tt>get(vertex_index, g)</tt><br>
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
Note: if you use this default, make sure your graph has
an internal <tt>vertex_index</tt> property. For example,
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
not have an internal <tt>vertex_index</tt> property.<br>
<b>Python</b>: Unsupported parameter.
</blockquote>
@@ -300,12 +300,12 @@ The example in <a href="../example/dfs-example.cpp">
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+10 -14
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Depth-First Visit</Title>
@@ -27,12 +23,12 @@
<P>
<PRE>
template &lt;class <a href="./IncidenceGraph.html">IncidenceGraph</a>, class <a href="./DFSVisitor.html">DFSVisitor</a>, class <a href="#ColorMap">ColorMap</a>&gt;
template &lt;class <a href="./IncidenceGraph.html">IncidenceGraph</a>, class <a href="./DFSVisitor.html">DFSVisitor</a>, class ColorMap&gt;
void depth_first_visit(IncidenceGraph& g,
typename graph_traits&lt;IncidenceGraph&gt;::vertex_descriptor s,
DFSVisitor&amp; vis, ColorMap color)
template &lt;class <a href="./IncidenceGraph.html">IncidenceGraph</a>, class <a href="./DFSVisitor.html">DFSVisitor</a>, class <a href="#ColorMap">ColorMap</a>,
template &lt;class <a href="./IncidenceGraph.html">IncidenceGraph</a>, class <a href="./DFSVisitor.html">DFSVisitor</a>, class ColorMap,
class TerminatorFunc&gt;
void depth_first_visit(IncidenceGraph& g,
typename graph_traits&lt;IncidenceGraph&gt;::vertex_descriptor s,
@@ -100,7 +96,7 @@ UTIL: <tt>ColorMap color</tt>
<blockquote>
This is used by the algorithm to keep track of its progress through
the graph. The type <tt>ColorMap</tt> must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a> and its key type must be the graph's vertex
descriptor type and the value type of the color map map must model
<a href="./ColorValue.html">Color Value</a>.<br>
@@ -140,8 +136,8 @@ Time complexity is <i>O(E)</i>.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
+11 -15
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: dfs_visitor</Title>
@@ -26,7 +22,7 @@ dfs_visitor&lt;EventVisitorList&gt;
</H1>
This class is an adapter that converts a list of <a
href="./EventVisitor.html">EventVisitor</a>'s (constructed using
href="./EventVisitor.html">EventVisitor</a>s (constructed using
<tt>std::pair</tt>) into a <a href="./DFSVisitor.html">DFSVisitor</a>.
@@ -67,7 +63,7 @@ with <tt>std::pair</tt>.
This class implements all of the member functions required by <a
href="./DFSVisitor.html">DFSVisitor</a>. In each function the
appropriate event is dispatched to the <a
href="./EventVisitor.html">EventVisitor</a>'s in the EventVisitorList.
href="./EventVisitor.html">EventVisitor</a> in the EventVisitorList.
<h3>Non-Member Functions</h3>
@@ -101,12 +97,12 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+44 -28
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Jeremy Siek makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Dijkstra's Shortest Paths</Title>
@@ -23,7 +19,6 @@
<TT>dijkstra_shortest_paths</TT>
</H1>
<P>
<PRE>
<i>// named parameter version</i>
@@ -37,14 +32,28 @@ dijkstra_shortest_paths(Graph&amp; g,
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 DistInf, typename DistZero&gt;
typename DistInf, typename DistZero, typename ColorMap = <i>default</i>&gt;
void dijkstra_shortest_paths
(const Graph&amp; g,
typename graph_traits&lt;Graph&gt;::vertex_descriptor s,
PredecessorMap predecessor, DistanceMap distance, WeightMap weight,
VertexIndexMap index_map,
CompareFunction compare, CombineFunction combine, DistInf inf, DistZero zero,
DijkstraVisitor vis)
DijkstraVisitor vis, ColorMap color = <i>default</i>)
<i>// version that does not initialize the property maps (except for the default color map)</i>
template &lt;class Graph, class DijkstraVisitor,
class PredecessorMap, class DistanceMap,
class WeightMap, class IndexMap, class Compare, class Combine,
class DistZero, class ColorMap&gt;
void
dijkstra_shortest_paths_no_init
(const Graph&amp; g,
typename graph_traits&lt;Graph&gt;::vertex_descriptor s,
PredecessorMap predecessor, DistanceMap distance, WeightMap weight,
IndexMap index_map,
Compare compare, Combine combine, DistZero zero,
DijkstraVisitor vis, ColorMap color = <i>default</i>);
</PRE>
<P>
@@ -56,7 +65,7 @@ algorithm for the case when some edge weights are negative. Use
breadth-first search instead of Dijkstra's algorithm when all edge
weights are equal to one. For the definition of the shortest-path
problem see Section <A
HREF="graph_theory_review.html#sec:shortest-path-algorithms">Shortest-Paths
HREF="graph_theory_review.html#sec:shortest-paths-algorithms">Shortest-Paths
Algorithms</A> for some background to the shortest-path problem.
</P>
@@ -70,8 +79,8 @@ record the shortest paths tree in a predecessor map: for each vertex
<i>u in V</i>, <i>p[u]</i> will be the predecessor of <i>u</i> in
the shortest paths tree (unless <i>p[u] = u</i>, in which case <i>u</i> is
either the source or a vertex unreachable from the source). In
addition to these two options, the user can provide there own
custom-made visitor that can takes actions during any of the
addition to these two options, the user can provide their own
custom-made visitor that takes actions during any of the
algorithm's event points.</P>
<P>
@@ -96,7 +105,7 @@ track of which set each vertex is in. Vertices colored black are in
<i>S</i>. Vertices colored white or gray are in <i>V-S</i>. White vertices have
not yet been discovered and gray vertices are in the priority queue.
By default, the algorithm will allocate an array to store a color
marker for each vertex in the graph. You can provide you own storage
marker for each vertex in the graph. You can provide your own storage
and access for colors with the <tt>color_map()</tt> parameter.
</P>
<p>
@@ -113,7 +122,7 @@ indicated by the labels on the right.
<td valign="top">
<pre>
DIJKSTRA(<i>G</i>, <i>s</i>, <i>w</i>)
<b>for</b> each vertex <i>u in V</i>
<b>for</b> each vertex <i>u in V</i> <b>(This loop is not run in dijkstra_shortest_paths_no_init)</b>
<i>d[u] := infinity</i>
<i>p[u] := u</i>
<i>color[u] :=</i> WHITE
@@ -206,7 +215,7 @@ IN: <tt>weight_map(WeightMap w_map)</tt>
<a href="./exception.html#negative_edge"><tt>negative_edge</tt></a>
exception is one of the edges is negative.
The type <tt>WeightMap</tt> must be a model of
<a href="../../property_map/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
the graph needs to be usable as the key type for the weight
map. The value type for this map must be
the same as the value type of the distance map.<br>
@@ -224,10 +233,15 @@ IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
HREF="bibliography.html#driscoll88">61</A>] when an edge is relaxed.
The type
<tt>VertexIndexMap</tt> must be a model of
<a href="../../property_map/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
integer type. The vertex descriptor type of the graph needs to be
usable as the key type of the map.<br>
<b>Default:</b> <tt>get(vertex_index, g)</tt><br>
<b>Default:</b> <tt>get(vertex_index, g)</tt>.
Note: if you use this default, make sure your graph has
an internal <tt>vertex_index</tt> property. For example,
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
not have an internal <tt>vertex_index</tt> property.
<br>
<b>Python</b>: Unsupported parameter.
</blockquote>
@@ -240,7 +254,7 @@ OUT: <tt>predecessor_map(PredecessorMap p_map)</tt>
u</i> then <i>u</i> is either the source vertex or a vertex that is
not reachable from the source. The <tt>PredecessorMap</tt> type
must be a <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a> whose key and value types are the same as the vertex
descriptor type of the graph.<br>
<b>Default:</b> <tt>dummy_property_map</tt><br>
@@ -254,7 +268,7 @@ UTIL/OUT: <tt>distance_map(DistanceMap d_map)</tt>
vertex in the graph <tt>g</tt> is recorded in this property map. The
shortest path weight is the sum of the edge weights along the
shortest path. The type <tt>DistanceMap</tt> must be a model of <a
href="../../property_map/ReadWritePropertyMap.html">Read/Write
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a>. The vertex descriptor type of the graph needs to
be usable as the key type of the distance map.
@@ -266,7 +280,7 @@ UTIL/OUT: <tt>distance_map(DistanceMap d_map)</tt>
StrictWeakOrdering</a> provided by the <tt>compare</tt> function
object.<br>
<b>Default:</b> <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
<tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of the <tt>WeightMap</tt>'s value type of size
<tt>num_vertices(g)</tt> and using the <tt>i_map</tt> for the index
@@ -302,7 +316,7 @@ IN: <tt>distance_combine(CombineFunction cmb)</tt>
<tt>WeightMap</tt> property map. The result type must be the same
type as the distance value type.<br>
<b>Default:</b> <tt>std::plus&lt;D&gt;</tt> with
<b>Default:</b> <tt>closed_plus&lt;D&gt;</tt> with
<tt>D=typename property_traits&lt;DistanceMap&gt;::value_type</tt><br>
<b>Python</b>: Unsupported parameter.
@@ -338,12 +352,12 @@ UTIL/OUT: <tt>color_map(ColorMap c_map)</tt>
from the queue. At the end of the algorithm, vertices reachable from
the source vertex will have been colored black. All other vertices
will still be white. The type <tt>ColorMap</tt> must be a model of
<a href="../../property_map/ReadWritePropertyMap.html">Read/Write
<a href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a>. A vertex descriptor must be usable as the key type
of the map, and the value type of the map must be a model of
<a href="./ColorValue.html">Color Value</a>.<br>
<b>Default:</b> an <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
<tt>iterator_property_map</tt></a> created from a <tt>std::vector</tt>
of <tt>default_color_type</tt> of size <tt>num_vertices(g)</tt> and
using the <tt>i_map</tt> for the index map.<br>
@@ -415,6 +429,8 @@ See <a href="../example/dijkstra-example.cpp">
<TT>example/dijkstra-example.cpp</TT></a> for an example of using Dijkstra's
algorithm.
<H3>See also</H3> <a href="dijkstra_shortest_paths_no_color_map.html">dijkstra_shortest_paths_no_color_map</a> for a version of dijkstra's shortest path that does not use a color map.
<H3>Notes</H3>
<a name="1">[1]</a>
@@ -434,8 +450,8 @@ distance less than infinity.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
@@ -0,0 +1,398 @@
<HTML>
<!--
Copyright (c) Michael Hansen 2009
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Dijkstra's Shortest Paths (No Color Map)</Title>
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
ALINK="#ff0000">
<IMG SRC="../../../boost.png"
ALT="C++ Boost" width="277" height="86">
<BR Clear>
<H1><A NAME="sec:dijkstra"></A>
<TT>dijkstra_shortest_paths_no_color_map</TT>
</H1>
<P>
<PRE>
<i>// named parameter version</i>
template &lt;typename Graph, typename Param, typename Tag, typename Rest&gt;
void dijkstra_shortest_paths_no_color_map
(const Graph&amp; graph,
typename graph_traits&lt;Graph&gt;::vertex_descriptor start_vertex,
const bgl_named_params<Param,Tag,Rest>& params);
<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 DistanceInfinity, typename DistanceZero&gt;
void dijkstra_shortest_paths_no_color_map
(const Graph&amp; graph,
typename graph_traits&lt;Graph&gt;::vertex_descriptor start_vertex,
PredecessorMap predecessor_map, DistanceMap distance_map, WeightMap weight_map,
VertexIndexMap index_map,
DistanceCompare distance_compare, DistanceWeightCombine distance_weight_combine,
DistanceInfinity distance_infinity, DistanceZero distance_zero);
<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 DistanceInfinity, typename DistanceZero&gt;
void dijkstra_shortest_paths_no_color_map_no_init
(const Graph&amp; graph,
typename graph_traits&lt;Graph&gt;::vertex_descriptor start_vertex,
PredecessorMap predecessor_map, DistanceMap distance_map, WeightMap weight_map,
VertexIndexMap index_map,
DistanceCompare distance_compare, DistanceWeightCombine distance_weight_combine,
DistanceInfinity distance_infinity, DistanceZero distance_zero);
</PRE>
<P>
This algorithm&nbsp;[<A HREF="bibliography.html#dijkstra59">10</A>,<A
HREF="bibliography.html#clr90">8</A>] solves the single-source
shortest-paths problem on a weighted, directed or undirected graph for
the case where all edge weights are nonnegative. Use the Bellman-Ford
algorithm for the case when some edge weights are negative. Use
breadth-first search instead of Dijkstra's algorithm when all edge
weights are equal to one. For the definition of the shortest-path
problem see Section <A
HREF="graph_theory_review.html#sec:shortest-paths-algorithms">Shortest-Paths
Algorithms</A> for some background to the shortest-path problem.
</P>
<P>
<tt>dijkstra_shortest_paths_no_color_map</tt> differs from the original <tt>dijkstra_shortest_paths</tt> algorithm by not using a color map to identify vertices as discovered or undiscovered. Instead, this is done with the distance map: a vertex <i>u</i> such that <i>distance_compare(distance_map[u], distance_infinity) == false</i> is considered to be undiscovered.
</P>
<P>
There are two main options for obtaining output from the
<tt>dijkstra_shortest_paths_no_color_map()</tt> function. If you provide a
distance property map through the <tt>distance_map()</tt> parameter
then the shortest distance from the start vertex to every other
vertex in the graph will be recorded in the distance map. Also you can
record the shortest paths tree in a predecessor map: for each vertex
<i>u in V</i>, <i>p[u]</i> will be the predecessor of <i>u</i> in
the shortest paths tree (unless <i>p[u] = u</i>, in which case <i>u</i> is
either the source or a vertex unreachable from the source). In
addition to these two options, the user can provide their own
custom-made visitor that takes actions during any of the
algorithm's event points <a href="#4">[4]</a>.</P>
<P>
Dijkstra's algorithm finds all the shortest paths from the source
vertex to every other vertex by iteratively &quot;growing&quot; the set of
vertices <i>S</i> to which it knows the shortest path. At each step of
the algorithm, the next vertex added to <i>S</i> is determined by a
priority queue. The queue contains the vertices in <i>V - S</i><a
href="#1">[1]</a> prioritized by their distance label, which is the
length of the shortest path seen so far for each vertex. The vertex
<i>u</i> at the top of the priority queue is then added to <i>S</i>,
and each of its out-edges is relaxed: if the distance to <i>u</i> plus
the weight of the out-edge <i>(u,v)</i> is less than the distance
label for <i>v</i> then the estimated distance for vertex <i>v</i> is
reduced. The algorithm then loops back, processing the next vertex at
the top of the priority queue. The algorithm finishes when the
priority queue is empty.
</P>
<p>
The following is the pseudo-code for Dijkstra's single-source shortest
paths algorithm. <i>w</i> is the edge weight, <i>d</i> is the distance label,
and <i>p</i> is the predecessor of each vertex which is used to encode
the shortest paths tree. <i>Q</i> is a priority queue that supports the
DECREASE-KEY operation. The visitor event points for the algorithm are
indicated by the labels on the right.
</p>
<table>
<tr>
<td valign="top">
<pre>
DIJKSTRA(<i>G</i>, <i>s</i>, <i>w</i>)
<b>for</b> each vertex <i>u in V</i> <b>(This loop is not run in dijkstra_shortest_paths_no_color_map_no_init)</b>
<i>d[u] := infinity</i>
<i>p[u] := u</i>
<b>end for</b>
<i>d[s] := 0</i>
INSERT(<i>Q</i>, <i>s</i>)
<b>while</b> (<i>Q != &Oslash;</i>)
<i>u :=</i> EXTRACT-MIN(<i>Q</i>)
<b>for</b> each vertex <i>v in Adj[u]</i>
<b>if</b> (<i>w(u,v) + d[u] < d[v]</i>)
<i>d[v] := w(u,v) + d[u]</i>
<i>p[v] := u</i>
DECREASE-KEY(<i>Q</i>, <i>v</i>)
<b>else</b>
...
<b>if</b> (<i>d[v]</i> was originally infinity)
INSERT(<i>Q</i>, <i>v</i>)
<b>end for</b>
<b>end while</b>
return (<i>d</i>, <i>p</i>)
</pre>
</td>
<td valign="top">
<pre>
initialize vertex <i>u</i>
discover vertex <i>s</i>
examine vertex <i>u</i>
examine edge <i>(u,v)</i>
edge <i>(u,v)</i> relaxed
edge <i>(u,v)</i> not relaxed
discover vertex <i>v</i>
finish vertex <i>u</i>
</pre>
</td>
</tr>
</table>
<h3>Where Defined</h3>
<a href="../../../boost/graph/dijkstra_shortest_paths_no_color_map.hpp"><tt>boost/graph/dijkstra_shortest_paths_no_color_map.hpp</tt></a>
<h3>Parameters</h3>
IN: <tt>const Graph&amp; graph</tt>
<blockquote>
The graph object on which the algorithm will be applied.
The type <tt>Graph</tt> must be a model of
<a href="./VertexListGraph.html">Vertex List Graph</a>
and <a href="./IncidenceGraph.html">Incidence Graph</a>.<br>
</blockquote>
IN: <tt>vertex_descriptor start_vertex</tt>
<blockquote>
The source vertex. All distance will be calculated from this vertex,
and the shortest paths tree will be rooted at this vertex.<br>
</blockquote>
<h3>Named Parameters</h3>
IN: <tt>weight_map(WeightMap weight_map)</tt>
<blockquote>
The weight or ``length'' of each edge in the graph. The weights
must all be non-negative and non-infinite <a href="#3">[3]</a>. The algorithm will throw a
<a href="./exception.html#negative_edge"><tt>negative_edge</tt></a>
exception is one of the edges is negative.
The type <tt>WeightMap</tt> must be a model of
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
the graph needs to be usable as the key type for the weight
map. The value type for this map must be
the same as the value type of the distance map.<br>
<b>Default:</b> <tt>get(edge_weight, graph)</tt><br>
</blockquote>
IN: <tt>index_map(VertexIndexMap index_map)</tt>
<blockquote>
This maps each vertex to an integer in the range <tt>[0,
num_vertices(graph))</tt>. This is necessary for efficient updates of the
heap data structure&nbsp;[<A
HREF="bibliography.html#driscoll88">61</A>] when an edge is relaxed.
The type
<tt>VertexIndexMap</tt> must be a model of
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The value type of the map must be an
integer type. The vertex descriptor type of the graph needs to be
usable as the key type of the map.<br>
<b>Default:</b> <tt>get(vertex_index, graph)</tt>.
Note: if you use this default, make sure your graph has
an internal <tt>vertex_index</tt> property. For example,
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
not have an internal <tt>vertex_index</tt> property.
<br>
</blockquote>
OUT: <tt>predecessor_map(PredecessorMap predecessor_map)</tt>
<blockquote>
The predecessor map records the edges in the minimum spanning
tree. Upon completion of the algorithm, the edges <i>(p[u],u)</i>
for all <i>u in V</i> are in the minimum spanning tree. If <i>p[u] =
u</i> then <i>u</i> is either the source vertex or a vertex that is
not reachable from the source. The <tt>PredecessorMap</tt> type
must be a <a
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a> whose key and value types are the same as the vertex
descriptor type of the graph.<br>
<b>Default:</b> <tt>dummy_property_map</tt><br>
<b>Python</b>: Must be a <tt>vertex_vertex_map</tt> for the graph.<br>
</blockquote>
UTIL/OUT: <tt>distance_map(DistanceMap distance_map)</tt>
<blockquote>
The shortest path weight from the source vertex <tt>start_vertex</tt> to each
vertex in the graph <tt>graph</tt> is recorded in this property map. The
shortest path weight is the sum of the edge weights along the
shortest path. The type <tt>DistanceMap</tt> must be a model of <a
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a>. The vertex descriptor type of the graph needs to
be usable as the key type of the distance map.
The value type of the distance map is the element type of a <a
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">
StrictWeakOrdering</a> provided by the <tt>distance_compare</tt> function
object.<br>
<b>Default:</b> <a
href="../../property_map/doc/iterator_property_map.html">
<tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of the <tt>WeightMap</tt>'s value type of size
<tt>num_vertices(graph)</tt> and using the <tt>index_map</tt> for the index
map.<br>
</blockquote>
IN: <tt>distance_compare(CompareFunction distance_compare)</tt>
<blockquote>
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
Predicate</a> and have argument types that match the value type of
the <tt>DistanceMap</tt> property map.<br>
<b>Default:</b>
<tt>std::less&lt;D&gt;</tt> with <tt>D=typename
property_traits&lt;DistanceMap&gt;::value_type</tt><br>
</blockquote>
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
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>boost::closed_plus&lt;D&gt;</tt> with
<tt>D=typename property_traits&lt;DistanceMap&gt;::value_type</tt><br>
</blockquote>
IN: <tt>distance_inf(D distance_infinity)</tt>
<blockquote>
The <tt>distance_infinity</tt> object must be the greatest value of any <tt>D</tt> object.
That is, <tt>distance_compare(d, distance_infinity) == true</tt> for any <tt>d != distance_infinity</tt>.
The type <tt>D</tt> is the value type of the <tt>DistanceMap</tt>.<br>
<b>Default:</b> <tt>std::numeric_limits&lt;D&gt;::max()</tt><br>
</blockquote>
IN: <tt>distance_zero(D distance_zero)</tt>
<blockquote>
The <tt>distance_zero</tt> value must be the identity element for the
<a href="./Monoid.html">Monoid</a> formed by the distance values
and the <tt>distance_weight_combine</tt> function object.
The type <tt>D</tt> is the value type of the <tt>DistanceMap</tt>.<br>
<b>Default:</b> <tt>D()</tt>with
<tt>D=typename property_traits&lt;DistanceMap&gt;::value_type</tt><br>
</blockquote>
OUT: <tt>visitor(DijkstraVisitor v)</tt>
<blockquote>
Use this to specify actions that you would like to happen
during certain event points within the algorithm.
The type <tt>DijkstraVisitor</tt> must be a model of the
<a href="./DijkstraVisitor.html">Dijkstra Visitor</a> concept.
The visitor object is passed by value <a
href="#2">[2]</a>.<br>
<b>Default:</b> <tt>dijkstra_visitor&lt;null_visitor&gt;</tt><br>
</blockquote>
<H3>Complexity</H3>
<P>
The time complexity is <i>O(V log V)</i>.
<h3>Visitor Event Points</h3>
<ul>
<li><b><tt>vis.initialize_vertex(u, g)</tt></b>
is invoked on each vertex in the graph before the start of the
algorithm.
<li><b><tt>vis.examine_vertex(u, g)</tt></b>
is invoked on a vertex as it is removed from the priority queue
and added to set <i>S</i>. At this point we know that <i>(p[u],u)</i>
is a shortest-paths tree edge so
<i>d[u] = delta(s,u) = d[p[u]] + w(p[u],u)</i>. Also, the distances
of the examined vertices is monotonically increasing
<i>d[u<sub>1</sub>] <= d[u<sub>2</sub>] <= d[u<sub>n</sub>]</i>.
<li><b><tt>vis.examine_edge(e, g)</tt></b>
is invoked on each out-edge of a vertex immediately after it has
been added to set <i>S</i>.
<li><b><tt>vis.edge_relaxed(e, g)</tt></b>
is invoked on edge <i>(u,v)</i> if <i>d[u] + w(u,v) < d[v]</i>.
The edge <i>(u,v)</i> that participated in the last
relaxation for vertex <i>v</i> is an edge in the shortest paths tree.
<li><b><tt>vis.discover_vertex(v, g)</tt></b>
is invoked on vertex <i>v</i> when the edge
<i>(u,v)</i> is examined and <i>v</i> has not yet been discovered (i.e. its distance was infinity before relaxation was attempted on the edge). This
is also when the vertex is inserted into the priority queue.
<li><b><tt>vis.edge_not_relaxed(e, g)</tt></b>
is invoked if the edge is not relaxed (see above).
<li><b><tt>vis.finish_vertex(u, g)</tt></b>
is invoked on a vertex after all of its out edges have
been examined.
</ul>
<H3>Example</H3>
<P>
See <a href="../example/dijkstra-no-color-map-example.cpp">
<TT>example/dijkstra-no-color-map-example.cpp</TT></a> for an example of using Dijkstra's algorithm.
<H3>See also</H3> <a href="dijkstra_shortest_paths.html">dijkstra_shortest_paths</a> for a version of dijkstra's shortest path that uses a color map.
<H3>Notes</H3>
<p>Based on the documentation for <a href="dijkstra_shortest_paths.html">dijkstra_shortest_paths</a>.
<p><a name="1">[1]</a>
The algorithm used here saves a little space by not putting all <i>V -
S</i> vertices in the priority queue at once, but instead only those
vertices in <i>V - S</i> that are discovered and therefore have a
distance less than infinity.
<p><a name="2">[2]</a>
Since the visitor parameter is passed by value, if your visitor
contains state then any changes to the state during the algorithm
will be made to a copy of the visitor object, not the visitor object
passed in. Therefore you may want the visitor to hold this state by
pointer or reference.
<p><a name="3">[3]</a>
The algorithm will not work correctly if any of the edge weights are equal to infinity since the infinite distance value is used to determine if a vertex has been discovered.
<p><a name="4">[4]</a>
Calls to the visitor events occur in the same order as <tt>dijkstra_shortest_paths</tt> (i.e. <i>discover_vertex(u)</i> will always be called after <i>examine_vertex(u)</i> for an undiscovered vertex <i>u</i>). However, the vertices of the graph given to <i>dijkstra_shortest_paths_no_color_map</i> will <b>not</b> necessarily be visited in the same order as <i>dijkstra_shortest_paths</i>.
<br>
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy; 2009</TD><TD>
Trustees of Indiana University</TD></TR></TABLE>
</BODY>
</HTML>
+11 -15
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: dijkstra_visitor</Title>
@@ -26,7 +22,7 @@ dijkstra_visitor&lt;EventVisitorList&gt;
</H1>
This class is an adapter that converts a list of <a
href="./EventVisitor.html">EventVisitor</a>'s (constructed using
href="./EventVisitor.html">EventVisitor</a>s (constructed using
<tt>std::pair</tt>) into a <a
href="./DijkstraVisitor.html">DijkstraVisitor</a>.
@@ -81,7 +77,7 @@ with <tt>std::pair</tt>.
This class implements all of the member functions required by <a
href="./DijkstraVisitor.html">DijkstraVisitor</a>. In each
function the appropriate event is dispatched to the <a
href="./EventVisitor.html">EventVisitor</a>'s in the EventVisitorList.
href="./EventVisitor.html">EventVisitor</a> in the EventVisitorList.
<h3>Non-Member Functions</h3>
@@ -115,12 +111,12 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+11 -15
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: distance_recorder</Title>
@@ -31,7 +27,7 @@ href="property_map.html">property map</a>) from some
source vertex during a graph search. When applied to edge <i>e =
(u,v)</i>, the distance of <i>v</i> is recorded to be one more than
the distance of <i>u</i>. The distance recorder is typically used with
the <tt>on_tree_edge</tt> or <tt>on_relax_edge</tt> events, and
the <tt>on_tree_edge</tt> or <tt>on_relax_edge</tt> events and
cannot be used with vertex events.
<p>
@@ -68,7 +64,7 @@ See the example for <a href="./bfs_visitor.html"><tt>bfs_visitor</tt></a>.
<TR><TD><TT>DistanceMap</TT></TD>
<TD>
A <a
href="../../property_map/WritablePropertyMap.html">WritablePropertyMap</a>,
href="../../property_map/doc/WritablePropertyMap.html">WritablePropertyMap</a>
where the key type and the value type are the vertex descriptor type
of the graph.
</TD>
@@ -166,12 +162,12 @@ and <a href="./property_writer.html"><tt>property_writer</tt></a>.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
+9 -13
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Edge List Class</Title>
@@ -211,12 +207,12 @@ Returns the target vertex of edge <TT>e</TT>.
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>,
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>,
Indiana University (<A
HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)<br>
<A HREF="../../../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="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>,
Indiana University (<A
HREF="mailto:lums@osl.iu.edu">lums@osl.iu.edu</A>)
</TD></TR></TABLE>
@@ -1,17 +1,13 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Silicon Graphics makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Edmunds-Karp Maximum Flow</Title>
<Title>Boost Graph Library: Edmonds-Karp Maximum Flow</Title>
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
ALINK="#ff0000">
<IMG SRC="../../../boost.png"
@@ -19,15 +15,15 @@
<BR Clear>
<H1><A NAME="sec:edmunds_karp_max_flow">
<TT>edmunds_karp_max_flow</TT>
<H1><A NAME="sec:edmonds_karp_max_flow">
<TT>edmonds_karp_max_flow</TT>
</H1>
<PRE>
<i>// named paramter version</i>
template &lt;class <a href="./Graph.html">Graph</a>, class P, class T, class R&gt;
typename detail::edge_capacity_value&lt;Graph, P, T, R&gt;::value_type
edmunds_karp_max_flow(Graph& g,
edmonds_karp_max_flow(Graph& g,
typename graph_traits&lt;Graph&gt;::vertex_descriptor src,
typename graph_traits&lt;Graph&gt;::vertex_descriptor sink,
const bgl_named_params&lt;P, T, R&gt;&amp; params = <i>all defaults</i>)
@@ -37,7 +33,7 @@ template &lt;class <a href="./Graph.html">Graph</a>,
class CapacityEdgeMap, class ResidualCapacityEdgeMap,
class ReverseEdgeMap, class ColorMap, class PredEdgeMap&gt;
typename property_traits&lt;CapacityEdgeMap&gt;::value_type
edmunds_karp_max_flow(Graph&amp; g,
edmonds_karp_max_flow(Graph&amp; g,
typename graph_traits&lt;Graph&gt;::vertex_descriptor src,
typename graph_traits&lt;Graph&gt;::vertex_descriptor sink,
CapacityEdgeMap cap, ResidualCapacityEdgeMap res, ReverseEdgeMap rev,
@@ -45,7 +41,7 @@ edmunds_karp_max_flow(Graph&amp; g,
</PRE>
<P>
The <tt>edmunds_karp_max_flow()</tt> function calculates the maximum flow
The <tt>edmonds_karp_max_flow()</tt> function calculates the maximum flow
of a network. See Section <a
href="./graph_theory_review.html#sec:network-flow-algorithms">Network
Flow Algorithms</a> for a description of maximum flow. The calculated
@@ -79,6 +75,8 @@ This algorithm provides a very simple and easy to implement solution to
the maximum flow problem. However, there are several reasons why this
algorithm is not as good as the <a
href="./push_relabel_max_flow.html"><tt>push_relabel_max_flow()</tt></a>
or the <a
href="./kolmogorov_max_flow.html"><tt>kolmogorov_max_flow()</tt></a>
algorithm.
<ul>
@@ -95,7 +93,7 @@ algorithm.
<H3>Where Defined</H3>
<P>
<a href="../../../boost/graph/edmunds_karp_max_flow.hpp"><TT>boost/graph/edmunds_karp_max_flow.hpp</TT></a>
<a href="../../../boost/graph/edmonds_karp_max_flow.hpp"><TT>boost/graph/edmonds_karp_max_flow.hpp</TT></a>
<P>
@@ -127,7 +125,7 @@ IN: <tt>capacity_map(CapacityEdgeMap cap)</tt>
<blockquote>
The edge capacity property map. The type must be a model of a
constant <a
href="../../property_map/LvaluePropertyMap.html">Lvalue Property Map</a>. The
href="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property Map</a>. The
key type of the map must be the graph's edge descriptor type.<br>
<b>Default:</b> <tt>get(edge_capacity, g)</tt>
</blockquote>
@@ -136,7 +134,7 @@ OUT: <tt>residual_capacity_map(ResidualCapacityEdgeMap res)</tt>
<blockquote>
This maps edges to their residual capacity. The type must be a model
of a mutable <a
href="../../property_map/LvaluePropertyMap.html">Lvalue Property
href="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property
Map</a>. The key type of the map must be the graph's edge descriptor
type.<br>
<b>Default:</b> <tt>get(edge_residual_capacity, g)</tt>
@@ -146,7 +144,7 @@ IN: <tt>reverse_edge_map(ReverseEdgeMap rev)</tt>
<blockquote>
An edge property map that maps every edge <i>(u,v)</i> in the graph
to the reverse edge <i>(v,u)</i>. The map must be a model of
constant <a href="../../property_map/LvaluePropertyMap.html">Lvalue
constant <a href="../../property_map/doc/LvaluePropertyMap.html">Lvalue
Property Map</a>. The key type of the map must be the graph's edge
descriptor type.<br>
<b>Default:</b> <tt>get(edge_reverse, g)</tt>
@@ -158,13 +156,13 @@ UTIL: <tt>color_map(ColorMap color)</tt>
breadth-first search stage. At the end of the algorithm, the white
vertices define the minimum cut set. The map must be a model of
mutable <a
href="../../property_map/LvaluePropertyMap.html">Lvalue Property Map</a>.
href="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property Map</a>.
The key type of the map should be the graph's vertex descriptor type, and
the value type must be a model of <a
href="./ColorValue.html">ColorValue</a>.<br>
<b>Default:</b> an <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
<tt>iterator_property_map</tt></a> created from a <tt>std::vector</tt>
of <tt>default_color_type</tt> of size <tt>num_vertices(g)</tt> and
using the <tt>i_map</tt> for the index map.
@@ -174,12 +172,12 @@ UTIL: <tt>predecessor_map(PredEdgeMap pred)</tt>
<blockquote>
Use by the algorithm to store augmenting paths. The map must be a
model of mutable <a
href="../../property_map/LvaluePropertyMap.html">Lvalue Property Map</a>.
href="../../property_map/doc/LvaluePropertyMap.html">Lvalue Property Map</a>.
The key type must be the graph's vertex descriptor type and the
value type must be the graph's edge descriptor type.<br>
<b>Default:</b> an <a
href="../../property_map/iterator_property_map.html">
href="../../property_map/doc/iterator_property_map.html">
<tt>iterator_property_map</tt></a> created from a <tt>std::vector</tt>
of edge descriptors of size <tt>num_vertices(g)</tt> and
using the <tt>i_map</tt> for the index map.
@@ -191,10 +189,14 @@ IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
<tt>[0, num_vertices(g))</tt>. This property map is only needed
if the default for the color or predecessor map is used.
The vertex index map must be a model of <a
href="../../property_map/ReadablePropertyMap.html">Readable Property
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
Map</a>. The key type of the map must be the graph's vertex
descriptor type.<br>
<b>Default:</b> <tt>get(vertex_index, g)</tt>
Note: if you use this default, make sure your graph has
an internal <tt>vertex_index</tt> property. For example,
<tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
not have an internal <tt>vertex_index</tt> property.
</blockquote>
@@ -207,28 +209,29 @@ some constant <i>U</i>.
<h3>Example</h3>
The program in <a
href="../example/edmunds-karp-eg.cpp"><tt>example/edmunds-karp-eg.cpp</tt></a>
href="../example/edmonds-karp-eg.cpp"><tt>example/edmonds-karp-eg.cpp</tt></a>
reads an example maximum flow problem (a graph with edge capacities)
from a file in the DIMACS format and computes the maximum flow.
<h3>See Also</h3>
<a href="./push_relabel_max_flow.html"><tt>push_relabel_max_flow()</tt></a>.
<a href="./push_relabel_max_flow.html"><tt>push_relabel_max_flow()</tt></a><br>
<a href="./kolmogorov_max_flow.html"><tt>kolmogorov_max_flow()</tt></a>.
<br>
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2000-2001</TD><TD>
<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
<TD nowrap>Copyright &copy; 2000-2001</TD><TD>
<A HREF="http://www.boost.org/users/people/jeremy_siek.html">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
</TD></TR></TABLE>
</BODY>
</HTML>
<!-- LocalWords: HTML Siek Edmunds BGCOLOR ffffff ee VLINK ALINK ff IMG SRC
<!-- LocalWords: HTML Siek Edmonds BGCOLOR ffffff ee VLINK ALINK ff IMG SRC
-->
<!-- LocalWords: gif ALT BR sec edmunds karp TT DIV CELLPADDING TR TD PRE lt
<!-- LocalWords: gif ALT BR sec edmonds karp TT DIV CELLPADDING TR TD PRE lt
-->
<!-- LocalWords: typename VertexListGraph CapacityEdgeMap ReverseEdgeMap gt
-->
+2 -2
View File
@@ -20,7 +20,7 @@
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/isomorphism.hpp>
//#include "isomorphism-v3.hpp"
#include <boost/property_map.hpp>
#include <boost/property_map/property_map.hpp>
#include <iostream>
#include <fstream>
#include <map>
@@ -102,5 +102,5 @@ void test_isomorphism()
int test_main(int, char* [])
{
test_isomorphism();
return EXIT_SUCCESS;
return boost::report_errors();
}
+43 -20
View File
@@ -1,13 +1,14 @@
<HTML>
<!--
-- Copyright (c) The Trustees of Indiana University
--
-- 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)
--
-- Authors: Douglas Gregor
-- Andrew Lumsdaine
Copyright (c) 2004, 2005 The Trustees of Indiana University
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)
Authors: Douglas Gregor
Jeremiah Willcock
Andrew Lumsdaine
-->
<Head>
<Title>Boost Graph Library: Erd&ouml;s-Renyi Generator</Title>
@@ -45,7 +46,10 @@ public:
erdos_renyi_iterator();
erdos_renyi_iterator(RandomGenerator&amp; gen, vertices_size_type n,
double probability = 0.0, bool allow_self_loops = false);
double fraction = 0.0, bool allow_self_loops = false);
erdos_renyi_iterator(RandomGenerator&amp; gen, vertices_size_type n,
edges_size_type m, bool allow_self_loops = false);
// Iterator operations
reference operator*() const;
pointer operator-&gt;() const;
@@ -56,21 +60,28 @@ public:
};
</PRE>
<p> This class template implements a generator for Erd&ouml;os-Renyi
<p> This class template implements a generator for Erd&ouml;s-Renyi
graphs, suitable for initializing an <a
href="adjacency_list.html"><tt>adjacency_list</tt></a> or other graph
structure with iterator-based initialization. An Erd&ouml;os-Renyi
structure with iterator-based initialization. An Erd&ouml;s-Renyi
graph <em>G = (n, p)</em> is a graph with <em>n</em> vertices
that. The probability of having an edge <em>(u, v)</em> in <em>G</em>
is <em>p</em> for any vertices <em>u</em> and <em>v</em>. Typically,
there are no self-loops, but the generator can optionally introduce
self-loops with probability <em>p</em>.</p>
self-loops with probability <em>p</em>. This generator will not
produce any parallel edges and will produce edges in sorted order (as
required by, e.g., the <a
href="compressed_sparse_row.html"><tt>compressed_sparse_row_graph</tt></a>).</p>
<p>Erd&ouml;s-Renyi graphs typically exhibit very little
structure. For this reason, they are rarely useful in modeling
real-world problems. However, they are often used when determining
the theoretical complexity of complex graph algorithms.</p>
<p>If you want the possibility of generating parallel edges and don't
care about sorted order, use the <a
href="erdos_renyi_generator.html"><tt>erdos_renyi_iterator</tt></a>.</p>
<h3>Where Defined</h3>
<a href="../../../boost/graph/erdos_renyi_generator.hpp"><tt>boost/graph/erdos_renyi_generator.hpp</tt></a>
@@ -85,14 +96,26 @@ Constructs a past-the-end iterator.
<pre>
erdos_renyi_iterator(RandomGenerator&amp; gen, vertices_size_type n,
double probability = 0.0, bool allow_self_loops =
false);
double fraction = 0.0, bool allow_self_loops = false);
</pre>
<blockquote>
Constructs an Erd&ouml;s-Renyi generator iterator that creates a
graph with <tt>n</tt> vertices and edges with probability
<tt>probability</tt>. Probabilities are drawn from the random number
generator <tt>gen</tt>. Self-loops are permitted only when
graph with <tt>n</tt> vertices and a given <tt>fraction</tt> of the
total number of edges that a simple graph may have.
<tt>probability</tt>. Random vertices and edges are selected using the
random number generator <tt>gen</tt>. Self-loops are permitted only when
<tt>allow_self_loops</tt> is <tt>true</tt>.
</blockquote>
<pre>
erdos_renyi_iterator(RandomGenerator&amp; gen, vertices_size_type n,
edges_size_type m, bool allow_self_loops = false);
</pre>
<blockquote>
Constructs an Erd&ouml;s-Renyi generator iterator that creates a
graph with <tt>n</tt> vertices and <tt>m</tt> edges.
<tt>probability</tt>. Random vertices and edges are selected using the
random number generator <tt>gen</tt>. Self-loops are permitted only when
<tt>allow_self_loops</tt> is <tt>true</tt>.
</blockquote>
@@ -119,9 +142,9 @@ int main()
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy 2005</TD><TD>
<A HREF="../../../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>,
<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>,
Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
</TD></TR></TABLE>
+5 -9
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek 2002
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. Jeremy Siek makes no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek 2002
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: Exceptions</Title>
+6 -10
View File
@@ -1,14 +1,10 @@
<HTML>
<!--
-- Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
--
-- Permission to use, copy, modify, distribute and sell this software
-- and its documentation for any purpose is hereby granted without fee,
-- provided that the above copyright notice appears in all copies and
-- that both that copyright notice and this permission notice appear
-- in supporting documentation. We make no
-- representations about the suitability of this software for any
-- purpose. It is provided "as is" without express or implied warranty.
Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<Head>
<Title>Boost Graph Library: FAQ</Title>
@@ -77,7 +73,7 @@ disadvantage of an adaptor class (compared to overloaded functions) is
that one has to physically wrap and unwrap the objects as they go
into/out of BGL algorithms. So the overloaded function route is more
convenient. Granted, this is not a huge difference, but since there
weren't other strong reasons, it was enough for us to choose member
weren't other strong reasons, it was enough for us to choose free
functions.
</p>
+5
View File
@@ -1,4 +1,9 @@
# -*- makefile -*-
# Copyright (c) 2002 Trustees of Indiana University
#
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
.SUFFIXES: .fig .gif .tif .jpeg
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 49 KiB

+412
View File
@@ -0,0 +1,412 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="350"
height="250"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docname="grid_graph_indexed.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/hansenm/Projects/boost-trunk/libs/graph/doc/figs/grid_graph_unwrapped.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4">
<marker
inkscape:stockid="Arrow2Sstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Sstart"
style="overflow:visible">
<path
id="path3938"
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(0.3) translate(-2.3,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Send"
orient="auto"
refY="0"
refX="0"
id="Arrow2Send"
style="overflow:visible">
<path
id="path3324"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z"
transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mend"
style="overflow:visible">
<path
id="path3318"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z"
transform="scale(-0.6,-0.6)" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lend"
style="overflow:visible">
<path
id="path3312"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z"
transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path3306"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend"
style="overflow:visible">
<path
id="path3300"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend"
style="overflow:visible">
<path
id="path3294"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
</marker>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="2"
inkscape:cx="79.05402"
inkscape:cy="102.2962"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="1150"
inkscape:window-x="0"
inkscape:window-y="25" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Vertices"
inkscape:groupmode="layer"
id="layer1"
sodipodi:insensitive="true">
<g
id="g3150">
<g
transform="translate(7.353668,21.661333)"
id="g3204">
<path
d="M 63.63961,32.567215 A 16.920055,14.89975 0 1 1 29.7995,32.567215 A 16.920055,14.89975 0 1 1 63.63961,32.567215 z"
sodipodi:ry="14.89975"
sodipodi:rx="16.920055"
sodipodi:cy="32.567215"
sodipodi:cx="46.719555"
id="path3199"
style="opacity:0.5;fill:#808080;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:type="arc"
transform="translate(2.8535534,2.5428932)" />
<g
id="g3168">
<path
style="fill:#00ccff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
d="M 63.63961,33.466965 C 63.63961,25.242303 56.059425,18.567215 46.719555,18.567215 C 37.379684,18.567215 29.7995,25.242303 29.7995,33.466965 L 63.63961,33.466965 z"
id="path3158"
sodipodi:nodetypes="cscc" />
<path
sodipodi:nodetypes="cscc"
id="path2385"
d="M 63.63961,32.567215 C 63.63961,40.791877 56.059425,47.466965 46.719555,47.466965 C 37.379684,47.466965 29.7995,40.791877 29.7995,32.567215 L 63.63961,32.567215 z"
style="fill:#00aad4;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" />
<path
d="M 63.63961,32.567215 A 16.920055,14.89975 0 1 1 29.7995,32.567215 A 16.920055,14.89975 0 1 1 63.63961,32.567215 z"
sodipodi:ry="14.89975"
sodipodi:rx="16.920055"
sodipodi:cy="32.567215"
sodipodi:cx="46.719555"
id="path2383"
style="opacity:1;fill:none;fill-opacity:1;stroke:#004455;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:type="arc" />
</g>
</g>
<text
id="text3160"
y="57.511555"
x="70.285149"
style="font-size:14px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
xml:space="preserve"><tspan
y="57.511555"
x="70.285149"
id="tspan3162"
sodipodi:role="line" /></text>
<use
height="200"
width="300"
transform="translate(120,7.6293945e-6)"
id="use3211"
xlink:href="#g3204"
y="0"
x="0" />
<use
x="0"
y="0"
xlink:href="#g3204"
id="use3213"
transform="translate(240,7.6293945e-6)"
width="300"
height="200" />
<use
x="0"
y="0"
xlink:href="#g3204"
id="use3217"
transform="translate(120,70.000008)"
width="300"
height="200" />
<use
height="200"
width="300"
transform="translate(240,70.000008)"
id="use3219"
xlink:href="#g3204"
y="0"
x="0" />
<use
height="200"
width="300"
transform="translate(0,70.000008)"
id="use3281"
xlink:href="#g3204"
y="0"
x="0" />
<use
height="200"
width="300"
transform="translate(120,140.00001)"
id="use3253"
xlink:href="#g3204"
y="0"
x="0" />
<use
x="0"
y="0"
xlink:href="#g3204"
id="use3255"
transform="translate(240,140.00001)"
width="300"
height="200" />
<use
height="200"
width="300"
transform="translate(0,140.00001)"
id="use3283"
xlink:href="#g3204"
y="0"
x="0" />
<path
id="path3286"
d="M 80.745313,54.999995 L 145.43911,54.999995"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Sstart);marker-end:url(#Arrow2Send);stroke-opacity:1" />
<use
style="fill:none"
height="200"
width="300"
transform="matrix(0,-0.4518081,1,0,4.601123e-6,141.28126)"
id="use7505"
xlink:href="#path3286"
y="0"
x="0" />
<use
style="fill:none"
height="200"
width="300"
transform="translate(118,0)"
id="use7582"
xlink:href="#path3286"
y="0"
x="0" />
<use
style="fill:none"
x="0"
y="0"
xlink:href="#path3286"
id="use7594"
transform="translate(118,70.000008)"
width="300"
height="200" />
<use
style="fill:none"
height="200"
width="300"
transform="translate(118,140.00001)"
id="use7606"
xlink:href="#path3286"
y="0"
x="0" />
<use
style="fill:none"
x="0"
y="0"
xlink:href="#path3286"
id="use7618"
transform="translate(-2,140.00001)"
width="300"
height="200" />
<use
style="fill:none"
height="200"
width="300"
transform="translate(-2,70.000008)"
id="use7630"
xlink:href="#path3286"
y="0"
x="0" />
<use
style="fill:none"
height="250"
width="350"
transform="translate(120,0)"
id="use4719"
xlink:href="#use7505"
y="0"
x="0" />
<use
style="fill:none"
x="0"
y="0"
xlink:href="#use7505"
id="use4721"
transform="translate(240,0)"
width="350"
height="250" />
<use
style="fill:none"
height="250"
width="350"
transform="translate(240,70)"
id="use4723"
xlink:href="#use7505"
y="0"
x="0" />
<use
style="fill:none"
x="0"
y="0"
xlink:href="#use7505"
id="use4725"
transform="translate(120,70)"
width="350"
height="250" />
<use
style="fill:none"
height="250"
width="350"
transform="translate(0,70)"
id="use4727"
xlink:href="#use7505"
y="0"
x="0" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Wrapped Edges"
sodipodi:insensitive="true">
<g
id="g3180">
<path
sodipodi:nodetypes="cssc"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Sstart);marker-end:url(#Arrow2Send);stroke-opacity:1"
d="M 62.24531,29.999995 C 65.123489,26.146153 67.230816,19.819975 75.68005,17.029619 C 121.30433,1.9622158 235.21392,2.5182714 277.71508,19.982113 C 284.41084,22.733419 285.33426,25.904372 287.93911,29.499995"
id="path4730" />
<use
height="250"
width="350"
transform="matrix(1,0,0,-1,0,252.61622)"
id="use4733"
xlink:href="#path4730"
y="0"
x="0" />
<path
id="path4735"
d="M 27.76794,196.41186 C 23.91409,194.17719 17.58792,192.54103 14.79756,185.9809 C -0.26984,150.55741 0.28621,94.11602 17.75005,61.117382 C 20.50136,55.918677 23.67231,55.201718 27.26794,53.179267"
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow2Sstart);marker-end:url(#Arrow2Send);stroke-opacity:1"
sodipodi:nodetypes="cssc" />
<use
height="250"
width="350"
transform="matrix(-1,0,0,1,348.4957,0)"
id="use4737"
xlink:href="#path4735"
y="0"
x="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

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