X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=NEWS;h=59440fb4b8f8caf74181e867acf05a266fd0b5c5;hp=1f7f2efb2e179828d6bedf34a5a1bbdfd05a01e3;hb=9197695fc88502b6a56c7270e824f73faa7749f9;hpb=065600d31de1301c0ea2df2c08ab59e7767cfc7f diff --git a/NEWS b/NEWS index 1f7f2efb..59440fb4 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,115 @@ This file records noteworthy changes. +1.8.1 (9 August 2021) +* Add method relational::canonical() and improve conversion of relational to + Boolean (it now works on many simple symbolic cases). +* Improve normalization of negative exponents. +* Fix indexing multiply referenced objects with ex::operator[]. +* Make functions evalf() their arguments before doing own evalf(). +* Fix bugs in H_evalf() and in evaluation of iterated integrals. +* Several portability improvements and compiler warning fixes. + +1.8.0 (14 October 2020) +* New routines for the numerical evaluation of iterated integrals like + elliptic multiple polylogarithms or iterated integrals of modular forms. +* Stronger normalization methods for expressions with powers. Where this + is safe, GiNaC now tries replacing various kinds of powers in order to + find and cancel common subexpressions. +* Improved CMake build. + +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().