Boost logo

Boost :

Subject: Re: [boost] [gsoc] Interest in BGL v2?
From: Jeremiah Willcock (jewillco_at_[hidden])
Date: 2011-04-01 12:31:06


On Fri, 1 Apr 2011, Andrew Sutton wrote:

>>> The edge function is replaced by
>>> get_edge, with adjacency matrices (eventually) supporting m(u, v).
>>
>> Not sure what you mean here - just a rename?
>
> More or less. It also allows us to syntactically differentiate
> adjacency matrices from other graph models, which means you can write
> a type trait for it. is_adjacency_matrix is (will be) true when m(u,
> v) is a valid expression for the types of m, u, and v. This further
> means that we can use enable_if to select algorithms based on that
> property.
>
>>> AdjacencyGraph is probably going to go away since adjacency is just an
>>> abstraction over incidence.
>>
>> I still have to look up the difference between adjacency list and incidence list, every time; not sure why those always sound like the same thing.
>>
>> But you're talking about AdjacencyGraph - yeah, I never saw the point of iterating over adjacent vertices instead of the edges that lead there.
>
> An IncidenceGraph gives you out_edges(g). An AdjacencyGraph gives you
> adjacenct_vertices(g). This function is almost universally (within the
> BGL) implemented using an iterator adaptor over an out edge iterator.
> Our view is that adjacency is exactly that: an adapted view of
> incidence.

I will make one correction on that -- the compressed_sparse_row_graph has
a custom implementation of adjacent_vertices() that is much simpler than
the adaptor approach. I believe grid_graph might have something similar.

-- Jeremiah Willcock


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk