Hi Bill (Hart),
The following is a longterm thought that somehow didn't occur
to me until just now. SAGE will soon include FLINT,
which will have a polynomial arithmetic routine that in some cases
will be "hundreds of times faster" than the native integer polynomial
arithmetic in PARI. However, SAGE's algebraic number theory functionality
fundamentally depends on PARI, i.e., the
speed of PARI algorithms depend on the speed of PARI arithmetic,
and, as another example, they depend on the
speed of PARI's quadratic sieve integer factorization routine.
Since SAGE uses so much of PARI, one way in which FLINT (and GMP-ECM, etc.)
could directly and massively impact the speed of SAGE would
be to make a significantly modified version of PARI that depends
on SAGE (i.e., anything in SAGE would be fair game for this "fork"
of PARI to depend on). Of course, we would systematically merge
our changes with new releases of PARI. But it would make absolutely
no sense in general to even suggest that PARI accept our changes upstream,
since they have long had a clearly stated design goal of not depending on
other software (beyond GMP). (Which is why I once could easily compile
gp for my Zaurus, which was fun.)
If we were to purse this strategy, the version of PARI that comes with
SAGE, i.e., the one you get when you type "sage -gp", would seem
just like the regular gp at first glance, but might actually be
*vastly* faster for certain operations. The same remarks could apply
to numerical double precision polynomial root finding (where, e.g.,
GSL is vastly faster than PARI), and eventually to linear algebra,
Hermite normal form, etc., where PARI is quite bad. Of course,
at some point one must draw the line and put work directly into SAGE
instead.
As a test case, we could consider linking PARI to your sieve for
integer factorization for a certain range of numbers. I.e., turn
of PARI's quadratic sieve and use yours instead. Suddenly PARI
can factor certain numbers much more quickly, but otherwise appears
identical to users. If nothing else, this will give people a
compelling reason to consider using SAGE (just for its "souped up"
version of PARI).
The same remarks as above can apply to some of the other programs
included with SAGE, e.g., GAP.
In summary, a number of open source
programs (e.g., PARI) cannot move forward in certain ways because
of their basic design constraints include a very very strong
** not invented here syndrome. **
With some concerted work, at some point in time (now
is not that time), it might be reasonably easy to make it so
several of the programs that come with SAGE are significantly
faster in certain basic ways than they are by default, or are
*EVERY* likely to be given their current trajectories.
Thoughts?
-- William
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
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/
-~----------~----~----~----~------~----~------~--~---