# SymPy 0.7.5¶

22 Feb 2014

## Major changes¶

- The version of mpmath included in SymPy has been updated to 0.18.
- New routines for efficiently compute the
*dispersion*of a polynomial or a pair thereof. - Fancy indexing of matrices is now provided, e.g.
`A[:, [1, 2, 5]]`

selects all rows and only 3 columns. - Enumeration of multiset partitions is now based on an implementation of
Algorithm 7.1.2.5M from Knuth’s
*The Art of Computer Programming*. The new version is much faster, and includes fast methods for enumerating only those partitions with a restricted range of sizes, and counting multiset partitions. (See the new file`sympy.utilities.enumerative.py`

.) `distance`

methods were added to Line and Ray to compute the shortest distance to them from a point.- The
`normal_lines`

method was added to Ellipse to compute the lines from a point that strike the Ellipse at a normal angle. `inv_quick`

and`det_quick`

were added as functions in solvers.py to facilitate fast solution of small symbolic matrices; their use in solve has reduced greatly the time needed to solve such systems.`solve_univariate_inequality`

has been added to sympy.solvers.inequalities.py.`as_set`

attribute for Relationals and Booleans has been added.- Several classes and functions strictly associated with vector calculus were moved from
`sympy.physics.mechanics`

to a new package`sympy.physics.vector`

. (See sympy/sympy#2732, sympy/sympy#2862 and sympy/sympy#2894). - New implementation of the Airy functions
`Ai`

and`Bi`

and their derivatives`Ai'`

and`Bi'`

(called`airyai`

,`airybi`

,`airyaiprime`

and`airybiprime`

, respectively). Most of the usual features of SymPy special function are present. Notable exceptions are Gruntz limit computation helpers and meijerg special functions integration code. - Euler-Lagrange equations (function
`euler_equations`

) in a new package`sympy.calculus`

(sympy/sympy#2431).

## Compatibility breaks¶

- the
`submatrix`

method of matrices was removed; access the functionality by providing slices or list of rows/columns to matrix directly, e.g.`A[:, [1, 2]]`

. `Matrix([])`

and`Matrix([[]])`

now both return a 0x0 matrix`terms_gcd`

no longer removes a -1.0 from expressions`extract_multiplicatively`

will not remove a negative Number from a positive one, so`(4*x*y).extract_multiplicatively(-2*x)`

will return None.- the shape of the result from
`M.cross(B)`

now has the same shape as matrix M. - The factorial of negative numbers is now
`zoo`

instead of`0`

. This is consistent with the definition`factorial(n) = gamma(n + 1)`

. `1/0`

returns`zoo`

, not`oo`

(sympy/sympy#2813).`zoo.is_number is True`

(sympy/sympy#2823).`oo < I`

raises`TypeError`

, just as for finite numbers (sympy/sympy#2734).`1**oo == nan`

instead of`1`

, better documentation for`Pow`

class (sympy/sympy#2606).

## Minor changes¶

- Some improvements to the gamma function.
`generate_bell`

now generates correct permutations for any number of elements.- It is no longer necessary to provide
`nargs`

to objects subclassed from Function unless an`eval`

class method is not defined. (If`eval`

is defined, the number of arguments will be inferred from its signature.) - geometric
`Point`

creation will be faster since simplification is done only on Floats - Some improvements to the intersection method of the Ellipse.
- solutions from solve of equations involving multiple log terms are more robust
`idiff`

can now return higher order derivatives- Added
`to_matrix()`

method to`sympy.physics.vector.Vector`

and`sympy.physics.dyadic.Dyadic`

. (sympy/sympy#2686). - Printing improvements for
`sympy.physics.vector`

objects and mechanics printing. (See sympy/sympy#2687, sympy/sympy#2728, sympy/sympy#2772, sympy/sympy#2862 and sympy/sympy#2894). - Functions with LaTeX symbols now print correct LaTeX. (sympy/sympy#2772).
`init_printing`

has several new options, including a flag`print_builtin`

to prevent SymPy printing of basic Python types (sympy/sympy#2683), and flags to let you supply custom printers (sympy/sympy#2894).- improvements in evaluation of
`imageset`

for Intervals (sympy/sympy#2723). - Set properties to determine boundary and interior (sympy/sympy#2744).
- input to a function created by lambdify no longer needs to be flattened.