user-visible changes:
- SymPy is now 2x faster in average compared to the previous release (see below)
- integrate() can handle most of the basic integrals now (commit)
- interactive experience with isympy was improved through adding support for [], () and {} to pretty-printer, and switching to it as the default ipython printer (commit 1, 2, 3)
- new trim() function to map all non-atomic expressions, ie. functions, derivatives and more complex objects, to symbols and remove common factors from numerator and denominator. also cancel() was improved (commit 1, 2)
- .expand() for noncommutative symbols fixed (commit)
- bug in (x+y+sin(x)).as_independent() fixed (commit)
- .subs_dict() improved (commit)
- support for plotting geometry objects added (commit)
- bug in .tangent_line() of ellipse fixed (commit 1, 2)
- new atan2 function and assotiated fixes for .arg() and expanding rational powers (commit 1, 2, 3)
- new .coeff() method for returning coefficient of a poly (commit 1, 2, 3)
- pretty-printer now uses unicode by default (commit)
- recognition of geometric sums were generalized (commit)
- .is_positive and .is_negative now fallback to evalf() when appropriate (commit)
- as the result oo*(pi-1) now correctly simplifies to oo (commit)
- support for objects which provide __int__ method was added (commit)
- we finally started SymPy User's Guide (commit 1, 2)
changes that affected speed:
- first patches with 25% speedup (commit 1, 2, 3, 4)
- Basic.cos et. al. removed, use C.cos instead (commit 1, 2, 3, 4)
- sympy.core now uses direct imports (commit 1, 2)
- sympifyit decorator (commit 1, 2, 3, 4, 5, 6, 7)
- speedup Integers creation and arithmetic (commit 1, 2)
- speedup unary operations for singleton numbers (commit)
- remove silly slowdowns from fast-path of mul and div (commit 1, 2)
- significant speedup was achieved by reusing dummy variables (commit 1, 2, 3, 4)
- is_dummy is not an assumption anymore (commit 1, 2)
- Symbols & Wilds are cached (commit 1, 2, 3)
- ((2+3*I)**1000).expand() is now at least 100x faster (commit)
- .expand() was made faster for cases where an expression is already expanded (commit)
- rational powers of integers are now computed more efficiently (commit)
- unknown assumptions are now cached as well as known assumptions (commit)
general cleanup:
- BasicMeths merged into Basic (commit 1, 2, 3, 4, 5, 6, 7, 8)
- cache subsystem was cleaned up -- now it supports only immutable objects (commit 1, 2, 3, 4, 5)
The following people have contributed to this release:
- Kirill Smelkov
- Mateusz Paprocki
- Saroj Adhikari
- Fredrik Johansson
- Jaroslaw Tworek
- Robert Kern
- Pauli Virtanen
- Ondřej Čertík
No comments:
Post a Comment