Boost logo

Boost :

From: David J. Pearce (djp1_at_[hidden])
Date: 2003-10-28 09:31:13


Hello,

I think I've found a bug in the transitive_closure algorithm and I'm
wondering if people agree it is a bug and/or whether it is already known.

I've provided an error case below.

Cheers,

David J. Pearce

--- BEGIN ---

#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/depth_first_search.hpp>
#include <boost/graph/transitive_closure.hpp>

using namespace boost;
typedef adjacency_list<> graph_t;

int main(int argc, char *argv[]) {
   graph_t g(5),g_TC;

   add_edge(0,2,g);
   add_edge(1,0,g);
   add_edge(1,2,g);
   add_edge(1,4,g);
   add_edge(3,0,g);
   add_edge(3,2,g);
   add_edge(4,2,g);
   add_edge(4,3,g);

   transitive_closure(g,g_TC);

   cout << "original graph: 0->2, 1->0, 1->2, 1->4, 3->0, 3->2, 4->2,
4->3" << endl;
   cout << "transitive closure: ";
   graph_t::edge_iterator i,iend;
   for(tie(i,iend) = edges(g_TC);i!=iend;++i) {
     cout << source(*i,g_TC) << "->" << target(*i,g_TC) << " ";
   }
   cout << endl;
}


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