axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] Axiom, FriCAS, forks and teeth


From: Waldek Hebisch
Subject: Re: [Axiom-developer] Axiom, FriCAS, forks and teeth
Date: Wed, 11 Jul 2007 21:04:23 +0200 (CEST)

C Y wrote:
> --- Gabriel Dos Reis <address@hidden> wrote:
> > (1)  As a law, useful software evolve; otherwise they die.
> 
> Certainly.  If actual new ideas appear, they should be incorporated.  I
> would hope that these would be in areas like new mathematics, new
> output formats, new graphics backends, etc - i.e. changes not involving
> the core of the system.
> 

A little example:

integrate(simplify(D((((((2-(a+log(1)))+sqrt(x)/exp(1))/((exp(x)-sqrt(log(x)-x)-(1-log(exp(sqrt(a)))))+2*(log(x)+1)))+(x))+2)+sqrt(x+2),
 x)), x)

if you wait long enough (IIRC about 1 hour on my machine), it will
run out of memory.  Checking why shows that Axiom is unable to
compute GCD of two polynomials.  The polynomials when printed are
few kilobytes in size and of relativly low degree (11 in main
variable, 40 in an auxilary one) but involve algbraic quantities
(square roots).  Axiom uses Lazard version on polynomial
remainder sequence algorithm, which IIUC was considered
state of the art around 95.  But today we know about modular
algorithm for problem -- my understanding is that modular
algorithm is supposed to compute this GCD in few seconds
(possible even in fraction of second).  So while old algorithm
remains correct, a superior one may be invented and replace
the old.

There is an extra twist to this:  I suspect that polynomials
in question are relatively prime.  With high probability
a simple modular method will discover this.  But there is
a question how to hook modular method so that it gets
used.  I belive that the polynomials have type 'UP(Expression Integer)'
and you need some extra work to determine if modular method
is applicable.

In short: new algorithms are discovered and to use new algorithm
you may be forced to change parts of the system which at first
glance have nothing to do with new code.

-- 
                              Waldek Hebisch
address@hidden 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]