axiom-math
[Top][All Lists]
Advanced

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

Re: [Axiom-math] Curious behavior of Taylor series


From: Ralf Hemmecke
Subject: Re: [Axiom-math] Curious behavior of Taylor series
Date: Tue, 22 Aug 2006 18:58:02 +0200
User-agent: Thunderbird 1.5.0.5 (X11/20060719)

Let's abbreviate U := UnivariateTaylorSeries(Expression Integer,x,0) and
E := Expression(Integer).

That's what Axiom does. It tries to coerce to U, there is no such coerce
function.

But x::U works just fine.

Try the same thing in a .spad file and the compiler will complain. (Better use a .as file and compile with Aldor. I cannot say much about SPAD, since I don't know for sure.)

x::U on a command line is given to the interpreter. The interpreter tries to be smart and tries hard to find a way to achieve what it believes you meant.

Then maybe after checking some other coerce functions that
fail, it finds a coercion to Expression(Integer), furthermore there is
function *: (E, U) -> U. So Axiom does a minimal thing: it interprets

x*y as (x::E)*y

note that the coercion to U would go like

(x::E::U) * y

So x::U is equivalent to x::E::U?

I cannot say for sure. Some other Axiom gurus know how to ask axiom what exact function call the interpreter actually finds. I don't. Keep waiting or write to the axiom-developer mailing list. I am sure someone is listening.

and would then be more costly. You surely also consider that
unreasonable to go the long way if there is a shorter path. No?

I'm just wondering why it doesn't try x::U right off.

Maybe it does. But as I said. There is no function coerce: Symbol->U.
So it fails and has to look for something else.

I'm getting the (probably wrong) impression that it looks at x::U,
decides that that's too long, then goes for x::E.  I would think that
deciding x::U is too long would be too long.

Try to write an interpreter then you (maybe) appreciate what it currently does and have some mercy with it. ;-)

Ralf




reply via email to

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