CVSROOT: /cvs/purrs
Module name: purrs
Changes by: zolo(a)cs.unipr.it 2002-10-14 18:51:53
Modified files:
tests : eqs_driver.cc
Log message:
Accepts options so as to serve both as a debugging tool and as a test
program for `make check'.
Patches:
http://www.cs.unipr.it/cgi-bin/cvsweb.cgi/purrs/tests/eqs_driver.cc.diff?cv…
CVSROOT: /cvs/purrs
Module name: purrs
Changes by: zolo(a)cs.unipr.it 2002-10-14 18:49:38
Modified files:
src : rr_solver.cc
Log message:
Implemented the function in order to solve first order recurrence relation
with variable coefficients (for the moment it is commented).
All prints are checked by the flag NOISY.
Patches:
http://www.cs.unipr.it/cgi-bin/cvsweb.cgi/purrs/src/rr_solver.cc.diff?cvsro…
-------- 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(a)zino.physik.uni-mainz.de>
Reply-To: ginac-list(a)zino.physik.uni-mainz.de
To: <ginac-list(a)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(a)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@cs.unipr.it