28 Jun 2011
- Polys
- New internal representations of dense and sparse polynomials (see
6aecdb7
,31c9aa4
) - Implemented algorithms for real and complex root isolation and counting (see
3acac67
,4b75dae
,fa1206e
,103b928
,45c9b22
,8870c8b
,b348b30
) - Improved Gröbner bases algorithm (see
ff65e9f
,891e4de
,310a585
) - Field isomorphism algorithm (see
b097b01
,08482bf
) - Implemented efficient orthogonal polynomials (see
b8fbd59
) - Added configuration framework for polys (see
33d8cdb
,7eb81c9
) - Function for computing minimal polynomials (see
88bf187
,f800f95
) - Function for generating Viete's formulas (see
1027408
) roots()
supports more classes of polynomials (e.g. cyclotomic) (seed8c8768
,75c8d2d
)- Added a function for recognizing cyclotomic polynomials (see
b9c2a9a
) - Added a function for computing Horner form of polynomials (see
8d235c7
) - Added a function for computing symmetric reductions of polynomials (see
6d560f3
) - Added generators of Swinnerton-Dyer, cyclotomic, symmetric, random and interpolating polynomials (see
dad03dd
,6ccf20c
,dc728d6
,2f17684
,3004db8
) - Added a function computing isolation intervals of algebraic numbers (see
37a58f1
) - Polynomial division (
div()
,rem()
,quo()
) now defaults to a field (seea72d188
) - Added wrappers for numerical root finding algorithms (see
0d98945
,f638fcf
) - Added symbolic capabilities to
factor()
,sqf()
and related functions (seed521c7f
,548120b
,f6f74e6
,b1c49cd
,3527b64
) together()
was significantly improved (seedc327fe
)- Added support for iterable containers to
gcd()
andlcm()
(seee920870
) - Added a function for constructing domains from coefficient containers (see
a8f20e6
) - Implemented greatest factorial factorization (see
d4dbbb5
) - Added partial fraction decomposition algorithm based on undetermined coefficient approach (see
9769d49
,496f08f
) RootOf
andRootSum
were significantly improved (seef3e432
,4c88be6
,41502d7
)- Added support for gmpy (GNU Multiple Precision Arithmetic Library) (see
38e1683
) - Allow to compile
sympy.polys
with Cython (seeafb3886
) - Improved configuration of variables in
Poly
(see22c4061
) - Added documentation based on Wester's examples (see
1c23792
) - Irreducibility testing over finite fields (see
17e8f1f
) - Allow symmetric and non-symmetric representations over finite fields (see
60fbff4
) - More consistent factorization forms from
factor()
andsqf()
(see5df77f5
) - Added support for automatic recognition algebraic extensions (see
7de602c
) - Implemented Collins' modular algorithm for computing resultants (see
950969b
) - Implemented Berlekamp's algorithm for factorization over finite fields (see
70353e9
) - Implemented Trager's algorithm for factorization over algebraic number fields (see
bd0be06
) - Improved Wang's algorithm for efficient factorization of multivariate polynomials (see
425e225
)
- New internal representations of dense and sparse polynomials (see
- Quantum
- Symbolic, abstract dirac notation in
sympy.physics.quantum
. This includes operators, states (bras and kets), commutators, anticommutators, dagger, inner products, outer products, tensor products and Hilbert spaces - Symbolic quantum computing framework that is based on the general capabilities in
sympy.physics.quantum
. This includes qubits (sympy.physics.quantum.qubit
), gates (sympy.physics.quantum.gate
), Grover's algorithm (sympy.physics.quantum.grover
), the quantum Fourier transform (sympy.physics.quantum.qft
), Shor's algorithm (sympy.physics.quantum.shor
) and circuit plotting (sympy.physics.quantum.circuitplot
) - Second quantization framework that inclues creation/anihilation operators for both Fermions and Bosons and Wick's theorem for Fermions (
sympy.physics.secondquant
). - Symbolic quantum angular momentum (spin) algebra (
sympy.physics.quantum.spin
) - Hydrogen wave functions (Schroedinger) and energies (both Schroedinger and Dirac)
- Wave functions and energies for 1D harmonic oscillator
- Wave functions and energies for 3D spherically symmetric harmonic oscillator
- Wigner and Clebsch Gordan coefficients
- Symbolic, abstract dirac notation in
- Everything else
- Implement symarray, providing numpy nd-arrays of symbols.
- update mpmath to 0.16
- Add a tensor module (see this report)
- A lot of stuff was being imported with
from sympy import *
that shouldn't have been (likesys
). This has been fixed.
- Assumptions:
- Refine
- Added predicates (see
7c0b857
,53f0e1a
,d1dd6a3
) - Added query handlers for algebraic numbers (see
f3bee7a
) - Implement a SAT solver (see this,
2d96329
,acfbe75
, etc)
- Concrete
- Finalized implementation of Gosper's algorithm (see
0f187e5
,5888024
) - Removed redundant
Sum2
and related classes (seeef1f6a7
)
- Finalized implementation of Gosper's algorithm (see
- Core:
- Split
Atom
intoAtom
andAtomicExpr
(see965aa91
) - Various
sympify()
improvements - Added functionality for action verbs (many functions can be called both as global functions and as methods e.g.
a.simplify() == simplify(a)
) - Improve handling of rational strings (see
053a045
,4877
) - Major changes to factoring of integers (see
273f450
,5102
) - Optimized
.has()
(seec83c9b0
,5079
,d86d08f
) - Improvements to power (see
c8661ef
,5062
) - Added range and lexicographic syntax to
symbols()
andvar()
(seef6452a8
,9aeb220
,957745a
) - Added
modulus
argument toexpand()
(see1ea5be8
) - Allow to convert
Interval
to relational form (see4c269fe
) - SymPy won't manipulate minus sign of expressions any more (see
6a26941
,9c6bf0f
,e9f4a0a
) Real
and.is_Real
were renamed toFloat
and.is_Float
.Real
and.is_Real
still remain as deprecated shortcuts toFloat
andis_Float
for backwards compatibility. (seeabe1c49
)- Methods coeff and as_coefficient are now non-commutative aware. (see
a4ea170
)
- Split
- Geometry:
- Various improvements to Ellipse
- Updated documentation to numpy standard
- Polygon and Line improvements
- Allow all geometry objects to accept a tuple as
Point
args
- Integrals:
- Various improvements (see e.g.
4871
,5098
,5091
,5086
)
- Various improvements (see e.g.
- isympy
- Fixed the
-p
switch (seee8cb04a
) - Caching can be disabled using
-C
switch (see0d8d748
) - Ground types can be set using
-t
switch (see75734f8
) - Printing ordering can be set using
-o
switch (seefcc6b13
,4ec9dc5
)
- Fixed the
- Logic
- implies object adheres to negative normal form
- Create new boolean class,
logic.boolalg.Boolean
- Added XOR operator (^) support
- Added If-then-else (ITE) support
- Added the dpll algorithm
- Functions:
- Added Piecewise, B-splines
- Spherical Bessel function of the second kind implemented
- Add series expansions of multivariate functions (see
d4d351d
)
- Matrices:
- Add elementwise product (Hadamard product)
- Extended QR factorization for general full ranked mxn matrices
- Remove deprecated functions
zero()
,zeronm()
,one()
(see5da0884
) - Added cholesky and LDL factorizations, and respective solves.
- Added functions for efficient triangular and diagonal solves.
SMatrix
was renamed toSparseMatrix
(seeacd1685
)
- Printing:
- Implemented pretty printing of binomials (see
58c1dad
) - Implemented pretty printing of Sum() (see
84f2c22
,95b4321
) sympy.printing
now supports ordering of terms and factors (see859bb33
)- Lexicographic order is now the default. Now finally things will print as
x**2 + x + 1
instead of1 + x + x**2
, however series still print using reversed ordering, e.g.x - x**3/6 + O(x**5)
. You can get the old order (and other orderings) by setting the-o
option to isympy (see08b4932
,a30c5a3
)
- Implemented pretty printing of binomials (see
- Series:
- Implement a function to calculate residues,
residue()
- Implement nseries and lseries to handle
x0 != 0
, series should be more robust now (see2c99999
,5221
-5223
) - Improvements to Gruntz algorithm
- Implement a function to calculate residues,
- Simplify:
- Added
use()
(see147c142
) ratsimp()
now usescancel()
andreduced()
(see108fb41
)- Implemented EPath (see
696139d
,bf90689
) - a new keyword
rational
was added to nsimplify which will replace Floats with Rational approximations. (see053a045
)
- Added
- Solvers:
- ODE improvements (see
d12a2aa
,3542041
;73fb9ac
) - Added support for solving inequalities (see
328eaba
,8455147
,f8fcaa7
)
- ODE improvements (see
- Utilities:
- Improve cartes, for generating the Cartesian product (see
b1b10ed
) - Added a function computing topological sort of graphs (see
b2ce27b
) - Allow to setup a customized printer in
lambdify()
(seec1ad905
) flatten()
was significantly improved (see31ed8d7
)- Major improvements to the Fortran code generator (see report,
3383aa3
,7ab2da2
, etc)
- Improve cartes, for generating the Cartesian product (see
- This will be the last release of SymPy to support Python 2.4. Dropping support for Python 2.4 will let us move forward with things like supporting Python 3, and will let us use things that were introduced in Python 2.5, like with-statement context managers.
- no longer support creating matrices without brackets (see
4029
) - Renamed
sum()
tosummation()
(see3e763a8
,4475
,4826
). This was changed so that it no longer overrides the built-insum()
. The unevaluated summation is still calledSum()
. - Renamed
abs()
toAbs()
(see64a12a4
,4826
). This was also changed so that it no longer overrides the built-inabs()
. Note that because of__abs__
magic, you can still doabs(expr)
with the built-inabs()
, and it will returnAbs(expr)
. - Renamed
max_()
andmin_()
to nowMax()
andMin()
(see99a271e
,5252
) - Changed behaviour of
symbols()
.symbols('xyz')
gives now a single symbol ('xyz'
), not three ('x'
,'y'
and'z'
) (seef6452a8
). Usesymbols('x,y,z')
orsymbols('x y z')
to get three symbols. Theeach_char
option will still work but is being deprecated. - Split class
Basic
into new classesExpr
,Boolean
(seea0ab479
,635d89c
). Classes that are designed to be part of standard symbolic expressions (likex**2*sin(x)
) should subclass fromExpr
. More generic objects that do not work in symbolic expressions but still want the basic SymPy structure like.args
and basic methods like.subs()
should only subclass fromBasic
. as_basic()
method was renamed toas_expr()
to reflect changes in the core (seee61819d
,80dfe91
)- Methods
as_coeff_terms
andas_coeff_factors
were renamed toas_coeff_mul
andas_coeff_add
, respectively. - Removed the
trim()
function. The function is redundant with the new polys. Use thecancel()
function instead. - The
assume_pos_real
option tologcombine()
was renamed toforce
to be consistant with similarforce
options to other functions.
In addition to the more noticeable changes listed above, there have been numerous other smaller additions, improvements and bug fixes in the ~2000 commits in this release. See the git log for a full list of all changes. The command git log sympy-0.6.7..sympy-0.7.0
will show all commits made between this release and the last. You can also see the issues closed since the last release here.