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

Reply via email to