A c++11 symbolic expression manipulation library with wrappers for python 2.7. It it based on pattern matching and term rewriting.
- A c++11 compatible compiler (such as gcc-4.9)
- cmake (optional)
PyCAS is a minimalistic computer algebra system based on expresso (it also serves as an example for writing your own modules with expresso). Since it is developed in parallel it is distributed inside the expresso module as expresso.pycas. In the examples directory you can find an introductory tutorial for PyCAS.
Installing the latest release of Expresso can be done by cloning directly from the repository:
git clone https://github.com/TheLartians/Expresso.git
pip2 install .[pycas]
- python 2.7
- pip >= 8.0
- boost.python >= 1.55
- numpy
- mpmath
To cite Expresso/PyCAS use the Zenodo DOI:
There are still many possible improvements to expresso/pyCAS. Feel free to fork the project and add your own contributions. Planned features include:
- Match an arbitrary number of patterns at once in even faster time (near constant instead of logarithmic) using a lookup table
- Add better support for commutative patterns (at the moment only the outermost function is matched commutatively)
- Add documentation
- Implement algorithms for factoring polynomials
- Add support for integrals using a heuristic risch algorithm