On Sep 15, 2007, at 3:30 AM, William Stein wrote:
> > On 9/14/07, Bill Hart <[EMAIL PROTECTED]> wrote: >> In actual fact, it should be possible for us to write efficient >> conversion routines in C for going from a FLINT polynomial object to >> an NTL polynomial object and vice versa (at the very least), so a >> partial transition to NTL is both possible and definitely >> advisable if >> SAGE is to safely transition to FLINT. > > In my opinion you make doing the above your absolutely top priority > before everything else. I'm not sure, but I suspect it won't be > terribly difficult for you -- in fact, it will probably be easy -- > but it > would probably be very difficult for me. If you create such > conversion functions, then as you mention below it will be possible > to base ZZ[x] implementation in SAGE on FLINT very soon, and > just resort to NTL for all the other operations, then as you implement > new functionality we just replace 2 or 3 lines of Cython with your > new faster function, and the rest of SAGE remains unchanged. I agree with William S, this is the most important thing to do. But maybe consider doing it the other way around: continue to use NTL as the base implementation in SAGE for a while, and make SAGE convert objects to FLINT objects temporarily for arithmetic, if the objects are large enough to make it worthwhile. My main concern is that using fmpz_poly will kill the machine for certain kinds of sparse polynomials. For example if you create the polynomial x^1000000 + 2^1000000, then NTL is perfectly fine with that, but fmpz_poly will try to allocate a million coefficients with a million bits each. Boom. david --~--~---------~--~----~------------~-------~--~----~ 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/ -~----------~----~----~----~------~----~------~--~---