Nathann Cohen wrote: > Hello !!! > > I was just wondering about the kind of algorithms we want in Sage. For > example, if someone in my lab finds out a brand new algorithm to compute > a brand-new invariant for a pretty restrictive ( but brand-new, too ) > class of graphs, do we want to have it included in Sage ?
Yes! It would probably take, say, 300K of code to make Sage the expert in what you need it to do? That's a no-brainer---do it! In fact, we also encourage people to submit books they are writing to be included in Sage, so that we have an entire book's worth of code as doctests. In the next few months, I am going to submit a file of functions to calculate the minimum rank of a graph. Probably less than 100 people in the world work on this, but once Sage has it, Sage will be the defacto software for working with minimum rank. That will be very, very nice. > My answer, for the moment, is no... I was thinking we only wanted to see > in Sage things that may be useful to everybody, and let people write > their own functions, but... Suppose someone, "John", submits his special function to Sage. It takes up about 10K worth of space. Well, now John's code is guaranteed to work with future versions of Sage (his doctests *must* pass before a new release), at least as long as someone is willing to tweak it to port it to new versions. Also, now John knows how to submit things and knows how to review patches. So next time he needs something done, he's more likely to do it himself and submit a patch. We *need* developers and reviewers. You know that. I think 10K of code that maybe only he uses for the time being is well worth getting another person capable of developing and reviewing patches. Besides, you said it was a lab? It sounds like the code is valuable to more than just one person. That said, I would also pay attention to what Minh said, and organize things. That's the only reason the minimum rank code isn't submitted to Sage already---I haven't sat down and organized it as much as it should be. > The thing is that I am tempted ( for the Graph class ) to write many > functions I find useful, but these functions would very quickly crowd > the list of Graph methods... For example I am interested in computing > orientations of graphs, and there may be many functions needed... For > example, how could I include 10 or 20 functions dealing with one > particular problem of graphs without quickly transforming this already > quite crowded class in something impossible to browse ? That's a question of organization. Sage is largely developed by people "scratching their own itch", making the software the best possible for the work they are doing. Thanks again for all of the work you are doing. Your flurry of patches is part of the reason we are having a Review day next Tuesday! Jason -- Jason Grout --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---