BGL: Brandes betweenness and exterior properties
Hello,
I am working with brandes_betweenness_centrality in the BGL and am
having difficulty correctly constructing the syntax for retrieving an
EdgeCentralityMap using exterior properties. I can successfully
invoke the function using bundled properties:
struct EdgeAttrs {
unsigned int index;
double weight;
};
template<class GraphType>
boost::python::list betweenness_centrality(GraphType& g)
{
typedef typename GraphType::edge_descriptor Edge;
std::vector<float> centmap(num_vertices(g));
std::vector<float> edgecent(num_edges(g));
brandes_betweenness_centrality (g,
centrality_map(make_iterator_property_map(centmap.begin(),
boost::get(vertex_index, g), float()))
.edge_centrality_map(make_iterator_property_map(edgecent.begin(),
boost::get(&EdgeAttrs::index, g),float()))
.weight_map(boost::get(&EdgeAttrs::weight, g)));
...
Among my attempts, here's a typical one that won't compile:
typedef typename std::map
On Jul 6, 2005, at 12:23 PM, Todd A. Gibson wrote:
Among my attempts, here's a typical one that won't compile:
typedef typename std::map
EdgeMap; EdgeMap myedges; //... boost::associative_property_map< EdgeMap > edge_assoc_map(myedges); brandes_betweenness_centrality(g, ... .edge_centrality_map(edge_assoc_map) ...) Can someone enlighten me?
I can try :)
The code above fails because edge descriptors can't be ordered via <. A
future version of the BGL might support this operation, but for now...
External edge property maps are typically constructed using an
edge_index_t property. So, if you add property
participants (2)
-
Douglas Gregor
-
Todd A. Gibson