axiom-developer
[Top][All Lists]
Advanced

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

## RE: [Axiom-developer] RE: How can I get every term of an expression ?

 From: Martin Rubey Subject: RE: [Axiom-developer] RE: How can I get every term of an expression ? Date: Tue, 20 Sep 2005 10:00:07 +0200

```Page, Bill writes:

> On the other hand doing this with Expression Integer appaentely
> does not produce a factored form at all.
>
> (16) -> p2::Factored EXPR INT::InputForm
>
>    (16)
>    (+  (* (+ (* 8 (log x)) (* 12 (exp y))) (sin z))
>     (+ (* 4 (** (log x) 2)) (* (* 6 (exp y)) (log x))))
>                  Type: InputForm
>

As far as I understand, Axiom does not know how to factor expressions:

(6) -> factor(x^2-1::EXPR INT)

2
(6)  x  - 1
Type: Factored Expression Integer

And in fact, there is no way to factor an element of Expression INT in general,
since you cannot even test for zero.

So the way to go is to write domains that contain the class of functions you
are interested in, but still allow factorisation. Examples:

Integers

Polynomials

I guess: algebraic functions

I guess: D-finite functions (this would contain quite a bit of the
trigonometric stuff, but not all of it)

Maybe, but I doubt it: functions that satisfy an ADE (algebraic differential
equation)

and so on. I would advise not to try to "fix" Expression Integer, but rather to
implement categories and domains that are computable.

There are certainly other interesting classes. For a start however, I'd vote
for the hierarchy above, since it is well known, there are many wonderfully
efficient algorithms and it occurs frequently in "real world" problems.

Note that all functions in the hierarchy above can be represented as certain
recurrence equations, so I suspect that *after* doing some maths, a simple (in
the sense of: OK, not perfect) implementation would be quite easy.

If anybody is interested, I can provide more information, and Ralf certainly
can do so, too.

Martin

PS: How are graphs going?

```

reply via email to

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