__eq__
and __ne__
methods would return Logic instance.Expr
class holding a pair.Pair
giving 1.5-2x speed up.The aim of the SympyCore project is to seek out new high Performance solutions to represent and manipulate symbolic expressions in the Python programming language, and to try out new symbolic models to achive fundamentally consistent and sufficiently general symbolic model that would be easy to extend to a Computer Algebra System (CAS).
See SympyCore Demo and SympyCore User's Guide for examples. Various performance improvements are reported in Performance History and SympyCore Benchmark sites.
Sympycore is inspired by many attempts to implement CAS for Python and it is created to fix SymPy performance and robustness issues. Sympycore does not yet have nearly as many features as SymPy. Our goal is to work on in direction of merging the efforts with the SymPy project in the future. 21 Oct 2011 update: Recent comments in SymPy issues list indicate that this goal is unrealistic because the projects have diverged so much.
Question: What is the main difference between SympyCore and SymPy projects?
Answer: SympyCore is a research project while SymPy is a software project.
Sympycore package is avaliable for download as a gzipped tar archive and as a Windows binary installer.
To install sympycore from an archive, unpack the tar file
and run the following command inside sympycore-<VERSION>
directory:
python setup.py install
The development code is available in the
SVN repository.
Non-members can check out sympycore
using the command (see
Source for more information):
svn checkout http://sympycore.googlecode.com/svn/trunk/ sympycore-svn
Use python setup.py install
to install sympycore or add the location of checked out
sympycore to PYTHONPATH
to make it available for python import. Note that starting
from version 0.2, sympycore implements some features in C for speed. However, parallel
to that, pure python versions of these features are provided in case one cannot
build the provided extension modules. To build the extension modules inside
sympycore source tree, use one of the following commands:
python setup.py build_ext --inplace
python setup.py build_ext --inplace --compiler=mingw32 # when using MinGW compiler on windows
Import sympycore with
>>> from sympycore import *
>>> a,b=map(Symbol,'ab')
>>> (a+b)**3
Calculus('(a + b)**3')
>>> ((a+b)**3).diff(a)
Calculus('3*(a + b)**2')
>>> ((a+b)**3).diff(a).expand()
Calculus('3*a**2 + 3*b**2 + 6*a*b')
See Documentation page for SympyCore User's Guide as well as other documentation bits.
To run sympycore tests without installing it, execute:
python setup.py [ build_ext --inplace [--compiler=mingw32] ] test [--coverage | --nose-args='...']
in sympycore source directoryl.
To test installed sympycore, run
>>> from sympycore import *
>>> test(nose_args='...')
You can report bugs at the Sympycore Issue Tracker. Any feedback can also be sent to SympyCore mailing list.