SymPy is a symbolic manipulation package, written in pure Python. Its aim is to become a full featured CAS in Python, while keeping the code as simple as possible in order to be comprehensible and easily extensible. Currently, Sympy has only around 1600 lines of code (including comments), and its capabilities include basic arithmetics, basic simplification, series expansion, functions (exp, ln, sin, cos, tan, etc.), differentiation, integration (currently it can do only very simple integrals), basic substitution, arbitrary precision integers and rationals, standard (Python) floats, basic complex numbers, and symbolic limits.
| Tags | Scientific/Engineering Mathematics Software Development Libraries |
|---|---|
| Operating Systems | OS Independent |
| Implementation | Python |
Recent releases


Changes: Robust and fast multivariate factorization was implemented. sympy now works with pickle protocol 2 (and thus works in ipython parallel). ./sympy test now uses the project's own testing suite and it tests both regular tests and doctests. The examples directory was tidied up. More trigonometric simplifications were made. Finding and factoring of polynomial roots were vastly improved. mpmath was updated. Many bugfixes were made.


Changes: Ported to Python2.6 (all tests pass) and Jython (all tests pass except those depending on the "ast" module). True division was fixed (all tests pass with the "-Qnew" Python option). buildbot.sympy.org was created; sympy is now regularly tested on Python 2.4, 2.5, and 2.6 on both i386 and amd64. py.bench: py.test-based benchmarking. bin/test: a simple py.test-like testing framework, without external dependencies and with nicely colored output. Most limits now work. Factorization over Z[x] was greatly improved. Piecewise function was added. nsimplify() was implemented. Symbols and var syntax were unified. C code printing.


Changes: All documentation wiki pages were moved to docs.sympy.org. mpmath was integrated in SymPy, and the numerics module was removed. mpmath can use gmpy optionally, thus calculating 1000000 digits of pi in 7.5s. Common subexpression elimination was implemented. Roots, RootsOf, and RootSum were implemented. lambdify() now accepts Matrices. Matrices were polished and sped up. The source command was implemented. Polys were made the default polynomials in SymPy. Add, Mul, Pow now accept an "evaluate=False" argument. A lot of bugs were fixed.


Changes: All SymPy functions now support vector arguments, e.g. sin([1, 2, 3]). lambdify can now use numpy, math, or mpmath. The order of lambdify arguments has changed. All SymPy objects can be pickled. The code was simplified, improved, and made more robust. The broken limit_series was removed, so there is just one limit implementation. Limits now use .nseries. .nseries() was improved a lot. Polys was improved. A basic kronecker delta and Levi-Civita implementation was added.


No changes have been submitted for this release.