On Wed, May 13, 2009 at 1:38 PM, Andrew Sutton <andrew.n.sutton@gmail.com> wrote:

I'm not sure I understand your response. I was being sloppy and using edge and edge descriptor interchangeably (since there is no separate concept of an edge).

If the returned edge_descriptor (by out_edges) must have v at its source, then there must be at least two edge descriptors per undirected edge. Currently our graph uses a pointer to an edge object as an edge descriptor. Getting the "source" using such an edge descriptor can't always return v since it has no way of knowing where the edge descriptor came from. I can change the edge descriptor to be a pair of vertices, which would solve the problem, but don't want to if not needed. Thanks.

--DanielThe latter implies that undirected graphs have to have two copies of each edge, one pointed each direction.

Which is correct? The former, I hope :-) Thanks.

Undirected graphs store only one set of edges. The implementation of the just makes it seem like two different copies :)

I'm not sure I understand your response. I was being sloppy and using edge and edge descriptor interchangeably (since there is no separate concept of an edge).

If the returned edge_descriptor (by out_edges) must have v at its source, then there must be at least two edge descriptors per undirected edge. Currently our graph uses a pointer to an edge object as an edge descriptor. Getting the "source" using such an edge descriptor can't always return v since it has no way of knowing where the edge descriptor came from. I can change the edge descriptor to be a pair of vertices, which would solve the problem, but don't want to if not needed. Thanks.