From git at ginac.de Mon Jan 1 21:22:03 2018 From: git at ginac.de (Richard B. Kreckel) Date: Mon, 1 Jan 2018 21:22:03 +0100 (CET) Subject: [GiNaC-devel] [SCM] GiNaC -- a C++ library for symbolic computations branch, master, updated. release_1-4-0-592-g51c4b68 Message-ID: <20180101202203.D0315D81323@cebix.net> 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 51c4b683827bc6fc427cb5c8ca789a4c9465e021 (commit) via 63f3e977f92d51ea173382a9b7c4c3b18bda7b8e (commit) from 630db9a0b00d4729e80a5f9eec69feec85dfbc59 (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 51c4b683827bc6fc427cb5c8ca789a4c9465e021 Author: Richard Kreckel Date: Mon Jan 1 21:21:41 2018 +0100 Prepare for release 1.7.3. commit 63f3e977f92d51ea173382a9b7c4c3b18bda7b8e Author: Richard Kreckel Date: Mon Jan 1 20:47:26 2018 +0100 Happy New Year! ----------------------------------------------------------------------- Summary of changes: NEWS | 6 ++++++ check/bugme_chinrem_gcd.cpp | 2 +- check/check_inifcns.cpp | 2 +- check/check_lsolve.cpp | 2 +- check/check_matrices.cpp | 2 +- check/check_numeric.cpp | 2 +- check/error_report.h | 2 +- check/exam_archive.cpp | 2 +- check/exam_clifford.cpp | 2 +- check/exam_color.cpp | 2 +- check/exam_cra.cpp | 2 +- check/exam_differentiation.cpp | 2 +- check/exam_factor.cpp | 2 +- check/exam_hashmap.cpp | 2 +- check/exam_indexed.cpp | 2 +- check/exam_inifcns.cpp | 2 +- check/exam_inifcns_nstdsums.cpp | 2 +- check/exam_inifcns_nstdsums.h | 2 +- check/exam_lsolve.cpp | 2 +- check/exam_matrices.cpp | 2 +- check/exam_misc.cpp | 2 +- check/exam_mod_gcd.cpp | 2 +- check/exam_normalization.cpp | 2 +- check/exam_numeric.cpp | 2 +- check/exam_paranoia.cpp | 2 +- check/exam_polygcd.cpp | 2 +- check/exam_powerlaws.cpp | 2 +- check/exam_pseries.cpp | 2 +- check/exam_real_imag.cpp | 2 +- check/exam_structure.cpp | 2 +- check/genex.cpp | 2 +- check/heur_gcd_bug.cpp | 2 +- check/match_bug.cpp | 2 +- check/mul_eval_memleak.cpp | 2 +- check/numeric_archive.cpp | 2 +- check/parser_bugs.cpp | 2 +- check/parser_memleak.cpp | 2 +- check/randomize_serials.cpp | 2 +- check/test_runner.h | 2 +- check/time_antipode.cpp | 2 +- check/time_dennyfliegner.cpp | 2 +- check/time_fateman_expand.cpp | 2 +- check/time_gammaseries.cpp | 2 +- check/time_hashmap.cpp | 2 +- check/time_lw_A.cpp | 2 +- check/time_lw_B.cpp | 2 +- check/time_lw_C.cpp | 2 +- check/time_lw_D.cpp | 2 +- check/time_lw_E.cpp | 2 +- check/time_lw_F.cpp | 2 +- check/time_lw_G.cpp | 2 +- check/time_lw_H.cpp | 2 +- check/time_lw_IJKL.cpp | 2 +- check/time_lw_M1.cpp | 2 +- check/time_lw_M2.cpp | 2 +- check/time_lw_N.cpp | 2 +- check/time_lw_O.cpp | 2 +- check/time_lw_P.cpp | 2 +- check/time_lw_Pprime.cpp | 2 +- check/time_lw_Q.cpp | 2 +- check/time_lw_Qprime.cpp | 2 +- check/time_parser.cpp | 2 +- check/time_toeplitz.cpp | 2 +- check/time_uvar_gcd.cpp | 2 +- check/time_vandermonde.cpp | 2 +- check/timer.cpp | 2 +- check/timer.h | 2 +- doc/tutorial/ginac.texi | 6 +++--- ginac/add.cpp | 2 +- ginac/add.h | 2 +- ginac/archive.cpp | 2 +- ginac/archive.h | 2 +- ginac/assertion.h | 2 +- ginac/basic.cpp | 2 +- ginac/basic.h | 2 +- ginac/class_info.h | 2 +- ginac/clifford.cpp | 2 +- ginac/clifford.h | 2 +- ginac/color.cpp | 2 +- ginac/color.h | 2 +- ginac/compiler.h | 2 +- ginac/constant.cpp | 2 +- ginac/constant.h | 2 +- ginac/container.h | 2 +- ginac/ex.cpp | 2 +- ginac/ex.h | 2 +- ginac/excompiler.cpp | 2 +- ginac/excompiler.h | 2 +- ginac/expair.cpp | 2 +- ginac/expair.h | 2 +- ginac/expairseq.cpp | 2 +- ginac/expairseq.h | 2 +- ginac/exprseq.cpp | 2 +- ginac/exprseq.h | 2 +- ginac/factor.cpp | 2 +- ginac/factor.h | 2 +- ginac/fail.cpp | 2 +- ginac/fail.h | 2 +- ginac/fderivative.cpp | 2 +- ginac/fderivative.h | 2 +- ginac/flags.h | 2 +- ginac/function.cppy | 2 +- ginac/function.hppy | 2 +- ginac/ginac.h | 2 +- ginac/hash_map.h | 2 +- ginac/idx.cpp | 2 +- ginac/idx.h | 2 +- ginac/indexed.cpp | 2 +- ginac/indexed.h | 2 +- ginac/inifcns.cpp | 2 +- ginac/inifcns.h | 2 +- ginac/inifcns_gamma.cpp | 2 +- ginac/inifcns_nstdsums.cpp | 2 +- ginac/inifcns_trans.cpp | 2 +- ginac/integral.cpp | 2 +- ginac/integral.h | 2 +- ginac/lst.cpp | 2 +- ginac/lst.h | 2 +- ginac/matrix.cpp | 2 +- ginac/matrix.h | 2 +- ginac/mul.cpp | 2 +- ginac/mul.h | 2 +- ginac/ncmul.cpp | 2 +- ginac/ncmul.h | 2 +- ginac/normal.cpp | 2 +- ginac/normal.h | 2 +- ginac/numeric.cpp | 2 +- ginac/numeric.h | 2 +- ginac/operators.cpp | 2 +- ginac/operators.h | 2 +- ginac/parser/debug.h | 2 +- ginac/parser/default_reader.cpp | 2 +- ginac/parser/lexer.cpp | 2 +- ginac/parser/lexer.h | 2 +- ginac/parser/parse_binop_rhs.cpp | 2 +- ginac/parser/parse_context.cpp | 2 +- ginac/parser/parse_context.h | 2 +- ginac/parser/parser.cpp | 2 +- ginac/parser/parser.h | 2 +- ginac/parser/parser_compat.cpp | 2 +- ginac/polynomial/chinrem_gcd.cpp | 2 +- ginac/polynomial/chinrem_gcd.h | 2 +- ginac/polynomial/collect_vargs.cpp | 2 +- ginac/polynomial/collect_vargs.h | 2 +- ginac/polynomial/cra_garner.cpp | 2 +- ginac/polynomial/cra_garner.h | 2 +- ginac/polynomial/debug.h | 2 +- ginac/polynomial/divide_in_z_p.cpp | 2 +- ginac/polynomial/divide_in_z_p.h | 2 +- ginac/polynomial/euclid_gcd_wrap.h | 2 +- ginac/polynomial/eval_point_finder.h | 2 +- ginac/polynomial/eval_uvar.h | 2 +- ginac/polynomial/gcd_euclid.h | 2 +- ginac/polynomial/gcd_uvar.cpp | 2 +- ginac/polynomial/heur_gcd_uvar.h | 2 +- ginac/polynomial/interpolate_padic_uvar.h | 2 +- ginac/polynomial/mgcd.cpp | 2 +- ginac/polynomial/mod_gcd.cpp | 2 +- ginac/polynomial/mod_gcd.h | 2 +- ginac/polynomial/newton_interpolate.h | 2 +- ginac/polynomial/normalize.cpp | 2 +- ginac/polynomial/normalize.h | 2 +- ginac/polynomial/optimal_vars_finder.cpp | 2 +- ginac/polynomial/optimal_vars_finder.h | 2 +- ginac/polynomial/pgcd.cpp | 2 +- ginac/polynomial/pgcd.h | 2 +- ginac/polynomial/poly_cra.h | 2 +- ginac/polynomial/prem_uvar.h | 2 +- ginac/polynomial/primes_factory.h | 2 +- ginac/polynomial/primpart_content.cpp | 2 +- ginac/polynomial/remainder.cpp | 2 +- ginac/polynomial/remainder.h | 2 +- ginac/polynomial/ring_traits.h | 2 +- ginac/polynomial/smod_helpers.h | 2 +- ginac/polynomial/sr_gcd_uvar.h | 2 +- ginac/polynomial/upoly.h | 2 +- ginac/polynomial/upoly_io.cpp | 2 +- ginac/polynomial/upoly_io.h | 2 +- ginac/power.cpp | 2 +- ginac/power.h | 2 +- ginac/print.cpp | 2 +- ginac/print.h | 2 +- ginac/pseries.cpp | 2 +- ginac/pseries.h | 2 +- ginac/ptr.h | 2 +- ginac/registrar.cpp | 2 +- ginac/registrar.h | 2 +- ginac/relational.cpp | 2 +- ginac/relational.h | 2 +- ginac/remember.cpp | 2 +- ginac/remember.h | 2 +- ginac/structure.h | 2 +- ginac/symbol.cpp | 2 +- ginac/symbol.h | 2 +- ginac/symmetry.cpp | 2 +- ginac/symmetry.h | 2 +- ginac/tensor.cpp | 2 +- ginac/tensor.h | 2 +- ginac/utils.cpp | 2 +- ginac/utils.h | 2 +- ginac/version.h | 10 +++++----- ginac/wildcard.cpp | 2 +- ginac/wildcard.h | 2 +- ginsh/ginsh.1.in | 2 +- ginsh/ginsh.h | 2 +- ginsh/ginsh_extensions.h | 2 +- ginsh/ginsh_lexer.lpp | 2 +- ginsh/ginsh_parser.ypp | 4 ++-- tools/viewgar.1.in | 2 +- tools/viewgar.cpp | 2 +- 210 files changed, 222 insertions(+), 216 deletions(-) hooks/post-receive -- GiNaC -- a C++ library for symbolic computations From git at ginac.de Wed Jan 24 22:48:37 2018 From: git at ginac.de (Richard B. Kreckel) Date: Wed, 24 Jan 2018 22:48:37 +0100 (CET) Subject: [GiNaC-devel] [SCM] GiNaC -- a C++ library for symbolic computations branch, master, updated. release_1-4-0-593-g4ffb3cbb Message-ID: <20180124214837.64D30D80031@cebix.net> 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 4ffb3cbb3ab5f642e461bcbf8fb29743752c5d58 (commit) from 51c4b683827bc6fc427cb5c8ca789a4c9465e021 (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 4ffb3cbb3ab5f642e461bcbf8fb29743752c5d58 Author: Richard Kreckel Date: Wed Jan 24 22:37:24 2018 +0100 Speed up special cases of square-free factorization. Square-free factorization of polynomials containing a factor which is a high power P of a symbol x did scale like O(P) in space and time. This patch introduces a shortcut in Yun's algorithm, such that the computation is only O(1) in space and time. This makes it possible to compute, say sqrfree(x^P + x^(P+1)) => (1+x)*x^P with P=123456789. Found this to be a bottleneck while debugging one of Vitaly Magerya's examples. ----------------------------------------------------------------------- Summary of changes: ginac/normal.cpp | 78 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 40 insertions(+), 38 deletions(-) hooks/post-receive -- GiNaC -- a C++ library for symbolic computations From git at ginac.de Thu Jan 25 20:02:20 2018 From: git at ginac.de (Richard B. Kreckel) Date: Thu, 25 Jan 2018 20:02:20 +0100 (CET) Subject: [GiNaC-devel] [SCM] GiNaC -- a C++ library for symbolic computations branch, master, updated. release_1-4-0-594-g40234423 Message-ID: <20180125190220.E42AED80039@cebix.net> 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 40234423820294740aa535a713c2784d1bb23351 (commit) from 4ffb3cbb3ab5f642e461bcbf8fb29743752c5d58 (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 40234423820294740aa535a713c2784d1bb23351 Author: Richard Kreckel Date: Thu Jan 25 19:59:00 2018 +0100 Fix previous commit 'Speed up special cases of square-free...'. Huh, I swear 4ffb3cbb3 worked for me! Sorry for that. ----------------------------------------------------------------------- Summary of changes: ginac/normal.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- GiNaC -- a C++ library for symbolic computations From git at ginac.de Sun Jan 28 19:42:26 2018 From: git at ginac.de (Richard B. Kreckel) Date: Sun, 28 Jan 2018 19:42:26 +0100 (CET) Subject: [GiNaC-devel] [SCM] GiNaC -- a C++ library for symbolic computations branch, master, updated. release_1-4-0-595-g1be7026a Message-ID: <20180128184226.256A2D8002E@cebix.net> 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 1be7026a705dfefedcd838e6b60795ca6d469bf9 (commit) from 40234423820294740aa535a713c2784d1bb23351 (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 1be7026a705dfefedcd838e6b60795ca6d469bf9 Author: Richard Kreckel Date: Sun Jan 28 19:23:50 2018 +0100 Add optional algorithm selection to matrix::inverse(). Following a proposal by Vitaly Magerya, a signature with a solve_algo is added to class matrix. (Not using a default argument in order to not break the ABI.) ----------------------------------------------------------------------- Summary of changes: doc/tutorial/ginac.texi | 33 ++++++++++++++++++++------------- ginac/matrix.cpp | 5 +++-- ginac/matrix.h | 7 +++++-- ginac/version.h | 2 ++ 4 files changed, 30 insertions(+), 17 deletions(-) hooks/post-receive -- GiNaC -- a C++ library for symbolic computations From git at ginac.de Sun Jan 28 21:29:53 2018 From: git at ginac.de (Richard B. Kreckel) Date: Sun, 28 Jan 2018 21:29:53 +0100 (CET) Subject: [GiNaC-devel] [SCM] GiNaC -- a C++ library for symbolic computations branch, master, updated. release_1-4-0-596-gafb0ccaa Message-ID: <20180128202953.4AF76D8004B@cebix.net> 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 afb0ccaa49a0cca001d854594e09125a58434123 (commit) from 1be7026a705dfefedcd838e6b60795ca6d469bf9 (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 afb0ccaa49a0cca001d854594e09125a58434123 Author: Richard Kreckel Date: Sun Jan 28 19:59:54 2018 +0100 [CHECK] Add some more factorization exams. Add the 15 multivariate polynomials from P. S. Wang's paper "An Improved Multivariate Polynomial Factoring Algorithm" as exams. Don't add them as benchmarks since timings vary considerably depending on internal choice of variables. In any case, this should never take hours. (But before 630db9a0b0 it did, occasionally.) ----------------------------------------------------------------------- Summary of changes: check/exam_factor.cpp | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) hooks/post-receive -- GiNaC -- a C++ library for symbolic computations From git at ginac.de Mon Jan 29 00:11:34 2018 From: git at ginac.de (Richard B. Kreckel) Date: Mon, 29 Jan 2018 00:11:34 +0100 (CET) Subject: [GiNaC-devel] [SCM] GiNaC -- a C++ library for symbolic computations branch, master, updated. release_1-4-0-597-gd0ff428f Message-ID: <20180128231134.4CA5ED8004B@cebix.net> 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 d0ff428fb5b7bb565a0aea69e05e5705d840c16d (commit) from afb0ccaa49a0cca001d854594e09125a58434123 (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 d0ff428fb5b7bb565a0aea69e05e5705d840c16d Author: Richard Kreckel Date: Mon Jan 29 00:07:17 2018 +0100 Make matrix::solve() work with non-normal zeros. Normalize elements of augmented matrix before checking if they are zero. This ensures that we don't divide by a non-normal zero. Also added a test. This bug was reported by Vitaly Magerya . ----------------------------------------------------------------------- Summary of changes: check/exam_matrices.cpp | 31 +++++++++++++++++++++++++++++++ ginac/matrix.cpp | 4 ++-- 2 files changed, 33 insertions(+), 2 deletions(-) hooks/post-receive -- GiNaC -- a C++ library for symbolic computations From git at ginac.de Wed Jan 31 12:20:32 2018 From: git at ginac.de (Richard B. Kreckel) Date: Wed, 31 Jan 2018 12:20:32 +0100 (CET) Subject: [GiNaC-devel] [SCM] GiNaC -- a C++ library for symbolic computations branch, master, updated. release_1-4-0-599-g7905061f Message-ID: <20180131112032.9CAD9D8008F@cebix.net> 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 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 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. ----------------------------------------------------------------------- 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 From git at ginac.de Wed Jan 31 23:08:26 2018 From: git at ginac.de (Richard B. Kreckel) Date: Wed, 31 Jan 2018 23:08:26 +0100 (CET) Subject: [GiNaC-devel] [SCM] GiNaC -- a C++ library for symbolic computations branch, master, updated. release_1-4-0-602-g4ae294cb Message-ID: <20180131220826.23C2CD80050@cebix.net> 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 4ae294cb1e290f7346d391b8504f940be7196322 (commit) via 5d6f5f3a4ffe8733784ec135ab8d24336f3806ca (commit) via a49dba08e6a1ab2d1714137fe5edc64ba6a40ef2 (commit) from 7905061f6487b278e08b103d4d142decb418535e (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 4ae294cb1e290f7346d391b8504f940be7196322 Author: Richard Kreckel Date: Wed Jan 31 23:07:35 2018 +0100 Prepare for release 1.7.3 (yeah, again). commit 5d6f5f3a4ffe8733784ec135ab8d24336f3806ca Author: Richard Kreckel Date: Wed Jan 31 23:00:08 2018 +0100 Fix two comments in ginac/normal.cpp. And, while at it, make some disabled debugging output code compile when it is enabled. commit a49dba08e6a1ab2d1714137fe5edc64ba6a40ef2 Author: Richard Kreckel Date: Wed Jan 31 22:55:02 2018 +0100 Fix out-of-bounds error in multivar_diophant(). This could trigger an assertion in the factorization exams introduced in afb0ccaa49 if the library was compiled with -DDO_GINAC_ASSERT. ----------------------------------------------------------------------- Summary of changes: NEWS | 4 +++- ginac/factor.cpp | 2 +- ginac/normal.cpp | 10 ++++------ ginac/version.h | 1 + 4 files changed, 9 insertions(+), 8 deletions(-) hooks/post-receive -- GiNaC -- a C++ library for symbolic computations