X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=NEWS;h=2a82f5ffe03f209e090a1c6c4cb3ebbfef018c18;hp=0c713d847ab687ee5afe55b8d0e3eb74a7137d90;hb=13905769fe865764a271f0e2aeb22f422e1289d7;hpb=85cf0a531dfa2f145e8787775806c46474528821 diff --git a/NEWS b/NEWS index 0c713d84..2a82f5ff 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,283 @@ This file records noteworthy changes. -1.4.0 () +1.7.11 (3 August 2020) +* Fix elusive bugs in factor() and in expand(). + +1.7.10 (28 June 2020) +* Fix collect_common_factors() for hidden zero arguments. +* Fix build on modern systems (C++20 and Python3). + +1.7.9 (11 April 2020) +* Fix unarchiving of overloaded functions. +* Fix MinGW64 build. + +1.7.8 (7 October 2019) +* Fix pseries::evalf(), broken since 1.7.0. +* Fix a corner-case bug in H_evalf(). + +1.7.7 (22 September 2019) +* Fix unarchiving empty containers. +* Remove obsolete exhashmap implementation. +* Fix issues with zeta computation. +* Build with Python3. + +1.7.6 (22 April 2019) +* Fix a bug in mul::series() about asymptotic order term. +* Fix cl_N code generation for small negative integers. +* Fix multiple polylog computation related to trailing zeros and user-specified + signs for small imaginary parts. +* Fix CMake build with Python3. + +1.7.5 (17 February 2019) +* Add Markowitz-ordered Gaussian eliminatin. +* Avoid un-normal zeros in matrix::solve(). +* Accept exprseq arguments in lsolve(eqns, vars). +* Add overload of matrix::rank(solve_algo). +* Fix case in G_do_hoelder with real x values which are not cl_R. +* Fix an elusive bug in expairseq/add ctor, introduced in 1.7.0. + +1.7.4 (19 February 2018) +* Fix ABI compatibility with 1.7.[0-2] (broken unintentionally in 1.7.3). + +1.7.3 (1 February 2018) +* Speed up some corner cases of polynomial factorization. +* Speed up some corner cases of gcd computation. +* Speed up factorization of pre-factored polynomials. +* Make matrix::solve() work with hidden (non-normal) zeros. +* Fix bug in evaluation of real and imaginary parts of powers. +* Fix some LaTeX output, add new function symbol::get_TeX_name(). + +1.7.2 (10 January 2017) +* Fix memory leak in operators returning relationals, introduced in 1.7.0. +* Make macro GINAC_DECLARE_REGISTERED_CLASS() work outside namespace GiNaC. +* Fix some build issues. + +1.7.1 (2 October 2016) +* Fix crash in basic::subs(), visible in classes which don't override it. +* Fix convergence failure in Li_projection. +* Fix cliffor_bar() and clifford_star(). +* Improve performance of clifford_to_lst(). +* Fix compilation issues, reduce compiler warnings. + +1.7.0 (30 April 2016) +* Make use of C++11 features: + - Use new language features 'auto', 'nullptr', 'constexpr', range-based for + loops, the contextual keyword 'override', static 'noexcept' operator, etc. + - Add initializer list ctors for container<>, lst and nested initializer + lists ctor for class matrix. + - Add many rvalue reference overloads for ctors from std containers. (Note + that whether they really speed up things depends on whether evaluation + leaves the container unchanged or not.) + - Rvalue reference overloads for ctors from std containers made it possible + to remove the manual 'discardable' hack and std::auto_ptr for good. + - New dynallocate(args...) helper functions obsolete manual allocation + on the heap and setting the dynallocated status flag. + - Got rid of C++98ish algorithm features (bind2nd, etc.) and replaced them + with lambdas. +* Make add::eval(), mul::eval() more careful so they return an evaluated, + canonical expression without compromise. +* Remove 'level' argument of all .eval() methods. This has become possible by + ensuring that add::eval() and mul::eval() evaluate their own structure + without compromise (this was not guaranteed before). If all ex are evaluated, + any object which is an aggregate of such ex will only ever have to + evaluate itself, obsoleting the need for recursing. +* Remove 'level' arguments of all .evalf() and .normal() methods. They were + modeled after the .eval() methods. +* Make relational::rhs() and lhs() nonvirtual. +* Add support for power::info(info_flags::real). +* Add fderivative::derivatives() method. +* Remove broken info_flags::algebraic. +* Remove unmaintained support for Cint. +* Remove unfinished andcode for hash table-based expairseq. +* Remove deprecated ex::to_rational(lst) and ex::to_polynomial(lst). +* ginac-excompiler installs in $LIBEXECDIR now, not in $BINDIR. +* Many minor performance enhancements. + +1.6.7 (29 February 2016) +* Fix elusive bug in sqrfree(), normal(), numer(), and denom(). + +1.6.6 (20 December 2015) +* Fix elusive bug in add::eval(). +* Several minor performance enhancements. + +1.6.5 (27 July 2015) +* Fix pow(+(...),2).expand() where the sum contained roots of expressions. +* Speed-up pow(+(...),n).expand() where n > 3. +* Fix a crash in PolyLogs of rational numbers. + +1.6.4 (8 May 2015) +* Fix pow(+(...),2).expand() where the sum contained roots of rationals. +* Various improvements for info(info_flags::nonnegative). +* Make power::expand() (x*p)^c -> x^c * p^c, if p>0. +* Fix normal() where nested functions occur multiple times. +* Add optional explicit derivatives to functions and use it in abs(), + imag_part(), real_part(). +* Evaluate abs(z)^(2n) -> z^n * conjugate(z)^n. + +1.6.3 (27 November 2014) +* New expand_options::expand_transcendental. GiNaC will apply additional + rules when expanding expressions if this option is specified, i.e. + log(a*b) -> log(a) + log(b) + exp(a + b) -> exp(a)*exp(b) +* Functions can define a custom expand() and info() now. +* Automatically rewrite (x^{-1})^c -> x^{-c} for positive c. +* Transform abs(x)^n -> x^n if x is real and n is even. +* Improved power::info(): power with a real base and even exponent + reports that it's non-negative. +* Fixed spurious match failure due to expairseq::match() bug: + > match(sin(y)*exp(b)+sin(x)*exp(a), sin($0)*exp(a)+exp(b)*sin($1)) + FAIL +* Fixed power::is_polynomial() and mul::is_polynomial() computation. +* factor_univariate correctly handles polynomials over rationals (no + segfaults any more). +* Fixed an infinite loop in factor_multivariate due to incorrect handling + of polynomials having a leading coefficient being a sum with a non-trivial + integer content. +* Fixed numeric evaluation of generalized multiple polylogarithms for real + and negative argument. +* Avoid calling log(1-x) in numeric evaluation of classical polylogarithm. +* Fixed numeric evaluation of multiple polylogarithms (correctly set + the signs of the imaginary parts in the intermediate expression). +* Fixed numeric evaluation of Nielsen polylogs for arguments close to + the 6th root of unity or its conjugate. +* Avoid infinite recursion in series expansion of logarithm. +* numeric::info(info_flags::nonnegative) correctly handles complex numbers + with non-zero imaginary part. +* Fixed several build issues: + - libreadline and dlopen() misdetection. + - multiple definition of symbol on MinGW. + - auto* tools and texinfo being unhappy in various ways. +* GiNaC can be built with CMake now. + +1.6.2 (6 November 2011) +* Fixed the parser to read GiNaC::lst again. +* Fixed a compile warning (relevant to openSUSE build). +* Fixed a bug concerning the subsitutions in indexed expressions + (subs_options::no_index_renaming was ignored). + +1.6.1 (18 July 2011) +* Fixed several internal assertions for the debug version of GiNaC. +* More verbose report of (auto-)configuration problems. +* Fixed a compile problem with ginsh using gcc 4.6. + +1.6.0 (22 May 2011) +* Fixed compilation issues with clang. +* Fixed compilation issues with VC++. +* Fixed a segfault in fsolve() and improved its numerical algorithm. +* Fixed several memory leaks in power::eval(). +* Fixed the substitution algorithm that led to wrong results (exp(log(x))->x). +* Fixed a bug in add:eval() (real_part() had returned wrong results). +* Fixed infinite loop bug when unarchiving realsymbol and possymbol. +* Fixed bugs in the GCD code. +* Fixed empty string bug in symbol::get_name(). +* Fixed bugs concerning STL vector sizes that can potentially cause segfaults. +* Fixed a bug in is_polynomial(). +* Removed autogen dependencies. +* Improved simplify_indexed() algorithm. +* Changed the connection between library version and package version. +* power::series() can handle now more expressions with singularities in the exponent. +* Added conjugate() methods to functions cosh, sinh, tanh. + +1.5.8 (06 July 2010) +* Changed default behaviour of conjugate() for user-defined functions to avoid + wrong evaluations. A user-defined conjugate_func must now be explicitly + registered. +* Fixed: Parser now handles abbreviations as advertized in the manual. +* Fixed two bugs in the GCD code (one infinite loop, one miscalculation). +* Fixed dangerous iterator use. +* Fixed a memory leak in excompiler. +* Fixed several syntax issues wrt to gcc 4.5 and wrt to compile option -std=cxx0x. +* Fixed a wrong URL and a texinfo problem in the manual. +* Added degree_vector() utility function. + +1.5.7 (29 March 2010) +* Fixed a bug in the GCD code (infinite loop in pgcd()). +* Fixed a bug in atan2() (division by zero error for atan2(x,0) if x is a + negative and composite term). +* Products now correctly set info_flags::negative and info_flags::negint. + +1.5.6 (28 January 2010) +* Fixed compile problem with gcc 3.4. +* Improved excompiler: The ginac-excompiler script will only be installed if + excompiler is supported and enabled. + +1.5.5 (04 November 2009) +* Correct libtool versioning. + +1.5.4 (02 November 2009) +* Default parser now can again read in user defined classes. +* Add mul::info() and add::info() support for numeric info_flags (GiNaC now can + detect that the sum or product of a number of positive expressions is again a + positive expression). +* Fixed cast that caused compile error on 64bit machines. +* Fixed incorrect uses of STL iterators. +* Removed subdirectory debian. +* Output LaTeX-symbols using \mathrm, instead of \mbox. + +1.5.3 (30 July 2009) +* The parser now understands user-defined functions by default. The identifier + names can now contain underscores. + +1.5.2 (10 July 2009) +* Fixed documentation of return_type_info() +* Fixed cstdio include issue. +* GiNaC now requires at least version 1.2.2 of cln. + +1.5.1 (25 February 2009) +* Fixed compiling problems with GNU g++ 3.4. +* Work around weird C++ RTTI behaviour on woe32 so GiNaC works on MinGW again. + +1.5.0 (17 February 2009) +* Added polynomial factorization. +* New, faster (recursive descent) expression parser. +* Faster GCD computation. +* gcd() now allows the user to override (some of the) heuristics. +* Writing extensions classes is simpler now: + - Replaced custom RTTI by standard C++ RTTI. + - Definition of archiving methods now optional when declaring a new GiNaC class. +* Fixed recursion in polynomial divide that caused a significant slowdown in + sqrfree(). +* Improved lsolve() of systems containing non-numeric coefficients. +* Removed implicit conversions from cl_N to numeric. +* Improved configuration and compatibility. + +1.4.4 (7 Nov 2008) +* Fixed a bug in the multiple polylogarithms Li/G that caused imaginary parts + of the arguments to be ignored. +* Fixed archiving of complex numbers. +* Made the behaviour of class function more consistent with respect to + ncmul::eval(). +* Fixed bug in power::is_polynomial. +* Improved heur_gcd() so it can handle rational polynomials. +* Improved build scripts. + +1.4.3 (04 April 2008) +* Fixed bug in numerical evaluation of multiple polylogarithms and + alternating multiple zeta values introduced in version 1.4.2. +* Nielsen polylog now invalidates its lookup tables in case the precision + (Digits) has been changed. +* Added new checks for recent bugs in the numerical evaluation of Li and zeta. + +1.4.2 (03 April 2008) +* Fixed VPATH building of documentation. +* Fixed bug in numerical evaluation of multiple polylogarithms for arguments + equal to certain roots of unity (thanks to Jianqiang Zhao). +* Fixed check for memory leakage in parser. +* Made internal function coerce() standard compliant. +* Improved lsolve() of systems containing non-numeric coefficients. +* Improved automatic test programs. Now they work on MinGW and Cygwin as well. + +1.4.1 (21 November 2007) +* Fixed memory leak in ginac_yylex(). +* Fixed memory leaks in mul::eval() and power::eval(). +* Fixed macro checking for version of libreadline (Mac OS X). +* Fixed broken preprocessor instruction in excompiler.cpp. +* Fixed broken module loading in excompiler.cpp. +* info(info_flags::has_indices) now works for sums and products. +* Improved mul::expand(). +* Improved CLN output. + +1.4.0 (31 August 2007) * New tinfo mechanism. * Removed rtt from class symbol. * Faster archiving by adding a map from strings to indices in the atoms vector. @@ -17,7 +294,7 @@ This file records noteworthy changes. * New flag for positive symbols/numbers, added possymbol class. * Added programming examples in doc/examples -1.3.8 () +1.3.8 (28 August 2007) * Drop support of ginac-config and ginac.m4. Please use pkg-config instead. * atan2(y,x) branch cut correction. * Fixed bug in series expansion. @@ -26,6 +303,9 @@ This file records noteworthy changes. * Correct csrc output for idx and fderivative. * Improved handling of convergence transformationis for Li/G. * Fix compilation issues with prereleases of GCC 4.3. +* info_flags::expanded added. +* input_parser also accepts pow(). +* texinfo.tex removed from package. 1.3.7 (05 February 2007) * Fixed bug in expansion of power.