Thursday, March 6, 2008

SymPy 0.5.13 released

It took us a little longer to release, so we have a longer changelog this time:

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

Sunday, January 27, 2008

SymPy 0.5.12 released

Quite a lot has changed, SymPy now works with NumPy arrays, you can convert back and forth using numpy.array() and sympy.Matrix(). The integration algorithm has been improved significantly, it can handle a lot of common integrals already (some examples).

More detailed changelog:
  • SymPy works with NumPy out of the box (commit 1, 2)
  • RootOf implemented (commit)
  • Lambda support works now (commit)
  • heuristic Risch method improved (commit 1, 2, 3, 4, 5)
  • cancel function implemented (commit)
  • sqrt(x) is now equivalent to x**(1/2) (commit 1, 2)
  • Derivative is now unevaluated (commit)
  • list2numpy() implemented (commit)
  • series expansion of hyperbolic functions fixed (commit)
  • sympify('lambda x: 2*x') works, plus other fixes (commit 1, 2, 3)
  • simple maxima parser implemented (commit)
  • sin(x)[0] idiom changed to sin(x).args[0] (commit)
  • sin(x).series(x, 5) idiom changed to sin(x).series(x, 0, 5) (commit)
  • caching refactored (commit 1, 2, 3, 4, 5, 6, 7, 8, 9)
  • 2D plots now don't rotate in 3D, but translate instead (commit)
  • many bug fixes, see the Mercurial history for details


The following people have contributed to this release:

  • Kirill Smelkov
  • Mateusz Paprocki
  • Fredrik Johansson
  • Jaroslaw Tworek
  • Saroj Adhikari
  • Andrej Tokarčík
  • David Marek
  • Or Dvory
  • Bernhard R. Link
  • Ondřej Čertík

Thursday, January 10, 2008

public wiki

We created a public wiki:

http://wiki.sympy.org/

That everyone is encouraged to participate in. The google code wiki has a huge disadvantage, that only the members of the google code sympy project are allowed to edit it. wiki.sympy.org can be edited by anyone and we hope that it will encourage SymPy users to help improve SymPy documentation and take part in the project.

We plan to move all tutorials and docs in there. Only things, that are relevant to developers, like how to do a release, etc., will stay in the google wiki.

Monday, January 7, 2008

SymPy 0.5.11 released

This is just a bugfix release, that fixed a problem with pyglet in the 0.5.10.

Changes:

  • ./setup.py install installs pyglet correctly now (commit)
  • var("k") fixed (commit)
  • script for automatic testing of plotting in pure environment added (commit 1, 2)

Friday, January 4, 2008

SymPy 0.5.10 released

Changes:

  • view renamed to preview, pngview, pdfview, dviview added (commit)
  • latex printer was rewritten, preview uses builtin pyglet instead of pygame (commit 1, 2)
  • square root denesting implemented (commit)
  • parser of simple Mathematica expressions added (commit)
  • TeXmacs interface written (commit)
  • some integration fixes (commit 1, 2, 3)
  • line width in 2D plotting can be specified (commit)
  • README was updated (commit 1, 2)
  • pyglet and mpmath were updated and moved to sympy/thirdparty (commit 1, 2, 3, 4, 5)
  • all sys.path hacks were moved to just 2 places - pyglet and examples (commit 1, 2, 3)
  • SymPy objects should work in numpy arrays now (commit 1, 2)
  • hand written sympify() parser was rewritten and simplified using Python AST (commit)
See also Changes.

Saturday, December 22, 2007

Google Highly Open Participation Contest 2007-8

SymPy participates in the Google Highly Open Participation Contest 2007-8, if you are a high school student, go for it. Last chance to claim a task is January 22!

Friday, December 21, 2007

SymPy 0.5.9 released

Changes:

* Differential solvers were polished
* isympy now predefines f as a function
* Matrix printing improved
* Printing internals were documented

See Changes for more info.