]> www.ginac.de Git - ginac.git/blobdiff - NEWS
[PATCH] Improve normalisation of negative exponents.
[ginac.git] / NEWS
diff --git a/NEWS b/NEWS
index 68fd8547f68ecd53846252bd34b9ee4f46e8419f..0a37b6ec0f0db5e0bf96009ab6d80bd2319619e5 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,240 @@
 This file records noteworthy changes.
 
+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<T> for good.
+  - New dynallocate<T>(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.