axiom-developer
[Top][All Lists]
Advanced

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

RE: [Axiom-developer] about Expression Integer


From: Bill Page
Subject: RE: [Axiom-developer] about Expression Integer
Date: Tue, 21 Feb 2006 12:01:21 -0500

Ralf,

On February 21, 2006 10:13 AM you wrote:
> 
> 
> >>        differentiate(p: %,v: OV) ==
> >>              multivariate(differentiate(univariate(p,v)),v)
> >>
> >> where univariate just converts p to an element of
> >> SparseUnivariatePolynomial(%). (BTW, that's already a trick!)
> 
> > Alternatively, if we are going to allow constructions in which
> > the coefficient domain of SUP might contain the polynomial
> > variable, then the implementation of 'differentiate' in SUP
> > should be corrected.
> 
> Look more closely. SUP does not even know of a variable name.
> So how should it do something else than differentiate with respect 
> to the only (unamed) variable it has? It's a univariate polynomial
> in the sense of being a function with finite support from the
> natural numbers to the coefficient ring.
> 

I am looking at:

http://wiki.axiom-developer.org/axiom--test--1/src/algebra/PolySpad

and

http://wiki.axiom-developer.org/axiom--test--1/src/algebra/PolycatSpad

but I am confused by this result:

(1) -> S:=SUP EXPR INT

   (1)  SparseUnivariatePolynomial Expression Integer
   Type: Domain

(2) -> ex1:=(x^2+1)$S

         2
   (2)  x  + 1
   Type: SparseUnivariatePolynomial Expression Integer

(3) -> differentiate(ex1)$S

   (3)  0
   Type: SparseUnivariatePolynomial Expression Integer

Ok, so 'differentiate$SUP' treated 'x^2+1' as being in the
coefficient domain, right? But:

(4) -> differentiate(ex1,x)$S

   (4)  2x
   Type: SparseUnivariatePolynomial Expression Integer

')set message bottomup on' shows that 'differentiate' with
signature '(SUP EXPR INT,SYMBOL) -> SUP EXPR INT' is called
from SUP.

(4) -> differentiate(ex1,x)$S

 Function Selection for differentiate
      Arguments: (SUP EXPR INT,VARIABLE x)
      Target type: SUP EXPR INT
      From:      SUP EXPR INT
   -> no appropriate x found in Expression Integer
   -> no appropriate x found in Integer
   -> no appropriate x found in Expression Integer
   -> no appropriate x found in Integer

 [1]  signature:   (SUP EXPR INT,SYMBOL) -> SUP EXPR INT
      implemented: slot $$(Symbol) from SUP EXPR INT

This function seems to come from 'DifferentialExtension' in

http://wiki.axiom-developer.org/axiom--test--1/src/algebra/CatdefSpad

and this seems correct to me. So I am confused as to why
'differentiate(univariate(p,v))' does not seem to yield this
same result. Can you help?

It seems to me that the interrelationship between all of these
polynomial categories, domains and packages is remarkably
convoluted. I am not saying necessarily that it does not have
to be this complicated, but certainly we would all benefit
greatly if this could be clearly and completely documented.

Regards,
Bill Page






reply via email to

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