This doesn't exactly answer your question, but I think it would be useful (or at least interesting) if setting some global flag would cause Sage to report which external (or internal 3rd party) packages were used in reaching a result. But perhaps that is unrealistic since a long computation might use lots of different ingredients, and seeing list of them at the end would not tell you who had done which bits.
John On 01/11/2007, Martin Albrecht <[EMAIL PROTECTED]> wrote: > > Hi there, > > I gave my talk to the PhD seminar here at Royal Holloway today and I stressed > the fact that Sage is a unified interface to many math packages quite a lot. > This provoked the follow feature request/suggestion I was quick to turn down. > However, this should forward to all Sage developers to decide: > > Usually, if we choose an implementation for a particular functionality, we try > to make sure to always pick the best implementation available. However, this > choice only applies to those systems we ship (singular, gap, pari ...) and > not to the systems installed on a user's computer. > > As for many computations e.g. Magma is the fastest one person in the audience > suggested to use Magma by default for those computations if it is available > on a user's computer. > > E.g. you do: > > def f(A): > if magma.is_installed(): > return magma(A).f() > else: > return f_foobar(A) > > I turned this down, because this would violate the principle that everything > should be laid open for checking,should be free and self contained. > > The other side replied that this way Sage would be guaranteed (up to > NotImplementedError) to always use the best implementation available on a > user's computer. Also, the user might not know which implementation is the > fastest but we know (e.g. we have an idea when Magma's F4 is very good) so > he/she might not know how to choose if Magma is only an option among many. > > So from a user's perspective this might make sense. A possible compromise > would be a global flag similar to the proof flag to toggle the use of > installed non-free systems, e.g.: > > def f(A): > if magma in enabled_non_free_systems and magma.is_installed(): > return magma(A).f() > else: > return f_foobar(A) > > Thoughts? > Martin > > -- > name: Martin Albrecht > _pgp: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99 > _www: http://www.informatik.uni-bremen.de/~malb > _jab: [EMAIL PROTECTED] > > > > > -- John Cremona --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---