[SCM] GiNaC -- a C++ library for symbolic computations branch, master, updated. release_1-4-0-599-g7905061f
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, master has been updated via 7905061f6487b278e08b103d4d142decb418535e (commit) via e7d79ac4ff7654908b7688bc1373624119682f5c (commit) from d0ff428fb5b7bb565a0aea69e05e5705d840c16d (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 7905061f6487b278e08b103d4d142decb418535e Author: Richard Kreckel <kreckel@ginac.de> Date: Wed Jan 31 12:18:37 2018 +0100 Shortcut conversion ex->numeric->ex in expairseq::make_flat(). Of course, passing an ex by reference is always faster than converting it to a numeric first (even if it is a numeric). commit e7d79ac4ff7654908b7688bc1373624119682f5c Author: Richard Kreckel <kreckel@ginac.de> Date: Wed Jan 31 10:04:25 2018 +0100 Improve gcd(a, b) where one argument is a power of a symbol. The already implemented recursion gcd(x^n, x*p(x)) -> x*gcd(x^(n-1), p(x)) is not ambitious enough: If p(x) has a factor of x, it just goes through the same step again, and if p(x) has a factor which is a power of x, this is reapeted many times. Example: gcd(x^n, expand(x^n*(1+x))) used to go recurse through the gcd routine n times, which could easily lead to a stack overflow for n about 10^5. To improve the situation, introduce a special case for gcd where one argument is a power of a symbol and just cancel the common factor. This turned out to be the root cause of segfaults in matrix elimination algorithms, as reported by Patrick Schulz and Vitaly Magerya: Cf. <https://www.ginac.de/pipermail/ginac-list/2018-January/thread.html> ----------------------------------------------------------------------- Summary of changes: ginac/expairseq.cpp | 3 +-- ginac/normal.cpp | 21 ++++++++++++++++----- 2 files changed, 17 insertions(+), 7 deletions(-) hooks/post-receive -- GiNaC -- a C++ library for symbolic computations
participants (1)
-
git@ginac.de