X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=NEWS;h=aa6d33c7841a09f5a8f9370dd73c7a5b5958c1ea;hp=2a6e50de7d24c380547ad8c55e7af11876a47dce;hb=9413cd14faaf2980de3884915e22a5beda068ecc;hpb=55a08d9cb9005bb10def92d5e8f5a816003da16b diff --git a/NEWS b/NEWS index 2a6e50de..aa6d33c7 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,60 @@ This file records noteworthy changes. - -1.6.3 (20 October 2014) +1.7.0 (TDB) +* 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). +* 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) @@ -9,15 +62,15 @@ This file records noteworthy changes. * 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. -* improve power::info(): power with a real base and even exponent +* 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. +* 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 +* 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 @@ -30,14 +83,12 @@ This file records noteworthy changes. * Avoid infinite recursion in series expansion of logarithm. * numeric::info(info_flags::nonnegative) correctly handles complex numbers with non-zero imaginary part. -* power::is_polynomial(), mul::is_polynomial(): fix miscomputations. * 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).