About

SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.

Google Summer of Code (GSoC) 2013

SymPy is a mentoring organization for GSoC 2013. Apply now, the deadline is May 2, 2013. See the G+ announcement for links and information how to apply.

Features

Core capabilities

  • Basic arithmetic: Support for operators such as +, -, *, /, ** (power)
  • Simplification
  • Expansion
  • Functions: trigonometric, hyperbolic, exponential, roots, logarithms, absolute value, spherical harmonics, factorials and gamma functions, zeta functions, polynomials, special functions, ...
  • Substitution
  • Numbers: arbitrary precision integers, rationals, and floats
  • Noncommutative symbols
  • Pattern matching

Polynomials

  • Basic arithmetic: division, gcd, ...
  • Factorization
  • Square-free decomposition
  • Gröbner bases
  • Partial fraction decomposition
  • Resultants

Calculus

  • Limits: limit(x*log(x), x, 0) -> 0
  • Differentiation
  • Integration: It uses extended Risch-Norman heuristic
  • Taylor (Laurent) series

Solving equations

  • Polynomial equations
  • Algebraic equations
  • Differential equations
  • Difference equations
  • Systems of equations

Combinatorics

  • Permutations
  • Combinations
  • Partitions
  • Subsets
  • Permutation Groups: Polyhedral, Rubik, Symmetric, ...
  • Prufer and Gray Codes

Discrete math

  • Binomial coefficients
  • Summations
  • Products
  • Number theory: generating prime numbers, primality testing, integer factorization, ...
  • Logic expressions

Matrices

  • Basic arithmetic
  • Eigenvalues/eigenvectors
  • Determinants
  • Inversion
  • Solving
  • Abstract expressions

Geometric Algebra

Geometry

  • points, lines, rays, segments, ellipses, circles, polygons, ...
  • Intersection
  • Tangency
  • Similarity

Plotting

  • Coordinate modes
  • Plotting Geometric Entities
  • 2D and 3D
  • Interactive interface
  • Colors

Physics

  • Units
  • Mechanics
  • Quantum
  • Gaussian Optics
  • Pauli Algebra

Statistics

  • Normal distributions
  • Uniform distributions
  • Probability

Printing

  • Pretty printing: ASCII/Unicode pretty printing, LaTeX
  • Code generation: C, Fortran, Python