Boost logo

Boost Users :

From: Dmitry Bufistov (dmitry_at_[hidden])
Date: 2006-02-06 09:46:55


>
>
>Dmitry Bufistov <dmitry_at_[hidden]> writes:
>
>
>
>>Hi,
>>A huge disappointment again came to me today. I used
>>boost::adjacency<boost::directedS> class for representation of simple
>>Petri net. I was trying to define the following function
>>//////////////////////////////////////////
>>bool if_enabled(transition_descriptor_t tr, graph_t net) {
>> assert((net[tr].m_node_type == TRANSITION) &&
>>"if_enabled called with non transition node");
>>
>> BGL_FORALL_INEDGES_T(tr, ed, net, graph_t)
>> {
>> if (net[boost::source(ed, net)].m_tokens_number <
>>net[ed].m_weight) return false;
>> }
>> return true;
>> }
>>
>>//////////////////////////////////////////////////////////
>>But I failed because of lack of boost::in_edges() function
>>specialization for type that I've chosen.
>>Am I doing something wrong?
>>Any ideas how to implement my function in resonable way would be greatly
>>appreciated.
>>Note: all works fine with "adjacency_list<vecS, vecS, bidirecrionalS>"
>>
>>
>
>By /definition/, BidirectionalGraph is a graph where you can enumerate
>the incoming edges for any node. Unless you specify bidirectionalS,
>an adjacency list won't be a BidirectionalGraph, and you can't use
>in_edges. So everything is working just as I would expect it to.
>
>
>
But what about boost::adjacency_matrix<boost::directedS> ?
Is there any way to iterate over all incoming edges?
Where I can read your answer before I recieve e-mail?
Time is very important )
Thank you,
--dima


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net