[GiNaC-devel] [SCM] GiNaC -- a C++ library for symbolic computations branch, c++11, updated. release_1-4-0-503-g6c946d4
Richard B. Kreckel
git at ginac.de
Wed Dec 16 21:34:54 CET 2015
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GiNaC -- a C++ library for symbolic computations".
The branch, c++11 has been updated
via 6c946d4c762f5a0d6a3b742f03556dd018d63886 (commit)
via ae6c004bd31e02dda37357d74b641c101b116c73 (commit)
from 65f2693a0948d1db0bc68d7656c64e1fed91c158 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 6c946d4c762f5a0d6a3b742f03556dd018d63886
Author: Richard Kreckel <kreckel at ginac.de>
Date: Wed Dec 16 21:22:36 2015 +0100
Make .eval() evaluate top-level only.
With the previous patch, some old workarounds have become unnecessary:
If all expressions are evaluated, any object which is an aggregate of
expressions will only ever have to evaluate the top level. As such, it
has become pointless to evaluate child objects of an expression prior
to doing its own term-rewriting. This patch removes the evaluation of
children from all GiNaC objects. It also removes the now superfluous
parameter 'level' of the eval methods.
commit ae6c004bd31e02dda37357d74b641c101b116c73
Author: Richard Kreckel <kreckel at ginac.de>
Date: Wed Dec 16 13:00:30 2015 +0100
Make add::eval(), mul::eval() work without compromise.
If a user asks to evaluate an object, the expectation is that the
library returns an evaluated, canonical expression. Everything else is
a bug. (It doesn't matter whether the user asks explicitly or by
assigning to an ex.) It turns out that it was possible to construct
objects which didn't fully evaluate. This patch fixes this by making
eval() a little bit more careful.
This obsoletes the need to go through combine_ex_with_coeff_to_pair()
when constructing an epvector that is then used to construct an add
or mul. (Alas, this was omitted frequently enough...)
-----------------------------------------------------------------------
Summary of changes:
check/exam_inifcns_nstdsums.cpp | 2 +-
check/exam_paranoia.cpp | 64 ++++++++++++------------
check/exam_structure.cpp | 2 +-
doc/tutorial/ginac.texi | 50 +++++++++----------
ginac/add.cpp | 33 ++++++-------
ginac/add.h | 2 +-
ginac/basic.cpp | 2 +-
ginac/basic.h | 2 +-
ginac/container.h | 32 ------------
ginac/ex.cpp | 2 +-
ginac/ex.h | 6 +--
ginac/expairseq.cpp | 78 ++++++++++++-----------------
ginac/expairseq.h | 4 +-
ginac/factor.cpp | 2 -
ginac/fderivative.cpp | 7 +--
ginac/fderivative.h | 2 +-
ginac/function.cppy | 7 ++-
ginac/function.hppy | 2 +-
ginac/indexed.cpp | 6 +--
ginac/indexed.h | 2 +-
ginac/inifcns_nstdsums.cpp | 2 +-
ginac/integral.cpp | 22 +++------
ginac/integral.h | 2 +-
ginac/matrix.cpp | 21 --------
ginac/matrix.h | 4 --
ginac/mul.cpp | 33 ++++++++-----
ginac/mul.h | 2 +-
ginac/ncmul.cpp | 17 +++----
ginac/ncmul.h | 2 +-
ginac/normal.cpp | 8 +--
ginac/numeric.cpp | 4 +-
ginac/numeric.h | 2 +-
ginac/power.cpp | 107 ++++++++++++++++++----------------------
ginac/power.h | 2 +-
ginac/pseries.cpp | 12 ++---
ginac/pseries.h | 2 +-
ginac/relational.cpp | 11 -----
ginac/relational.h | 1 -
ginac/structure.h | 2 +-
ginac/symbol.h | 2 +-
ginsh/ginsh_parser.ypp | 13 +----
41 files changed, 225 insertions(+), 353 deletions(-)
hooks/post-receive
--
GiNaC -- a C++ library for symbolic computations
More information about the GiNaC-devel
mailing list