[SCM] GiNaC -- a C++ library for symbolic computations branch, master, updated. release_1-4-0-406-g9ada7a7
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 9ada7a7f5c47e512b7bf6057d4c013612be9a33b (commit) from e5c76f659e2e882da3d5dba60502d6851f782bf3 (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 9ada7a7f5c47e512b7bf6057d4c013612be9a33b Author: Matthias Dellweg <dellweg@tp1.uni-duesseldorf.de> Date: Tue Dec 10 10:55:28 2013 +0200 expairseq::match(): no side effects if match failed. Fixes spurious match failures. > match(sin(y)*exp(b)+sin(x)*exp(a), sin($0)*exp(a)+exp(b)*sin($1)) FAIL The reason is that expairseq::match() might assign a wildcard even if the match fails. The first attempted submatch is sin(y)*exp(b) with sin($0)*exp(a). It fails (as it should) but $0 == y gets assigned as a side effect (which is wrong). Next submatch is sin(x)*exp(a) with sin($0)*exp(a) (the same pattern as in the first submatch). This one fails because of spurious $0 == y assignment. Due to the unpredicatable term ordering the sequence of submatches might be different and the match might succeed (as it should). This makes debugging a bit more funny. Signed-off-by: Matthias Dellweg <dellweg@tp1.uni-duesseldorf.de> [Alexei Sheplyakov: figure out the cause of the problem, make a test case] ----------------------------------------------------------------------- Summary of changes: check/match_bug.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ ginac/expairseq.cpp | 26 +++++++++++++++++++++----- 2 files changed, 65 insertions(+), 5 deletions(-) hooks/post-receive -- GiNaC -- a C++ library for symbolic computations
participants (1)
-
git@ginac.de