PySymbolic - Doing Symbolics in Python

by Pearu Peterson

Introduction

PySymbolic provides a tool for doing elementary symbolic calculations in Python.

Project status

THIS PROJECT IS OBSOLETE!!! Use PyGiNaC instead.

The kernel part of PySymbolic (Kernel.py) is almost complete. It uses very fast GMP arbitrary precision integers/rational numbers and multi-precision floats for Number instances. (Initial tests show that PySymbolic will be faster than any other symbolic package, e.g. see the test-site of MPFR). TODO for the kernel: implement Function class, more elementary functions, evaluation of functions, finish complex numbers, finish parser.

After the PySymbolic kernel is finished, we can start to implement extensions. They should cover the following topics:

Differentiation
This is simple, done many times and will do again when kernel provides the Function class
Simplification
This is not simple. Need a criterion for the notion of "simplicity". And such that it can be effectively implemented. Suggestions/links are welcome!
Polynomials
Factorization of polynomials is desired. For that we need Gröbner basis implementation. I have many references for that, both theory and implementations, but it seems that it we need to implement it directly in Python. NTL should be used for factoring uni-variate polynomials over integers (need volunteers for wrapping NTL to Python!). See also GROEBNER that is free C library.
Linear Algebra
Implement Matrix,Vector,Tensor classes. Symbolically calculate determinants, inverse matrices, various decompositions (QR, SVD, etc), solve eigenvalue problems,etc. Theory is simple, just need lots of code. Contributions are welcome!
Integration
Theory is complex but I have references to algorithms. So, it just needs implementation.
Limits
It is involved topic but I have references to algorithms.
Sums.
Both finite and infinite (series). Implement hyper-geometric functions.
Asymptotic tools
Taylor,Laurent,etc series. O symbol.
Solve equations. Roots.
Linear equations are "simple". Also polynomial equations --- use Gröbner basis stuff.
Sets
Implement Set class in kernel (or in C for efficiency). It might be useful also for other extensions.
Input/Output
Write Symbolic expressions in Latex,XML,MathML. And vice versa.
Special functions
Symbolic manipulation with them, evaluation, simplification.
...

Requirements

You'll need
  1. Python 2.0
  2. GMPY
  3. --- the GNU MP-3 interface to Python. Thanks to Alex Martelli!
  4. (MPFR
  5. --- we are working on it)

Mailing list

There is a mailing list pysymbolic-users available for the users of the pysymbolic program and it is open for discussion, questions, and answers. You can subscribe the list here.

Download

Snapshots of the pre-release (obsolete, get it directly from CVS):
rel-0.x/pysymbolic-0.latest.tgz

CVS Repository

pysymbolic is being developed under CVS and those who are interested in the really latest version of pysymbolic (possibly unstable) can get it from the repository as follows:
  1. First you need to login (the password is guest):
    > cvs -d :pserver:anonymous@cens.ioc.ee:/home/cvs login
  2. and then do the checkout:
    > cvs -z6 -d :pserver:anonymous@cens.ioc.ee:/home/cvs checkout pysymbolic
  3. In the directory pysymbolic you can get the updates by hitting
    > cvs -z6 update -P -d
You can browse pysymbolic CVS repository here.
Valid HTML 4.0! Pearu Peterson <pearu@ioc.ee>
Viimati muudetud: Aug 14 12:31:15 EEST 2001
Submit this page for validation