Opened 11 years ago

Last modified 7 years ago

#1326 reopened Bugs

Unable to check graph isomorphism using LEDA adapter

Reported by: iouri.smirnov@… Owned by: Jeremiah Willcock
Milestone: To Be Determined Component: graph
Version: Boost Development Trunk Severity: Problem
Keywords: LEDA Cc: ich@…


I tried to use isomorphism() algorithm with LEDA graphs and encountered several compilation issues:

  1. "leda::" namespace is not used in LEDA 4.3.1, therefore declaration "leda::GRAPH<vtype,etype>" might be wrong.
  1. EdgeListGraph? concept must be supported by a graph in order to use it by the isomorphism() algorithm. For me it's unclear why this interface is not implemented in LEDA adapter. Generally, it is possible to iterate through edges in LEDA graphs. Moreover, EdgeListGraph? interface implementation may look very similar to VertexListGraph? one.
  1. All LEDA adapter iterators publicly inherit from iterator_facade< Derived, Value, CategoryOrTraversal?, Reference, Difference >

but const pointers to Value are incorrectly passed as the last argument (i.e. Difference) while ptrdiff_t is expected. It causes wrong instantiation of count() and count_if() algorithms used by isomorphism() one.

I would like to present my fixes of these problems in LEDA adapter for review. Thanks!

Attachments (1)

leda_graph.hpp (19.0 KB) - added by iouri.smirnov@… 11 years ago.
Patched LEDA graph adapter

Download all attachments as: .zip

Change History (5)

Changed 11 years ago by iouri.smirnov@…

Attachment: leda_graph.hpp added

Patched LEDA graph adapter

comment:1 Changed 10 years ago by Jeremiah Willcock

Milestone: To Be DeterminedBoost 1.40.0
Owner: changed from Douglas Gregor to Jeremiah Willcock
Status: newassigned
Version: Boost 1.34.1Boost Development Trunk

I think your patch would be useful, but it needs to be updated to be against the new version of the LEDA adapter. Could you please update it?

comment:2 Changed 9 years ago by Jeremiah Willcock

Milestone: Boost 1.40.0To Be Determined

comment:3 Changed 9 years ago by Jeremiah Willcock

Resolution: wontfix
Status: assignedclosed

I am closing all of the LEDA-related bugs unless someone else is willing to fix them.

comment:4 Changed 7 years ago by Jens Müller <ich@…>

Cc: ich@… added
Resolution: wontfix
Status: closedreopened

ad 1: well, LEDA 6.3 uses the LEDA namespace. I guess we should stick to the current version.

ad 3: I also encountered the wrong template parameter to iterator_facade - I will submit the patch soon.

ad 2: leda_graph.hpp now contains an edges(g) function. I will add a concept check for EdgeListGraph? to the test case.

Note: See TracTickets for help on using tickets.