CVSROOT: /cvs/purrs
Module name: purrs
Changes by: zolo(a)cs.unipr.it 2002-11-21 11:22:50
Modified files:
src : rr_solver.cc
Log message:
Modified `solve_constant_coeff_order_k()' so that it returns the
symbolic solution with the object "sum" if the inhomogeneous term
is not in the form of exponentials or polynomials times exponentials.
Patches:
http://www.cs.unipr.it/cgi-bin/cvsweb.cgi/purrs/src/rr_solver.cc.diff?cvsro…
-------- Original Message --------
Subject: Re: Problem with CoStLy 0.2
Date: Wed, 20 Nov 2002 16:57:11 +0100
From: Markus Neher <markus.neher(a)math.uni-karlsruhe.de>
To: Roberto Bagnara <bagnara(a)cs.unipr.it>
CC: Eble, Ingo <ingo.eble(a)math.uni-karlsruhe.de>
References: <3DDA0E35.2060204(a)cs.unipr.it> <3DDA0FFD.1050500(a)math.uni-karlsruhe.de> <3DDA52D0.1080500(a)cs.unipr.it>
Roberto Bagnara wrote:
> Thanks a lot. We are indeed stuck at this and we do not know how we
> should proceed. We have written a temporary workaround for the problem
> but we are unsure whether this is the way to go. In fact, new cases are
> arising: for instance, squaring a negative real interval causes
> the function_undefined() exception to be thrown:
We will implement some additional power functions that can handle theses
problems. A new version of CoStLy will be available in about two weeks.
We'll let you know as soon as it is finished.
Best regards,
Markus
--
Prof. Roberto Bagnara
Computer Science Group
Department of Mathematics, University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:bagnara@cs.unipr.it
CVSROOT: /cvs/purrs
Module name: purrs
Changes by: zolo(a)cs.unipr.it 2002-11-20 15:06:59
Modified files:
tests : heap
Log message:
Marked with `y' a recurrence with the inhomogeneous term not polynomial or
polynomial times exponential.
Patches:
http://www.cs.unipr.it/cgi-bin/cvsweb.cgi/purrs/tests/heap.diff?cvsroot=pur…
CVSROOT: /cvs/purrs
Module name: purrs
Changes by: zolo(a)cs.unipr.it 2002-11-20 15:05:51
Modified files:
src : rr_solver.cc
Log message:
Modified `solve_constant_coeff_order_2()' so that it returns the
symbolic solution with the object "sum" if the inhomogeneous term
is not in the form of exponentials or polynomials times exponentials.
Patches:
http://www.cs.unipr.it/cgi-bin/cvsweb.cgi/purrs/src/rr_solver.cc.diff?cvsro…
CVSROOT: /cvs/purrs
Module name: purrs
Changes by: zolo(a)cs.unipr.it 2002-11-20 12:04:10
Modified files:
tests : heap
Log message:
Marked with `y' the recurrences of the first order that have
the sums not Gosper-summable.
Patches:
http://www.cs.unipr.it/cgi-bin/cvsweb.cgi/purrs/tests/heap.diff?cvsroot=pur…
CVSROOT: /cvs/purrs
Module name: purrs
Changes by: zolo(a)cs.unipr.it 2002-11-20 12:02:11
Modified files:
src : rr_solver.cc Recurrence.defs.hh
Log message:
Moved the decomposition of the inhomogeneous term inside the functions
`solve_constant_coeff_order_1()', `solve_constant_coeff_order_2()' and
`solve_constant_coeff_order_k()'.
Furthermore, now returns the symbolic solution with the "sum" object
when the summation is not Gosper-summable, instead of to return TOO_COMPLEX.
Patches:
http://www.cs.unipr.it/cgi-bin/cvsweb.cgi/purrs/src/rr_solver.cc.diff?cvsro…http://www.cs.unipr.it/cgi-bin/cvsweb.cgi/purrs/src/Recurrence.defs.hh.diff…
-------- Original Message --------
Subject: Re: Automatic evaluation/simplification
Date: Wed, 20 Nov 2002 10:07:32 +0100
From: KRECKEL Richard NGLT <Richard.Kreckel(a)framatome-anp.com>
To: 'bagnara(a)cs.unipr.it' <bagnara(a)cs.unipr.it>
Dear Roberto,
> Yes, the FAQ says it is completely automatic. However, is
> there a way to switch it off?
>
> Forgive me for the very imprecise question. The situation
> is as follows: we have some monster expressions where we need
> to substitute a few thousands of symbol's occurrences with
> something else. We did that by implementing our own recursive
> tree traversal. However, we estimate that more than 80% of the
> time is spent in attempted simplifications by GiNaC (which we
> know are deemed to fail). Is there any way to implement this
> substitution process so as to avoid this big overhead?
If you really do think that the "anonymous evaluation"(*) process in
GiNaC is your bottleneck you could try arranging your "monster
expressions" manually in an exvector (i.e. std::vector<GiNaC::ex>) or
an epvector (i.e. std::vector<GiNaC::expair>) and then use the
GiNaC::add ctor from those structures.
Regards
-richy.
(*) Definition: We call "evaluation" a top-down tree-traversal and
-rearrangement algorithm. "Anonymous" evaluation is the one
you don't call explicitly, as opposed to a "named" evaluation
which you call by hand, e.g. evalf(). "Simplification" is
more general, it does not have to go top-down (or bottom-up,
this doesn't really matter, it's just preorder vs. postorder
traversal) and can thus be regarded as non-local on the
expression-tree's nodes.
This is my own definition of the two concepts I came up with
about two years ago because the literature seems to be utterly
confused and I was unable to see a consensus. This definition
has turned out to be useful and well-defined. GiNaC provides
evaluation, mostly. The function objects transforming
trigonometric functions mentioned in the FAQ are simplifications,
according to this definition. I will soon add some clarification
about the two concepts in the documentation.
PS: Sorry for the late answer, I am stuck in Erlangen for a while
and can only view the GiNaC lists via the web-interface. Email
sent to my old address will not be read until x-mas, so please
reply to this new address.
--
Dr. Richard B. Kreckel
Framatome ANP GmbH, NGLTS
<Richard.Kreckel(a)Framatome-ANP.COM>
Tel: (+49)9131/189-5275, Fax: (+49)9131/189-9908
--
Prof. Roberto Bagnara
Computer Science Group
Department of Mathematics, University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:bagnara@cs.unipr.it
CVSROOT: /cvs/purrs
Module name: purrs
Changes by: roberto(a)cs.unipr.it 2002-11-19 20:57:07
Modified files:
src : approximate_impl.hh
Log message:
Provide a better workaround for the limitations of CoStLy's pow().
Can now approximate the solutions of all the solvable recurrences
in tests/recurrences and tests/heap.
Patches:
http://www.cs.unipr.it/cgi-bin/cvsweb.cgi/purrs/src/approximate_impl.hh.dif…