[PURRS-devel] [Fwd: Re: Now seriously: what is a polynomial?]

Roberto Bagnara bagnara at cs.unipr.it
Sun Oct 13 14:47:45 CEST 2002


-------- Original Message --------
Subject: Re: Now seriously: what is a polynomial?
Date: Sun, 13 Oct 2002 14:07:57 +0200 (CEST)
From: Richard B. Kreckel <kreckel at zino.physik.uni-mainz.de>
Reply-To: ginac-list at zino.physik.uni-mainz.de
To: <ginac-list at zino.physik.uni-mainz.de>

On Wed, 9 Oct 2002, Christian Bauer wrote:
[...]
 > > e = sqrt(2)*x
 > > e.info(info_flags::polynomial) == false
 >
 > That's a case where the GiNaC definition of a polynomial clashes with the
 > "intuitive" one. info() should probably return 'true' here, because sqrt(2)
 > is clearly a number. But so is zeta(3), and I'm not sure how to handle
 > this in a way that is general enough.

I don't see a difference between sqrt(2) and zeta(3) apart from the
irrelevant fact that zeta(3) is transcendental while sqrt(2) is just
irrational.  The point here was that Z[x,y,z,...] and Q[x,y,z,...] ought
to be classified as polynomials while more general fields are something
different.  This is so because as soon as you start nesting roots it is
not at all obvious how to obtain a canonical form -- definitely
"expanding" is not enough.  For more general functions (like zeta(2*n+1))
it becomes even less obvious.

I'm not entirely sure but methinks a valid definition would be this one:

     A polynomial is an object that has a unique canonical form such that
     given two such objects their equality is guaranteed to be
     unambigously determined using `expand' on both objects.

I think this is what I was having in mind when I implemented
info(info_flags::polynomial) long ago.  Does this make sense?

Regards
     -richy.
-- 
Richard B. Kreckel
<Richard.Kreckel at GiNaC.DE>
<http://www.ginac.de/~kreckel/>


-- 
Prof. Roberto Bagnara
Computer Science Group
Department of Mathematics, University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:bagnara at cs.unipr.it




More information about the PURRS-devel mailing list