Release Notes for 1.1 - sympy/sympy GitHub Wiki

SymPy 1.1 was released on July 6th, 2017. You can also find release notes for previous versions.

SymPy 1.1 supports Python 2.7, 3.3, 3.4, 3.5, 3.6, and PyPy. It can be downloaded here.

Backwards compatibility breaks and deprecations

  • lambdify now uses modules='numpy' by default if NumPy is installed. Previously it used modules=['math', 'numpy', 'mpmath', 'sympy']. It still uses modules=['math', 'mpmath', 'sympy'] if NumPy is not installed, although this may change in a future version. If you relied on the old behavior of mixing NumPy and non-NumPy functions, you should explicitly pass the modules argument of lambdify (the third argument). (#11468)
  • as_finite_diff is now deprecated. Users are encouraged to use Derivative.as_finite_difference instead. A new helper function called differentiate_finite helps the user to differentiate an expression and replace Derivative instances with finite difference approximations.
  • nsolve now returns Float and Matrix objects (it previously returned mpmath.mpf and mpmath.matrix objects).
  • Using prec=XX to denote number of decimal digits in constructing a Float is now deprecated.Use dps=XX instead for decimal precision, and precision=XX for binary precision.If no precision argument is supplied default dps=15/precision=53 is used.(#12227)
  • CCodePrinter is now deprecated. Users are encouraged to use C89CodePrinter or C99CodePrinter.
  • ImmutableMatrix: The base class for ImmutableMatrix is now ImmutableDenseMatrix. ImmutableMatrix is maintained an alias for ImmutableDenseMatrix
  • has_Field and has_Ring attributes for domains are now deprecated and replaced with is_Field and is_Ring (#12719).
  • CoordSysCartesian is now deprecated. User are encouraged to use CoordSys3D.
  • delop property in CoordSys3D is now deprecated. User are encouraged to use Del() class directly.

New features

  • A new holonomic submodule, for computing with holonomic functions (Shubham Tibra's GSoC project).

  • Improvements to the group theory module (Gaurav Dhingra's GSoC project).

  • Improvements to the solvers and solveset (Shekhar Prasad Rajak and Kshitij Saraogi's GSoC projects).

  • Implementation of Singularity Functions to solve Beam Bending problems (Sampad Kumar Saha's GSoC project).

  • Improvements to the mechanics module (James Brandon Milam's GSoC project).

  • Tensorflow support in lambdify (#11439)

  • Addition of llvmJIT code generation.

  • Addition of Rust code generation.

  • Code-generation for C++ enabled by cxxcode and the classes CXX98CodePrinter & CXX11CodePrinter.

  • ccode now takes a kwarg standard (either c89 or c99) and can now print Min & Max.

  • New module sympy.codegen.cfunctions with support classes for C99 math functions (expm1, log1p, exp2, log2).

  • ReferenceFrame.orient() accepts rotation matrices manually (#11552)

  • Solutions to radical equations that return a ComplementSet no longer raise an error and solutions to the same which cannot be affirmatively verified to be solutions are returned in a ConditionSet (#11537)

  • SymEngine can be used as the symbolic core in sympy.physics.mechanics by setting the environment variable USE_SYMENGINE=1. (#11002)

  • Support for holonomic functions. (#10793)

  • Support for Singularity Functions and 2D Beam Problem Solver.

  • Implementation of finitely presented groups. Todd-Coxeter algorithm for coset enumeration. Reidemeister-Schreier presentation. (#11140)

  • nsolve now has a prec option, which can be used to set the number of digits of precision of the result. To facilitate this change, nsolve now returns Float objects (see above).

  • support for symbolic probability expressions (symbolically express probability, expectation, variance and covariance) and some rewriting rules to switch from one to the other or getting the equivalent integral/summation form. (#10247, #11160)

  • more work on N-dimensional arrays (axes permutation, derivatives by other arrays).

  • matrices can now have symbolic indices. (#11748)

  • matrices now use smart pivoting when row reducing. This means, when looking for a pivot in a column, first sympy looks for an entry that can be quickly proved to be non-zero. If this fails, it tries more sophisticated methods to prove an element is non-zero. If this fails, it looks for an element that wasn't proved to be zero. This fixes many row reduction errors, but slows down row reduction for matrices with symbols as entries (since they cannot be proved to be non-zero). #11554

  • matrix symbols can (in some cases) now be derived #11571.

  • indexed symbols can now be derived, example: A[i].diff(A[j]) giving KroneckerDelta(i, j) (#11144).

  • gradient, curl and divergence in vector module could be calculated in different type of coordinate system #12737

Authors

The following people contributed at least one patch to this release (names are given in alphabetical order by last name). A total of 184 people contributed to this release. People with a * by their names contributed a patch for the first time for this release; 143 people contributed for the first time for this release.

Thanks to everyone who contributed to this release!

  • Abhinav Agarwal*
  • Sachin Agarwal*
  • Tanay Agrawal*
  • Lakshya Agrawal*
  • Arif Ahmed*
  • Alkiviadis G. Akritas
  • Chaitanya Sai Alaparthi*
  • Alsheh*
  • Christiano Anderson*
  • andreo*
  • arghdos*
  • Alex Argunov*
  • Fabian Ball*
  • Langston Barrett*
  • Thomas Baruchel
  • Phillip Berndt*
  • Dhruv Bhanushali*
  • Sagar Bharadwaj*
  • Johan Blåbäck*
  • bluebrook*
  • Francesco Bonazzi
  • Matthew Brett
  • Marcin Briański*
  • bsdz*
  • Josh Burkart*
  • Matthias Bussonnier*
  • Ondřej Čertík
  • Mohit Chandra*
  • Bao Chau*
  • Nitin Chaudhary*
  • ChristinaZografou*
  • Carlos Cordoba*
  • Jim Crist
  • Rishabh Daal*
  • Björn Dahlgren
  • Aman Deep*
  • Vincent Delecroix*
  • Mark Dewing
  • Gaurav Dhingra
  • Vasiliy Dommes*
  • Mohammad Sadeq Dousti*
  • Satya Prakash Dwibedi*
  • elvis-sik*
  • Isuru Fernando
  • FiachAntaw*
  • Mauro Garavello*
  • Srajan Garg*
  • Abhishek Garg*
  • Varun Garg*
  • geety*
  • Martha Giannoudovardi*
  • Tom Gijselinck*
  • Valeriia Gladkova*
  • Nathan Goldbaum*
  • Angus Griffith
  • Nicolás Guarín-Zapata
  • Yicong Guo*
  • Harsh Gupta
  • Theodore Han*
  • harsh_jain*
  • Danny Hermes*
  • Thomas Hickman*
  • Thomas Hisch
  • Chiu-Hsiang Hsu*
  • Normal Human*
  • Thomas Hunt*
  • Rishat Iskhakov*
  • Dana Jacobsen*
  • Samyak Jain*
  • Shikhar Jaiswal*
  • Raghav Jajodia*
  • Jayjayyy*
  • YiDing Jiang*
  • jtoka*
  • Aditya Kapoor*
  • Nikos Karagiannakis*
  • Krit Karan*
  • karthikchintapalli*
  • Sanya Khurana*
  • Sergey B Kirpichev
  • Dimitra Konomi*
  • Devang Kulshreshtha*
  • Amit Kumar
  • Ranjith Kumar*
  • Peeyush Kushwaha*
  • Ronan Lamy
  • latot*
  • Alex Lindsay
  • Kenneth Lyons*
  • Colin B. Macdonald
  • Rishabh Madan*
  • Daniel Mahler*
  • Shikhar Makhija*
  • Colin Marquardt*
  • Bhautik Mavani
  • G. D. McBain*
  • Dennis Meckel*
  • Harshil Meena*
  • Lejla Metohajrova*
  • Aaron Meurer
  • Micky*
  • Szymon Mieszczak*
  • James Brandon Milam*
  • Sudhanshu Mishra
  • Jason Moore
  • Haruki Moriguchi*
  • Michael Mueller*
  • Markus Müller
  • Nathan Musoke*
  • Akshay Nagar*
  • Robin Neatherway*
  • Abdullah Javed Nesar*
  • Nishant Nikhil*
  • Tommy Olofsson*
  • Gabriel Orisaka*
  • Richard Otis
  • Flamy Owl*
  • Alexey Pakhocmhik*
  • steph papanik*
  • Fermi Paradox*
  • Matthew Parnell*
  • Barun Parruck*
  • Arihant Parsoya*
  • Priyank Patel*
  • Sergey Pestov*
  • Ivan Petuhov*
  • Duc-Minh Phan*
  • Ruslan Pisarev*
  • Vladimir Poluhsin*
  • Ekansh Purohit*
  • rahuldan*
  • Shekhar Prasad Rajak
  • Rohit Rango*
  • Vedant Rathore*
  • Yash Reddy*
  • Aravind Reddy*
  • Timothy Reluga
  • Juha Remes
  • Aditya Rohan*
  • Rehas Sachdeva*
  • Sampad Kumar Saha
  • Kshitij Saraogi
  • Nico Schlömer*
  • Anthony Scopatz*
  • Anish Shah
  • Vedarth Sharma*
  • Karan Sharma*
  • shruti*
  • Jason Siefken
  • Sartaj Singh
  • Prempal Singh*
  • Prabhjot Singh*
  • Akshay Siramdas*
  • Chris Smith
  • Michael Sparapany*
  • Peter Stangl*
  • Ralf Stephan
  • Marcel Stimberg*
  • Sumith
  • Kalevi Suominen
  • Andrew Taber*
  • Pranjal Tale*
  • Chris Tefer*
  • Rajat Thakur*
  • Matthew Thomas*
  • Shubham Tibra
  • Subham Tibra*
  • tools4origins*
  • Akash Trehan*
  • Jainul Vaghasia*
  • Shivam Vats
  • Abhishek Verma*
  • Pauli Virtanen
  • Jakub Wilk*
  • Christopher J. Wright*
  • Chai Wah Wu
  • Hong Xu*
  • Jatin Yadav*
  • yathartha*
  • Yerniyaz*
  • Ka Yi*
  • Michele Zaffalon*
  • Haimo Zhang*
  • Zulfikar*