Opened 15 years ago

Last modified 11 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@…

Description

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@… 15 years ago.
Patched LEDA graph adapter

Download all attachments as: .zip

Change History (5)

by iouri.smirnov@…, 15 years ago

Attachment: leda_graph.hpp added

Patched LEDA graph adapter

comment:1 by Jeremiah Willcock, 13 years ago

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 by Jeremiah Willcock, 13 years ago

Milestone: Boost 1.40.0To Be Determined

comment:3 by Jeremiah Willcock, 13 years ago

Resolution: wontfix
Status: assignedclosed

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

comment:4 by Jens Müller <ich@…>, 11 years ago

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.