[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