skip to main content
DOE PAGES title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: SymPy: symbolic computing in Python

Abstract

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 a popular symbolic library for the scientific Python ecosystem. This paper presents the architecture of SymPy, a description of its features, and a discussion of select submodules. The supplementary material provide additional examples and further outline details of the architecture and features of SymPy.

Authors:
 [1];  [2];  [3];  [4];  [5];  [3];  [6];  [7];  [8];  [9];  [10];  [11];  [12];  [13];  [14];  [15];  [15];  [16];  [17];  [18] more »;  [19];  [20];  [21];  [10];  [22];  [23];  [1] « less
  1. Department of Mechanical Engineering, University of South Carolina, Columbia, SC, United States
  2. Polar Semiconductor, Inc., Bloomington, MN, United States
  3. Continuum Analytics, Inc., Austin, TX, United States
  4. Los Alamos National Laboratory, Los Alamos, NM, United States
  5. Faculty of Physics, Moscow State University, Moscow, Russia
  6. Department of Applied Mathematics, Delhi Technological University, New Delhi, India
  7. Université Paris Est Créteil, Créteil, France
  8. Mechanical and Aerospace Engineering, University of California, Davis, CA, United States
  9. Mathematical Sciences, Indian Institute of Technology (BHU), Varanasi, Uttar Pradesh, India
  10. Department of Computer Science and Engineering, University of Moratuwa, Katubedda, Moratuwa, Sri Lanka
  11. University of Illinois at Urbana-Champaign, Urbana, IL, United States
  12. California Polytechnic State University, San Luis Obispo, CA, United States
  13. Center for Computing Research, Sandia National Laboratories, Albuquerque, NM, United States
  14. Department of Theory and Bio-Systems, Max Planck Institute of Colloids and Interfaces, Potsdam, Germany
  15. Indian Institute of Technology Kharagpur, Kharagpur, West Bengal, India
  16. INRIA Bordeaux-Sud-Ouest—LFANT project-team, Talence, France
  17. INRIA—SIERRA project-team, Paris, France
  18. Department of Physics and Astronomy, University of New Mexico, Albuquerque, NM, United States, Center for Quantum Information and Control, University of New Mexico, Albuquerque, NM, United States, Sandia National Laboratories, Albuquerque, NM, United States
  19. Fashion Metric, Inc, Austin, TX, United States, NumFOCUS, Austin, TX, United States
  20. Department of Surface and Plasma Science, Faculty of Mathematics and Physics, Charles University in Prague, Praha, Czech Republic
  21. Department of Computer Science, Department of Mathematics, Birla Institute of Technology and Science, Goa, India
  22. Indian Institute of Technology Bombay, Mumbai, Maharashtra, India
  23. New Technologies—Research Centre, University of West Bohemia, Plzeň, Czech Republic
Publication Date:
Research Org.:
Sandia National Lab. (SNL-NM), Albuquerque, NM (United States); Los Alamos National Lab. (LANL), Los Alamos, NM (United States)
Sponsoring Org.:
USDOE National Nuclear Security Administration (NNSA)
OSTI Identifier:
1337798
Alternate Identifier(s):
OSTI ID: 1325159; OSTI ID: 1342865
Report Number(s):
SAND-2016-4832J; LA-UR-16-23820l
Journal ID: ISSN 2376-5992; e103
Grant/Contract Number:  
AC52-06NA25396; AC04-94AL85000
Resource Type:
Published Article
Journal Name:
PeerJ. Computer Science
Additional Journal Information:
Journal Name: PeerJ. Computer Science Journal Volume: 3; Journal ID: ISSN 2376-5992
Publisher:
PeerJ Inc.
Country of Publication:
United States
Language:
English
Subject:
97 MATHEMATICS AND COMPUTING; Python; Computer algebra system; Symbolics; Computer Science

Citation Formats

Meurer, Aaron, Smith, Christopher P., Paprocki, Mateusz, Čertík, Ondřej, Kirpichev, Sergey B., Rocklin, Matthew, Kumar, AMiT, Ivanov, Sergiu, Moore, Jason K., Singh, Sartaj, Rathnayake, Thilina, Vig, Sean, Granger, Brian E., Muller, Richard P., Bonazzi, Francesco, Gupta, Harsh, Vats, Shivam, Johansson, Fredrik, Pedregosa, Fabian, Curry, Matthew J., Terrel, Andy R., Roučka, Štěpán, Saboo, Ashutosh, Fernando, Isuru, Kulal, Sumith, Cimrman, Robert, and Scopatz, Anthony. SymPy: symbolic computing in Python. United States: N. p., 2017. Web. doi:10.7717/peerj-cs.103.
Meurer, Aaron, Smith, Christopher P., Paprocki, Mateusz, Čertík, Ondřej, Kirpichev, Sergey B., Rocklin, Matthew, Kumar, AMiT, Ivanov, Sergiu, Moore, Jason K., Singh, Sartaj, Rathnayake, Thilina, Vig, Sean, Granger, Brian E., Muller, Richard P., Bonazzi, Francesco, Gupta, Harsh, Vats, Shivam, Johansson, Fredrik, Pedregosa, Fabian, Curry, Matthew J., Terrel, Andy R., Roučka, Štěpán, Saboo, Ashutosh, Fernando, Isuru, Kulal, Sumith, Cimrman, Robert, & Scopatz, Anthony. SymPy: symbolic computing in Python. United States. doi:10.7717/peerj-cs.103.
Meurer, Aaron, Smith, Christopher P., Paprocki, Mateusz, Čertík, Ondřej, Kirpichev, Sergey B., Rocklin, Matthew, Kumar, AMiT, Ivanov, Sergiu, Moore, Jason K., Singh, Sartaj, Rathnayake, Thilina, Vig, Sean, Granger, Brian E., Muller, Richard P., Bonazzi, Francesco, Gupta, Harsh, Vats, Shivam, Johansson, Fredrik, Pedregosa, Fabian, Curry, Matthew J., Terrel, Andy R., Roučka, Štěpán, Saboo, Ashutosh, Fernando, Isuru, Kulal, Sumith, Cimrman, Robert, and Scopatz, Anthony. Mon . "SymPy: symbolic computing in Python". United States. doi:10.7717/peerj-cs.103.
@article{osti_1337798,
title = {SymPy: symbolic computing in Python},
author = {Meurer, Aaron and Smith, Christopher P. and Paprocki, Mateusz and Čertík, Ondřej and Kirpichev, Sergey B. and Rocklin, Matthew and Kumar, AMiT and Ivanov, Sergiu and Moore, Jason K. and Singh, Sartaj and Rathnayake, Thilina and Vig, Sean and Granger, Brian E. and Muller, Richard P. and Bonazzi, Francesco and Gupta, Harsh and Vats, Shivam and Johansson, Fredrik and Pedregosa, Fabian and Curry, Matthew J. and Terrel, Andy R. and Roučka, Štěpán and Saboo, Ashutosh and Fernando, Isuru and Kulal, Sumith and Cimrman, Robert and Scopatz, Anthony},
abstractNote = {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 a popular symbolic library for the scientific Python ecosystem. This paper presents the architecture of SymPy, a description of its features, and a discussion of select submodules. The supplementary material provide additional examples and further outline details of the architecture and features of SymPy.},
doi = {10.7717/peerj-cs.103},
journal = {PeerJ. Computer Science},
number = ,
volume = 3,
place = {United States},
year = {2017},
month = {1}
}

Journal Article:
Free Publicly Available Full Text
Publisher's Version of Record
DOI: 10.7717/peerj-cs.103

Citation Metrics:
Cited by: 177 works
Citation information provided by
Web of Science

Save / Share:

Works referenced in this record:

A new efficient algorithm for computing Gröbner bases (F4)
journal, June 1999


The cathedral and the bazaar
journal, September 1999


IPython: A System for Interactive Scientific Computing
journal, January 2007

  • Perez, Fernando; Granger, Brian E.
  • Computing in Science & Engineering, Vol. 9, Issue 3
  • DOI: 10.1109/MCSE.2007.53

Decision procedure for indefinite hypergeometric summation
journal, January 1978

  • Gosper, R. W.
  • Proceedings of the National Academy of Sciences, Vol. 75, Issue 1
  • DOI: 10.1073/pnas.75.1.40

A Comparison of Three High-Precision Quadrature Schemes
journal, January 2005


Matplotlib: A 2D Graphics Environment
journal, January 2007


Cadabra: a field-theory motivated symbolic computer algebra system
journal, April 2007


Python for Scientific Computing
journal, January 2007


MPFR: A multiple-precision binary floating-point library with correct rounding
journal, June 2007

  • Fousse, Laurent; Hanrot, Guillaume; Lefèvre, Vincent
  • ACM Transactions on Mathematical Software, Vol. 33, Issue 2
  • DOI: 10.1145/1236463.1236468

Automated and readable simplification of trigonometric expressions
journal, December 2006

  • Fu, Hongguang; Zhong, Xiuqin; Zeng, Zhenbing
  • Mathematical and Computer Modelling, Vol. 44, Issue 11-12
  • DOI: 10.1016/j.mcm.2006.04.002

What every computer scientist should know about floating-point arithmetic
journal, March 1991


Algebraic simplification a guide for the perplexed
conference, January 1971

  • Moses, Joel
  • Proceedings of the second ACM symposium on Symbolic and algebraic manipulation - SYMSAC '71
  • DOI: 10.1145/800204.806298

Double exponential formulas for numerical integration
journal, January 1973

  • Takahasi, Hidetosi; Mori, Masatake
  • Publications of the Research Institute for Mathematical Sciences, Vol. 9, Issue 3
  • DOI: 10.2977/prims/1195192451

yt: A MULTI-CODE ANALYSIS TOOLKIT FOR ASTROPHYSICAL SIMULATION DATA
journal, December 2010

  • Turk, Matthew J.; Smith, Britton D.; Oishi, Jeffrey S.
  • The Astrophysical Journal Supplement Series, Vol. 192, Issue 1
  • DOI: 10.1088/0067-0049/192/1/9

Symbolic Statistics with SymPy
journal, May 2012

  • Rocklin, Matthew; Terrel, Andy R.
  • Computing in Science & Engineering, Vol. 14, Issue 3
  • DOI: 10.1109/MCSE.2012.56

Symbolic linearization of equations of motion of constrained multibody systems
journal, October 2014