On Monday 31 March 2008 07:38:48 pm William Stein wrote:
> On Mon, Mar 31, 2008 at 4:27 PM, Mike Hansen <[EMAIL PROTECTED]> wrote:
> >  Hi Roman,
> >
> >  It seems that for characteristic 0, Maxima is quite a bit faster than
> >  Singular, but there's some overhead in talking to Maxima over the
> >  pexpect interface.  In any case, it is still _way_ slower than what we
> >  need.  For example, Maxima takes around 10 seconds to do the bivariate
> >  gcd of degree 100 listed here (
> >  http://magma.maths.usyd.edu.au/users/allan/gcdcomp.html ).  Magma on
> >  the other hand takes 0.06 seconds.
>
> Even with the overhead Maxima is totally and completely unacceptable.
> To take Joel Mohler's example of
>
> t=-p10^170*X1^10*X2^10+p10^130*X1^10*X2^5+p10^130*X1^5*X2^10-p10^90*X1^5*X2
>^5+p10^80*X1^5*X2^5-p10^40*X1^5-p10^40*X2^5+1
>
> I just tried this in Maxima, and it's been sitting there for about
> *FIFTEEN MINUTES*:

I'm amazed maxima is so bad at that example -- it's really about as easy as it 
gets actually (there are 3 factors, one does not contain X1 and one does not 
contain X2 -- you really don't have to factor at all, just gcd a couple of 
times; then each of these 3 factors split again as a difference of 5th 
powers).

I've been working very hard at this factoring for the last little bit as it's 
really caught my imagination.  There's a bivariate factorization scheme by 
Gao using differential equations which seems like it might be a really good 
tool.  The simple application of specializing to a prime to reduce the number 
of variable results in humongous coefficients and leads to a very slow 
univariate factoring problem.  It also has other technical difficulties like 
spurious factors which are hard to resolve quickly.

I think there are 2 parts left to solving the factoring riddle for ZZ (and 
possibly other bases, but I've been focusing on ZZ):
1)  Fast basic arithmetic with a polydict -- I'm making headway
2)  *Super-duper Fast* gcd algorithms -- this is going to be much harder than 
#1 and the factoring bit.  It's utterly crucial to the factoring methods -- 
crucial for finding squarefree decompositions, crucial for picking off easy 
factors like my "hard" example has ...  We need to implement every algorithm 
we can find for this, benchmark them every way we can, and develop good 
heuristics to choose amongst them.  It can't be stressed enough that gcd is 
central to the entire undertaking.

I'm hoping to have a first stab at industrial strength mpoly factoring over ZZ 
in time for 3.0.  It won't have industrial strength speed because of the gcd 
going to singular, but a drop-in gcd replacement will make a world of 
difference.   Singular manages to suck in utterly grand fashion for both gcd 
and factoring.  I'm absolutely certain that we can beat them handily (but 
probably not in the next month :-).

--
Joel

--~--~---------~--~----~------------~-------~--~----~
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://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to