$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r52940 - trunk/libs/graph/doc
From: jewillco_at_[hidden]
Date: 2009-05-12 13:20:56
Author: jewillco
Date: 2009-05-12 13:20:55 EDT (Tue, 12 May 2009)
New Revision: 52940
URL: http://svn.boost.org/trac/boost/changeset/52940
Log:
Added docs for in-place construction
Text files modified: 
   trunk/libs/graph/doc/compressed_sparse_row.html |  3803 --------------------------------------- 
   1 files changed, 39 insertions(+), 3764 deletions(-)
Modified: trunk/libs/graph/doc/compressed_sparse_row.html
==============================================================================
--- trunk/libs/graph/doc/compressed_sparse_row.html	(original)
+++ trunk/libs/graph/doc/compressed_sparse_row.html	2009-05-12 13:20:55 EDT (Tue, 12 May 2009)
@@ -129,6 +129,21 @@
                               edges_size_type numedges = 0,
                               const GraphProperty& prop = GraphProperty());
 
+  template<typename InputIterator>
+  compressed_sparse_row_graph(construct_inplace_from_sources_and_targets_t,
+                              std::vector<vertex_descriptor>& sources,
+                              std::vector<vertex_descriptor>& targets,
+                              vertices_size_type numverts,
+                              const GraphProperty& prop = GraphProperty());
+
+  template<typename InputIterator>
+  compressed_sparse_row_graph(construct_inplace_from_sources_and_targets_t,
+                              std::vector<vertex_descriptor>& sources,
+                              std::vector<vertex_descriptor>& targets,
+                              std::vector<EdgeProperty>& edge_props,
+                              vertices_size_type numverts,
+                              const GraphProperty& prop = GraphProperty());
+
   template<typename Graph, typename VertexIndexMap>
   <a href="#graph-const">compressed_sparse_row_graph</a>(const Graph& g, const VertexIndexMap& vi,
                               vertices_size_type numverts,
@@ -462,3784 +477,44 @@
 
     <hr></hr>
 
-    <pre><a name="edge-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
+    <pre><a name="edge-inplace-const"></a>
   template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
+  compressed_sparse_row_graph(construct_inplace_from_sources_and_targets_t,
+                              std::vector<vertex_descriptor>& sources,
+                              std::vector<vertex_descriptor>& targets,
                               vertices_size_type numverts,
-                              edges_size_type numedges = 0,
                               const GraphProperty& 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 edge range constructor, 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 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-const"></a>
+    <pre><a name="edge-inplace-prop-const"></a>
   template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
+  compressed_sparse_row_graph(construct_inplace_from_sources_and_targets_t,
+                              std::vector<vertex_descriptor>& sources,
+                              std::vector<vertex_descriptor>& targets,
+                              std::vector<EdgeProperty>& edge_props,
                               vertices_size_type numverts,
-                              edges_size_type numedges = 0,
                               const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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-const"></a>
-  template<typename InputIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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> 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 > 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-prop-const"></a>
-  template<typename InputIterator, typename EdgePropertyIterator>
-  compressed_sparse_row_graph(InputIterator edge_begin, InputIterator edge_end,
-                              EdgePropertyIterator ep_iter,
-                              vertices_size_type numverts,
-                              edges_size_type numedges = 0,
-                              const GraphProperty& 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 edge range constructor, 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 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>