Dear Jens, Could you please pull from git://ffmssmsc.jinr.ru:443/varg/ginac.git master The following changes since commit 4ee761760b3db8649b8b616256cd7466fe2cd033: Jens Vollinga (1): Fixed various bugs in multivariate factorization. are available: Alexei Sheplyakov (21): expairseq::match(): remove the code which works around basic::match bug. match() (find()): use exmap (exset) to store matched subexpressions. G_numeric: put convergence/acceleration transofrmations into helper functions. G_numeric: use cl_N and int to manipulate numbers (instead of ex). [nitpick] don't use int instead of std::size_t. [nitpick] inifcns_nstdsums: don't use int instead of std::size_t. [nitpick] power::expand_add(): don't use int instead of std::size_t. [BUGFIX] parser.hpp: fix include guard so the header is actually usable. parser: map input strings onto arbitrary expressions (not only symbols). parser: allow read/write access to symbol table and strictness. parser: change order of the constructor optional arguments. ginac.h: include parser.hpp [bugfix]: parser::parse_unary_expr() parses '-a-b' correctly now. [bugfix] parser::parse_literal_expr(): don't forget to consume the token... parser: add necessary checks to operator() to stop accepting nonsense. Parser can parse (some) floating point numbers now. Use the new parser in the ex(const string&, lst&) ctor. Document the new parser, provide an example. check: time_parser.cpp: don't run the same benchmark twice. Wipe out the old (bison/flex generated) parser. Implemented modular GCD algorithm for univariate polynomials. check/Makefile.am | 19 ++- check/error_report.hpp | 17 ++ check/exam_cra.cpp | 120 ++++++++++ check/exam_mod_gcd.cpp | 85 +++++++ check/match_bug.cpp | 66 +++++ check/parser_bugs.cpp | 94 ++++++++ check/time_parser.cpp | 40 +--- doc/examples/Makefile.am | 2 +- doc/examples/derivative.cpp | 30 +++ doc/examples/ginac-examples.texi | 7 + doc/tutorial/ginac.texi | 102 ++++++-- ginac/Makefile.am | 25 ++- ginac/basic.cpp | 23 +- ginac/basic.h | 2 +- ginac/ex.cpp | 20 +-- ginac/ex.h | 8 +- ginac/expairseq.cpp | 20 +-- ginac/expairseq.h | 2 +- ginac/ginac.h | 6 + ginac/indexed.cpp | 4 +- ginac/inifcns_nstdsums.cpp | 488 ++++++++++++++++++++----------------- ginac/input_lexer.h | 69 ------ ginac/input_lexer.ll | 211 ---------------- ginac/input_parser.yy | 201 ---------------- ginac/matrix.cpp | 2 +- ginac/mul.cpp | 22 +- ginac/ncmul.cpp | 8 +- ginac/parser/lexer.cpp | 12 +- ginac/parser/parse_context.cpp | 21 +- ginac/parser/parse_context.hpp | 9 +- ginac/parser/parser.cpp | 45 +++-- ginac/parser/parser.hpp | 16 +- ginac/parser/parser_compat.cpp | 49 ++++ ginac/polynomial/cra_garner.cpp | 88 +++++++ ginac/polynomial/cra_garner.hpp | 12 + ginac/polynomial/debug.hpp | 29 +++ ginac/polynomial/gcd_euclid.tcc | 45 ++++ ginac/polynomial/mod_gcd.cpp | 165 +++++++++++++ ginac/polynomial/mod_gcd.hpp | 11 + ginac/polynomial/normalize.tcc | 93 +++++++ ginac/polynomial/remainder.tcc | 116 +++++++++ ginac/polynomial/ring_traits.hpp | 32 +++ ginac/polynomial/upoly.hpp | 129 ++++++++++ ginac/polynomial/upoly_io.cpp | 53 ++++ ginac/polynomial/upoly_io.hpp | 12 + ginac/power.cpp | 34 ++- ginac/structure.h | 2 +- ginac/wildcard.cpp | 2 +- ginac/wildcard.h | 2 +- ginsh/ginsh_parser.yy | 18 +- tools/Makefile.am | 2 +- 51 files changed, 1792 insertions(+), 898 deletions(-) create mode 100644 check/error_report.hpp create mode 100644 check/exam_cra.cpp create mode 100644 check/exam_mod_gcd.cpp create mode 100644 check/match_bug.cpp create mode 100644 check/parser_bugs.cpp create mode 100644 doc/examples/derivative.cpp delete mode 100644 ginac/input_lexer.h delete mode 100644 ginac/input_lexer.ll delete mode 100644 ginac/input_parser.yy create mode 100644 ginac/parser/parser_compat.cpp create mode 100644 ginac/polynomial/cra_garner.cpp create mode 100644 ginac/polynomial/cra_garner.hpp create mode 100644 ginac/polynomial/debug.hpp create mode 100644 ginac/polynomial/gcd_euclid.tcc create mode 100644 ginac/polynomial/mod_gcd.cpp create mode 100644 ginac/polynomial/mod_gcd.hpp create mode 100644 ginac/polynomial/normalize.tcc create mode 100644 ginac/polynomial/remainder.tcc create mode 100644 ginac/polynomial/ring_traits.hpp create mode 100644 ginac/polynomial/upoly.hpp create mode 100644 ginac/polynomial/upoly_io.cpp create mode 100644 ginac/polynomial/upoly_io.hpp Best regards, Alexei -- All science is either physics or stamp collecting.