axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] Re: severe (!) bug in normalize


From: Martin Rubey
Subject: [Axiom-developer] Re: severe (!) bug in normalize
Date: 09 Dec 2006 15:27:29 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

Dear Waldek,

Waldek Hebisch <address@hidden> writes:

> Martin Rubey wrote:

> > Now, if we switch to a field of constants containing some variables, what
> > about sqrt(x)*sqrt(y)-sqrt(x*y)?

> At least in theory extra variable cause no difficulty.  Difficulties are due
> to extra operations (like elliptic functions).  Risch structure theorem also
> works for multivariate functions, so for example you can reduce zero test for
> elementary functions to zero test for elementary constants.

So, does that mean that it doesn't matter what sqrt(x)*sqrt(y)-sqrt(x*y) is, as
long as it is consistent? I guess there are two different cases, namely, one
where we normalize with respect to, say, x, i.e., y is a constant but x isn't,
the other casebeing when both x and y are constants.


> > By the way, are there any interesting computable coefficient fields for
> > rischNormalize?
> 
> Algebraic numbers are computable, assuming Schanuel conjecture elementary
> numbers are computable (so also elementary functions are computable).

Of course, Axiom doesn't have a domain for elementary functions... Would it be
difficult to implement such a domain?

> My point of view is that main task of rischNormalize is to build computable
> representation for elementary functions, so it has to accept somewhat
> unstuctured input and I do not expect that type of argument can alone
> guarantee computability.

What do you mean with "somewhat unstructured input"? I also do not understand
"I do not expect that the type of the argument alone can guarantee
computability". Computability of what? I'd guess that if the argument type is
computable, then rischNormalize should return a normal form. Is this correct?

> Looking now at 'normalize' I think that 'normalize' is wrong.  Namely,
> expressions are rational functions of kernels.  If kernels are algebraically
> dependent we risk divion by zero.  Some kernels (like roots) involve explicit
> algebraic dependence and simplifier should be smart enough to reduce then to
> normal form.  

Do you mean that EXPR INT should store it's things rischNormalized? I guess
that this would make sense, however only if we keep the unnormalized form as
well, if it is "shorter". But I guess, I misunderstood.

By the way, I stumbled over an old paper by Karl Aberer who presents a normal
form for expressions built using 1, 0, +, -, *, id and composition. It may not
be so surprising, but I think it might be useful at some point. Furthermore,
the procedure that normalizes is absolutely simple. Notice the absence of
division, though.

> But if there is dependence between transcendental kernels we have to
> 'normalize' first. rischNormalize is carefull to use a variable kernel in
> computations only after it is normalized.  But 'normalize' normalizes
> separately in each variable, so if we have function of x and y and we
> normalize first in x we use parts depending on y before they are normalized.
> AFAICS correct version would normalize simultaneously in all variables.

Is this possible?



Martin





reply via email to

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