SymPy: Symbolic computing in Python

SymPy is an open source computer algebra system written in pure Python. It is built with a focus on extensibility and ease of use, through both interactive and programmatic applications. These characteristics have led SymPy to become the standard symbolic library for the scientific Python ecosystem. This paper presents the architecture of SymPy, a description of its features, and a discussion of select domain specific submodules. The supplementary materials provide additional examples and further outline details of the architecture and features of SymPy.

[1]  et al.,et al.  Jupyter Notebooks - a publishing format for reproducible computational workflows , 2016, ELPUB.

[2]  Thierry Paul,et al.  Quantum computation and quantum information , 2007, Mathematical Structures in Computer Science.

[3]  K. Roach Meijer G function representations , 1997, ISSAC.

[4]  N. Biggs,et al.  Graph Theory 1736-1936 , 1976 .

[5]  Travis E. Oliphant,et al.  Python for Scientific Computing , 2007, Computing in Science & Engineering.

[6]  Riccardo Gatto,et al.  Four approaches to compute the probability of ruin in the compound Poisson risk process with diffusion , 2012, Math. Comput. Model..

[7]  Eugene Ciurana,et al.  Google App Engine , 2009 .

[8]  Mont Hubbard,et al.  Constrained Multibody Dynamics With Python: From Symbolic Equation Generation to Publication , 2013 .

[9]  Frank Harary,et al.  Graph Theory , 2016 .

[10]  Kelly Roach,et al.  Hypergeometric function representations , 1996, ISSAC '96.

[11]  Dominik Wolfgang Gruntz,et al.  On computing limits in a symbolic manipulation system , 1996 .

[12]  Andy R. Terrel,et al.  Symbolic Statistics with SymPy , 2012, Computing in Science & Engineering.

[13]  John D. Hunter,et al.  Matplotlib: A 2D Graphics Environment , 2007, Computing in Science & Engineering.

[14]  Manuel Bronstein,et al.  Symbolic integration I: transcendental functions , 1997 .

[15]  Eric Jones,et al.  SciPy: Open Source Scientific Tools for Python , 2001 .

[16]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[17]  J. Faugère A new efficient algorithm for computing Gröbner bases (F4) , 1999 .

[18]  Paul Hudak,et al.  Domain Specific Languages , 1998 .

[19]  David Joyner,et al.  SAGE: system for algebra and geometry experimentation , 2005, SIGS.

[20]  A. Fetter,et al.  Quantum Theory of Many-Particle Systems , 1971 .

[21]  Albert Nijenhuis,et al.  Combinatorial Algorithms for Computers and Calculators , 1978 .

[22]  G. Rw Decision procedure for indefinite hypergeometric summation , 1978 .

[23]  O. C. Zienkiewicz,et al.  The Finite Element Method: Its Basis and Fundamentals , 2005 .

[24]  Masatake Mori,et al.  Double Exponential Formulas for Numerical Integration , 1973 .

[25]  W. W. Adams,et al.  An Introduction to Gröbner Bases , 2012 .

[26]  R. W. Gosper Decision procedure for indefinite hypergeometric summation. , 1978, Proceedings of the National Academy of Sciences of the United States of America.

[27]  S. Orszag,et al.  Advanced mathematical methods for scientists and engineers I: asymptotic methods and perturbation theory. , 1999 .

[28]  Robert B. Doorenbos Production Matching for Large Learning Systems , 1995 .

[29]  S. Lang,et al.  Introduction to Transcendental Numbers , 1967 .

[30]  Lawrence Rosen,et al.  Open Source Licensing: Software Freedom and Intellectual Property Law , 2004 .

[31]  Gerald Jay Sussman,et al.  Functional Differential Geometry , 2013 .

[32]  Jacques Carette,et al.  Understanding expression simplification , 2004, ISSAC '04.

[33]  M. Hubbard,et al.  Symbolic linearization of equations of motion of constrained multibody systems , 2015 .

[34]  Richard N. Zare,et al.  Angular Momentum: Understanding Spatial Aspects in Chemistry and Physics , 1988 .

[35]  Xiaoye S. Li,et al.  A Comparison of Three High-Precision Quadrature Schemes , 2003, Exp. Math..

[36]  J. J. Sakurai,et al.  Modern Quantum Mechanics , 1986 .

[37]  Kasper Peeters,et al.  Cadabra: a field-theory motivated symbolic computer algebra system , 2006, Comput. Phys. Commun..

[38]  Mark Lutz,et al.  Learning Python , 1999 .

[39]  Kristopher L. Kuhlman,et al.  mpmath: a Python library for arbitrary-precision floating-point arithmetic , 2017 .

[40]  Kristoffer H. Rose,et al.  XY-pic User’s Guide , 1999 .

[41]  Vincent Lefèvre,et al.  MPFR: A multiple-precision binary floating-point library with correct rounding , 2007, TOMS.

[42]  Thomas R. Kane,et al.  THEORY AND APPLICATIONS , 1984 .

[43]  Davide P. Cervone,et al.  Math Jax: a platform for mathematics on the web , 2012 .

[44]  M. Norman,et al.  yt: A MULTI-CODE ANALYSIS TOOLKIT FOR ASTROPHYSICAL SIMULATION DATA , 2010, 1011.3514.

[45]  C. Tai Generalized Vector and Dyadic Analysis: Applied Mathematics in Field Theory , 1991 .

[46]  Brian E. Granger,et al.  IPython: A System for Interactive Scientific Computing , 2007, Computing in Science & Engineering.

[47]  Robert Cimrman SfePy - Write Your Own FE Application , 2014, ArXiv.

[48]  Zhenbing Zeng,et al.  Automated and readable simplification of trigonometric expressions , 2006, Math. Comput. Model..

[49]  J. Faugère A new efficient algorithm for computing Gröbner bases (F4) , 1999 .

[50]  P. Zweifel Advanced Mathematical Methods for Scientists and Engineers , 1980 .