-
-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Home
Welcome to the SymPy wiki!
We encourage everyone to participate in this wiki. To edit it, you need to create an account (top right corner). Just fill in your name and password and that's it (no email confirmation, or other annoying things). Feel free to play/test something in the Sandbox.
Note, there are a bunch of pages in this wiki that are not linked to from
here. See them all here <https://github.com/sympy/sympy/wiki/_pages>__.
SymPy Home | Mailing list | Download | Documentation | Issues | Release Notes | Planet SymPy (blogs) |
SymPy is a computer algebra system (CAS) written in the Python programming language. SymPy is easy to use and install (see the download instructions and tutorial for more information), and works everywhere where Python 3.8 or newer is installed (Linux, Windows, Mac OS X, ...). SymPy's features include:
- Arbitrary precision integers, rationals and floats, as well as symbolic expressions
- Simplification (grouping like
a*b*b + 2*b*a*b→3*a*b**2, expansion likeexpand((a + b)**2)→a**2 + 2*a*b + b**2, and other methods of rewriting expressions (cancel,factor,collect, etc...) - Functions (
exp,log,sin, ...) - Complex numbers (like
exp(I*x).expand(complex=True)→cos(x)+I*sin(x)) - Taylor (Laurent) series and limits
- Differentiation and integration
The main SymPy documentation is maintained at http://docs.sympy.org (where you can see both the development and the latest stable versions docs). The full change log can be viewed here.
The issue tracker is located at http://github.com/sympy/sympy/issues.
The best place to begin is the Tutorial. A lot of useful information can also be found in the following:
- FAQ -- Frequently Asked Questions about SymPy
- Quick examples -- This page shows example commands for doing common calculations in SymPy
- Cookbook -- Various recipes
- Presentations -- Slides, tutorials and posters from conferences
- SymPy Papers -- Academic and white papers written about or using SymPy.
- External SymPy Media, Tutorials, and Presentations -- Learning materials written by others.
- SymPy in the news -- SymPy in the News and Blogs
- Related software -- projects related to SymPy
- Comparison to popular CAS's -- Axiom, Magma, Maple, Mathematica, Matlab, Maxima, Sage, Yacas
- Introduction to Contributing -- how to get started as a contributor
- Getting The Bleeding Edge -- how to get the latest development version of sympy
- Running tests -- how to test the code and examples in documentation
- Debugging -- useful when debugging more complex parts of SymPy
- Development workflow -- how to send a patch
- Windows development using git -- SymPy on Windows
- Jupyter Workflow -- Tips for using Jupyter Notebooks
- Pushing patches -- Guide for people who get push access to the official git repo
- Writing documentation -- how to write docstrings, tutorials etc.
- Adding Someone to AUTHORS -- details about how .mailmap works and tools for monitoring authors
- Using .mailmap
- Deprecating policy -- deprecating an existing method/function/class
- Python Version -- what Python versions we support and how long we do
- git hg rosetta stone -- direct translation of hg commands to git
- Sage Symbench -- Symbolic benchmarks
- buildbot -- SymPy buildbot
- Contributors -- list of all contributors and sponsors of SymPy
- Roadmap -- Our roadmap to SymPy 1.0
- Ideas -- Random ideas, not necessarily related to SymPy, but that could be useful for SymPy in the future
- Generic interface -- SymPy/SymPyCore design notes
- Technical References -- Related mathematical literature and websites
- Test automation -- Wishlist scratchpad for streamlining the test suite
- Unit systems -- Some ideas to improve unit systems.
- GSoC Student Instructions -- Starting instructions for for SymPy GSoC applicants.
- GSoC Ideas -- List of ideas for GSoC project proposals and list of potential mentors which is updated annually.
- GSoC Application Template -- Application template (copy into a new page and edit)
- GSoC 2026 Current Applications
- Reports
License SymPy
Unless stated otherwise, everything on this wiki is licensed under the same terms as SymPy, i.e. modified BSD license. This is so that we can take anything from here and add it to the SymPy tarball as a documentation. See License choice for the motivation and discussion behind that choice.
If you have some interesting material, that you don't want to (or cannot) make BSD licensed, please put there a notice, that it has some other license.