#18564: Boost Edge Connectivity
-------------------------------------+-------------------------------------
Reporter: borassi | Owner: borassi
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-6.8
Component: graph theory | Resolution:
Keywords: Boost, | Merged in:
connectivity | Reviewers:
Authors: Michele Borassi | Work issues:
Report Upstream: N/A | Commit:
Branch: | 5d15475d4591b889a057ae958b9ad095fa48a8e3
u/borassi/boost_edge_connectivity | Stopgaps:
Dependencies: |
-------------------------------------+-------------------------------------
Changes (by borassi):
* status: needs_work => needs_review
Comment:
Helloooooo!
I have corrected all the issues raised in previous messages. In
particular:
* I have sent an email to the Boost mailing list with the edge
connectivity bug (at the moment it is waiting for moderation, I will link
it asap);
* I have removed trailing whitespaces;
* I have added a doctest for directed Boost connectivity;
* I have used Nathann's code from public/18564_merged.
Only issue that remains open: avoiding the huge copy-paste. Unfortunately,
also structs and templates do not support fused types ![1]. As far as I
understood, if we do not want to write C++ code, the only solution is to
write a function for each task and for each graph type, then to create a
"generic" function that inputs a fused type containing all Boost graphs
(for instance, a function `num_vertices(BoostVecDiGraph)`, a function
`num_vertices(BoostVecGraph)`, and a function
`num_vertices(BoostFusedGraph)` wrapping the other two). With the number
of vertices, this is not a big issue, but with `add_edge` it might be,
because we also need variable `vertices` (which translates Sagemath
vertices into Boost vertices), and we cannot use a struct (it is not
supported). This might result in a huge mess, which increases even more if
we have to use constructs for the specific algorithm we are "stealing"
from Boost. Is it really worth it, if in some time Cython might start
supporting fused types in templates?
![1] !https://groups.google.com/forum/#!topic/cython-users/qQpMo3hGQqI
--
Ticket URL: <http://trac.sagemath.org/ticket/18564#comment:40>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.