Hello !!! > I am working with several people on software for doing matroid theory. > All hail Caesar !! Hail !! Hail !!
> Now how do I solve this problem? There seem to be several options: > > 1) Sacrifice compatibility with Sage's Set category, meaning less > user-friendliness > Is the "Matroid user" expected to have to deal with your new version of sets, or is it just needed for internal use ? The more I think about it, the more I begin to think some code duplication is more than handy sometimes... So if there's some specific feature needed somewhere in the code, I think it makes sense to write a custom copy of something which is already available to improve it in a specific way. Otherwise we en dup generalilzing simple constructions many many times and everybody ends up losing speed with way too abstract constructions. For example the Subsets* class usually deal with a dictionary associating the element's value to its index. That's perfectly useless when working on integers, both in speed and in memory. > 2) Write fast code, and create a wrapper in Sage. The extra layer will add > to the complexity of the code, and questions by the end user along the lines > of "list all bases of this matroid" would still be slow, even if the > internal implementation is fast, due to conversions. > -1 : At this level it may even be nice to try to inline the functions you are defining on sets, so if multiple calls can be avoided... > I hope there is a third option. Would it be possible to subclass > Set_object_enumerated, but NOT call the parent's initialization function? > I guess the sage-combinat team will appear soon on this thread :-) > Kind regards, > Do you have anyplace where we could follow your work on matroids ? Is there already a "matroid" section on the Trac server ? It's great to see something moving in that direction ! :-) Nathann > -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org