axiom-developer
[Top][All Lists]
Advanced

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

Re: [Axiom-developer] Re: SPAD and Aldor again


From: Martin Rubey
Subject: Re: [Axiom-developer] Re: SPAD and Aldor again
Date: 17 Nov 2006 19:40:16 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

"Bill Page" <address@hidden> writes:

> On November 17, 2006 1:03 PM Vanuxem Gregory
> > 
> > Le vendredi 17 novembre 2006 à 17:17 +0100, Martin Rubey a écrit :
> > 
> > [...]
> > 
> > > I want to get rid of
> > > that stupid ANY workaround in the series domains.
> > 
> > Get rid of ANY almost everywhere.
> > 
> 
> Why get rid of ANY? What is wrong with this idea? A very similar
> idea is used in Java that is often called "type ducking". This
> is a way to have dynamic types in an otherwise statically typed
> language. What is wrong with that?

There is nothing wrong with that in certain circumstances or as a temporary
workaround. But it is completely wrong if you can do better without. The only
reason why series needs ANY is that the type, for example,

UPXS(INT, x, 0)

has a parameter "expansion point", (in the example equal to zero), which is
given as argument to "series":

series(sin x, x=1783) returns an element of domain ANY, although it really
should be an element of UPXS(FRAC INT, x, 1783). There is some code hidden in
the interpreter that makes the user believe that it is an element of 
UPXS(FRAC INT, x, 1783), but if you want to use series in SPAD code, you are in
trouble.

The signature of series currently is

   [4] (D2,Equation D2) -> Any from ExpressionToUnivariatePowerSeries(
            D4,D2)
            if D2 has Join(AlgebraicallyClosedField,
            TranscendentalFunctionCategory,FunctionSpace D4) and D4 has
            Join(GcdDomain,OrderedSet,RetractableTo Integer,
            LinearlyExplicitRingOver Integer)

but it "should" be something like

   [4] (D2,eq: Equation D2) -> UPXS(D2, retract(lhs eq)@Symbol, rhs eq)
            from ExpressionToUnivariatePowerSeries(D4,D2)
            if D2 has Join(AlgebraicallyClosedField,
            TranscendentalFunctionCategory,FunctionSpace D4) and D4 has
            Join(GcdDomain,OrderedSet,RetractableTo Integer,
            LinearlyExplicitRingOver Integer)


Then you could use it also in SPAD.

No problem at all for Aldor.

Martin






reply via email to

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