pkgsrc/math/py-sympy/PLIST

3585 lines
172 KiB
Text
Raw Normal View History

@comment $NetBSD: PLIST,v 1.15 2018/07/19 20:15:36 prlw1 Exp $
bin/isympy${PYVERSSUFFIX}
${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
${PYSITELIB}/${EGG_INFODIR}/entry_points.txt
${PYSITELIB}/${EGG_INFODIR}/not-zip-safe
${PYSITELIB}/${EGG_INFODIR}/requires.txt
${PYSITELIB}/${EGG_INFODIR}/top_level.txt
${PYSITELIB}/isympy.py
${PYSITELIB}/isympy.pyc
${PYSITELIB}/isympy.pyo
${PYSITELIB}/sympy/__init__.py
${PYSITELIB}/sympy/__init__.pyc
${PYSITELIB}/sympy/__init__.pyo
${PYSITELIB}/sympy/abc.py
${PYSITELIB}/sympy/abc.pyc
${PYSITELIB}/sympy/abc.pyo
${PYSITELIB}/sympy/algebras/__init__.py
${PYSITELIB}/sympy/algebras/__init__.pyc
${PYSITELIB}/sympy/algebras/__init__.pyo
${PYSITELIB}/sympy/algebras/quaternion.py
${PYSITELIB}/sympy/algebras/quaternion.pyc
${PYSITELIB}/sympy/algebras/quaternion.pyo
${PYSITELIB}/sympy/algebras/tests/test_quaternion.py
${PYSITELIB}/sympy/algebras/tests/test_quaternion.pyc
${PYSITELIB}/sympy/algebras/tests/test_quaternion.pyo
${PYSITELIB}/sympy/assumptions/__init__.py
${PYSITELIB}/sympy/assumptions/__init__.pyc
${PYSITELIB}/sympy/assumptions/__init__.pyo
${PYSITELIB}/sympy/assumptions/ask.py
${PYSITELIB}/sympy/assumptions/ask.pyc
${PYSITELIB}/sympy/assumptions/ask.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/assumptions/ask_generated.py
${PYSITELIB}/sympy/assumptions/ask_generated.pyc
${PYSITELIB}/sympy/assumptions/ask_generated.pyo
${PYSITELIB}/sympy/assumptions/assume.py
${PYSITELIB}/sympy/assumptions/assume.pyc
${PYSITELIB}/sympy/assumptions/assume.pyo
${PYSITELIB}/sympy/assumptions/handlers/__init__.py
${PYSITELIB}/sympy/assumptions/handlers/__init__.pyc
${PYSITELIB}/sympy/assumptions/handlers/__init__.pyo
${PYSITELIB}/sympy/assumptions/handlers/calculus.py
${PYSITELIB}/sympy/assumptions/handlers/calculus.pyc
${PYSITELIB}/sympy/assumptions/handlers/calculus.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/assumptions/handlers/common.py
${PYSITELIB}/sympy/assumptions/handlers/common.pyc
${PYSITELIB}/sympy/assumptions/handlers/common.pyo
${PYSITELIB}/sympy/assumptions/handlers/matrices.py
${PYSITELIB}/sympy/assumptions/handlers/matrices.pyc
${PYSITELIB}/sympy/assumptions/handlers/matrices.pyo
${PYSITELIB}/sympy/assumptions/handlers/ntheory.py
${PYSITELIB}/sympy/assumptions/handlers/ntheory.pyc
${PYSITELIB}/sympy/assumptions/handlers/ntheory.pyo
${PYSITELIB}/sympy/assumptions/handlers/order.py
${PYSITELIB}/sympy/assumptions/handlers/order.pyc
${PYSITELIB}/sympy/assumptions/handlers/order.pyo
${PYSITELIB}/sympy/assumptions/handlers/sets.py
${PYSITELIB}/sympy/assumptions/handlers/sets.pyc
${PYSITELIB}/sympy/assumptions/handlers/sets.pyo
${PYSITELIB}/sympy/assumptions/refine.py
${PYSITELIB}/sympy/assumptions/refine.pyc
${PYSITELIB}/sympy/assumptions/refine.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/assumptions/satask.py
${PYSITELIB}/sympy/assumptions/satask.pyc
${PYSITELIB}/sympy/assumptions/satask.pyo
${PYSITELIB}/sympy/assumptions/sathandlers.py
${PYSITELIB}/sympy/assumptions/sathandlers.pyc
${PYSITELIB}/sympy/assumptions/sathandlers.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/assumptions/tests/__init__.py
${PYSITELIB}/sympy/assumptions/tests/__init__.pyc
${PYSITELIB}/sympy/assumptions/tests/__init__.pyo
${PYSITELIB}/sympy/assumptions/tests/test_assumptions_2.py
${PYSITELIB}/sympy/assumptions/tests/test_assumptions_2.pyc
${PYSITELIB}/sympy/assumptions/tests/test_assumptions_2.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/assumptions/tests/test_context.py
${PYSITELIB}/sympy/assumptions/tests/test_context.pyc
${PYSITELIB}/sympy/assumptions/tests/test_context.pyo
${PYSITELIB}/sympy/assumptions/tests/test_matrices.py
${PYSITELIB}/sympy/assumptions/tests/test_matrices.pyc
${PYSITELIB}/sympy/assumptions/tests/test_matrices.pyo
${PYSITELIB}/sympy/assumptions/tests/test_query.py
${PYSITELIB}/sympy/assumptions/tests/test_query.pyc
${PYSITELIB}/sympy/assumptions/tests/test_query.pyo
${PYSITELIB}/sympy/assumptions/tests/test_refine.py
${PYSITELIB}/sympy/assumptions/tests/test_refine.pyc
${PYSITELIB}/sympy/assumptions/tests/test_refine.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/assumptions/tests/test_satask.py
${PYSITELIB}/sympy/assumptions/tests/test_satask.pyc
${PYSITELIB}/sympy/assumptions/tests/test_satask.pyo
${PYSITELIB}/sympy/assumptions/tests/test_sathandlers.py
${PYSITELIB}/sympy/assumptions/tests/test_sathandlers.pyc
${PYSITELIB}/sympy/assumptions/tests/test_sathandlers.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/benchmarks/__init__.py
${PYSITELIB}/sympy/benchmarks/__init__.pyc
${PYSITELIB}/sympy/benchmarks/__init__.pyo
${PYSITELIB}/sympy/benchmarks/bench_discrete_log.py
${PYSITELIB}/sympy/benchmarks/bench_discrete_log.pyc
${PYSITELIB}/sympy/benchmarks/bench_discrete_log.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/benchmarks/bench_meijerint.py
${PYSITELIB}/sympy/benchmarks/bench_meijerint.pyc
${PYSITELIB}/sympy/benchmarks/bench_meijerint.pyo
${PYSITELIB}/sympy/benchmarks/bench_symbench.py
${PYSITELIB}/sympy/benchmarks/bench_symbench.pyc
${PYSITELIB}/sympy/benchmarks/bench_symbench.pyo
${PYSITELIB}/sympy/calculus/__init__.py
${PYSITELIB}/sympy/calculus/__init__.pyc
${PYSITELIB}/sympy/calculus/__init__.pyo
${PYSITELIB}/sympy/calculus/euler.py
${PYSITELIB}/sympy/calculus/euler.pyc
${PYSITELIB}/sympy/calculus/euler.pyo
${PYSITELIB}/sympy/calculus/finite_diff.py
${PYSITELIB}/sympy/calculus/finite_diff.pyc
${PYSITELIB}/sympy/calculus/finite_diff.pyo
${PYSITELIB}/sympy/calculus/singularities.py
${PYSITELIB}/sympy/calculus/singularities.pyc
${PYSITELIB}/sympy/calculus/singularities.pyo
${PYSITELIB}/sympy/calculus/tests/__init__.py
${PYSITELIB}/sympy/calculus/tests/__init__.pyc
${PYSITELIB}/sympy/calculus/tests/__init__.pyo
${PYSITELIB}/sympy/calculus/tests/test_euler.py
${PYSITELIB}/sympy/calculus/tests/test_euler.pyc
${PYSITELIB}/sympy/calculus/tests/test_euler.pyo
${PYSITELIB}/sympy/calculus/tests/test_finite_diff.py
${PYSITELIB}/sympy/calculus/tests/test_finite_diff.pyc
${PYSITELIB}/sympy/calculus/tests/test_finite_diff.pyo
${PYSITELIB}/sympy/calculus/tests/test_singularities.py
${PYSITELIB}/sympy/calculus/tests/test_singularities.pyc
${PYSITELIB}/sympy/calculus/tests/test_singularities.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/calculus/tests/test_util.py
${PYSITELIB}/sympy/calculus/tests/test_util.pyc
${PYSITELIB}/sympy/calculus/tests/test_util.pyo
${PYSITELIB}/sympy/calculus/util.py
${PYSITELIB}/sympy/calculus/util.pyc
${PYSITELIB}/sympy/calculus/util.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/categories/__init__.py
${PYSITELIB}/sympy/categories/__init__.pyc
${PYSITELIB}/sympy/categories/__init__.pyo
${PYSITELIB}/sympy/categories/baseclasses.py
${PYSITELIB}/sympy/categories/baseclasses.pyc
${PYSITELIB}/sympy/categories/baseclasses.pyo
${PYSITELIB}/sympy/categories/diagram_drawing.py
${PYSITELIB}/sympy/categories/diagram_drawing.pyc
${PYSITELIB}/sympy/categories/diagram_drawing.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/categories/tests/__init__.py
${PYSITELIB}/sympy/categories/tests/__init__.pyc
${PYSITELIB}/sympy/categories/tests/__init__.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/categories/tests/test_baseclasses.py
${PYSITELIB}/sympy/categories/tests/test_baseclasses.pyc
${PYSITELIB}/sympy/categories/tests/test_baseclasses.pyo
${PYSITELIB}/sympy/categories/tests/test_drawing.py
${PYSITELIB}/sympy/categories/tests/test_drawing.pyc
${PYSITELIB}/sympy/categories/tests/test_drawing.pyo
${PYSITELIB}/sympy/codegen/__init__.py
${PYSITELIB}/sympy/codegen/__init__.pyc
${PYSITELIB}/sympy/codegen/__init__.pyo
${PYSITELIB}/sympy/codegen/algorithms.py
${PYSITELIB}/sympy/codegen/algorithms.pyc
${PYSITELIB}/sympy/codegen/algorithms.pyo
${PYSITELIB}/sympy/codegen/approximations.py
${PYSITELIB}/sympy/codegen/approximations.pyc
${PYSITELIB}/sympy/codegen/approximations.pyo
${PYSITELIB}/sympy/codegen/ast.py
${PYSITELIB}/sympy/codegen/ast.pyc
${PYSITELIB}/sympy/codegen/ast.pyo
${PYSITELIB}/sympy/codegen/cfunctions.py
${PYSITELIB}/sympy/codegen/cfunctions.pyc
${PYSITELIB}/sympy/codegen/cfunctions.pyo
${PYSITELIB}/sympy/codegen/cnodes.py
${PYSITELIB}/sympy/codegen/cnodes.pyc
${PYSITELIB}/sympy/codegen/cnodes.pyo
${PYSITELIB}/sympy/codegen/cutils.py
${PYSITELIB}/sympy/codegen/cutils.pyc
${PYSITELIB}/sympy/codegen/cutils.pyo
${PYSITELIB}/sympy/codegen/cxxnodes.py
${PYSITELIB}/sympy/codegen/cxxnodes.pyc
${PYSITELIB}/sympy/codegen/cxxnodes.pyo
${PYSITELIB}/sympy/codegen/fnodes.py
${PYSITELIB}/sympy/codegen/fnodes.pyc
${PYSITELIB}/sympy/codegen/fnodes.pyo
${PYSITELIB}/sympy/codegen/futils.py
${PYSITELIB}/sympy/codegen/futils.pyc
${PYSITELIB}/sympy/codegen/futils.pyo
${PYSITELIB}/sympy/codegen/pyutils.py
${PYSITELIB}/sympy/codegen/pyutils.pyc
${PYSITELIB}/sympy/codegen/pyutils.pyo
${PYSITELIB}/sympy/codegen/rewriting.py
${PYSITELIB}/sympy/codegen/rewriting.pyc
${PYSITELIB}/sympy/codegen/rewriting.pyo
${PYSITELIB}/sympy/codegen/tests/test_algorithms.py
${PYSITELIB}/sympy/codegen/tests/test_algorithms.pyc
${PYSITELIB}/sympy/codegen/tests/test_algorithms.pyo
${PYSITELIB}/sympy/codegen/tests/test_applications.py
${PYSITELIB}/sympy/codegen/tests/test_applications.pyc
${PYSITELIB}/sympy/codegen/tests/test_applications.pyo
${PYSITELIB}/sympy/codegen/tests/test_approximations.py
${PYSITELIB}/sympy/codegen/tests/test_approximations.pyc
${PYSITELIB}/sympy/codegen/tests/test_approximations.pyo
${PYSITELIB}/sympy/codegen/tests/test_ast.py
${PYSITELIB}/sympy/codegen/tests/test_ast.pyc
${PYSITELIB}/sympy/codegen/tests/test_ast.pyo
${PYSITELIB}/sympy/codegen/tests/test_cfunctions.py
${PYSITELIB}/sympy/codegen/tests/test_cfunctions.pyc
${PYSITELIB}/sympy/codegen/tests/test_cfunctions.pyo
${PYSITELIB}/sympy/codegen/tests/test_cnodes.py
${PYSITELIB}/sympy/codegen/tests/test_cnodes.pyc
${PYSITELIB}/sympy/codegen/tests/test_cnodes.pyo
${PYSITELIB}/sympy/codegen/tests/test_cxxnodes.py
${PYSITELIB}/sympy/codegen/tests/test_cxxnodes.pyc
${PYSITELIB}/sympy/codegen/tests/test_cxxnodes.pyo
${PYSITELIB}/sympy/codegen/tests/test_fnodes.py
${PYSITELIB}/sympy/codegen/tests/test_fnodes.pyc
${PYSITELIB}/sympy/codegen/tests/test_fnodes.pyo
${PYSITELIB}/sympy/codegen/tests/test_rewriting.py
${PYSITELIB}/sympy/codegen/tests/test_rewriting.pyc
${PYSITELIB}/sympy/codegen/tests/test_rewriting.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/combinatorics/__init__.py
${PYSITELIB}/sympy/combinatorics/__init__.pyc
${PYSITELIB}/sympy/combinatorics/__init__.pyo
${PYSITELIB}/sympy/combinatorics/coset_table.py
${PYSITELIB}/sympy/combinatorics/coset_table.pyc
${PYSITELIB}/sympy/combinatorics/coset_table.pyo
${PYSITELIB}/sympy/combinatorics/fp_groups.py
${PYSITELIB}/sympy/combinatorics/fp_groups.pyc
${PYSITELIB}/sympy/combinatorics/fp_groups.pyo
${PYSITELIB}/sympy/combinatorics/free_groups.py
${PYSITELIB}/sympy/combinatorics/free_groups.pyc
${PYSITELIB}/sympy/combinatorics/free_groups.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/combinatorics/generators.py
${PYSITELIB}/sympy/combinatorics/generators.pyc
${PYSITELIB}/sympy/combinatorics/generators.pyo
${PYSITELIB}/sympy/combinatorics/graycode.py
${PYSITELIB}/sympy/combinatorics/graycode.pyc
${PYSITELIB}/sympy/combinatorics/graycode.pyo
${PYSITELIB}/sympy/combinatorics/group_constructs.py
${PYSITELIB}/sympy/combinatorics/group_constructs.pyc
${PYSITELIB}/sympy/combinatorics/group_constructs.pyo
${PYSITELIB}/sympy/combinatorics/homomorphisms.py
${PYSITELIB}/sympy/combinatorics/homomorphisms.pyc
${PYSITELIB}/sympy/combinatorics/homomorphisms.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/combinatorics/named_groups.py
${PYSITELIB}/sympy/combinatorics/named_groups.pyc
${PYSITELIB}/sympy/combinatorics/named_groups.pyo
${PYSITELIB}/sympy/combinatorics/partitions.py
${PYSITELIB}/sympy/combinatorics/partitions.pyc
${PYSITELIB}/sympy/combinatorics/partitions.pyo
${PYSITELIB}/sympy/combinatorics/perm_groups.py
${PYSITELIB}/sympy/combinatorics/perm_groups.pyc
${PYSITELIB}/sympy/combinatorics/perm_groups.pyo
${PYSITELIB}/sympy/combinatorics/permutations.py
${PYSITELIB}/sympy/combinatorics/permutations.pyc
${PYSITELIB}/sympy/combinatorics/permutations.pyo
${PYSITELIB}/sympy/combinatorics/polyhedron.py
${PYSITELIB}/sympy/combinatorics/polyhedron.pyc
${PYSITELIB}/sympy/combinatorics/polyhedron.pyo
${PYSITELIB}/sympy/combinatorics/prufer.py
${PYSITELIB}/sympy/combinatorics/prufer.pyc
${PYSITELIB}/sympy/combinatorics/prufer.pyo
${PYSITELIB}/sympy/combinatorics/rewritingsystem.py
${PYSITELIB}/sympy/combinatorics/rewritingsystem.pyc
${PYSITELIB}/sympy/combinatorics/rewritingsystem.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/combinatorics/subsets.py
${PYSITELIB}/sympy/combinatorics/subsets.pyc
${PYSITELIB}/sympy/combinatorics/subsets.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/combinatorics/tensor_can.py
${PYSITELIB}/sympy/combinatorics/tensor_can.pyc
${PYSITELIB}/sympy/combinatorics/tensor_can.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/combinatorics/tests/__init__.py
${PYSITELIB}/sympy/combinatorics/tests/__init__.pyc
${PYSITELIB}/sympy/combinatorics/tests/__init__.pyo
${PYSITELIB}/sympy/combinatorics/tests/test_coset_table.py
${PYSITELIB}/sympy/combinatorics/tests/test_coset_table.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_coset_table.pyo
${PYSITELIB}/sympy/combinatorics/tests/test_fp_groups.py
${PYSITELIB}/sympy/combinatorics/tests/test_fp_groups.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_fp_groups.pyo
${PYSITELIB}/sympy/combinatorics/tests/test_free_groups.py
${PYSITELIB}/sympy/combinatorics/tests/test_free_groups.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_free_groups.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/combinatorics/tests/test_generators.py
${PYSITELIB}/sympy/combinatorics/tests/test_generators.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_generators.pyo
${PYSITELIB}/sympy/combinatorics/tests/test_graycode.py
${PYSITELIB}/sympy/combinatorics/tests/test_graycode.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_graycode.pyo
${PYSITELIB}/sympy/combinatorics/tests/test_group_constructs.py
${PYSITELIB}/sympy/combinatorics/tests/test_group_constructs.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_group_constructs.pyo
${PYSITELIB}/sympy/combinatorics/tests/test_homomorphisms.py
${PYSITELIB}/sympy/combinatorics/tests/test_homomorphisms.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_homomorphisms.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/combinatorics/tests/test_named_groups.py
${PYSITELIB}/sympy/combinatorics/tests/test_named_groups.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_named_groups.pyo
${PYSITELIB}/sympy/combinatorics/tests/test_partitions.py
${PYSITELIB}/sympy/combinatorics/tests/test_partitions.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_partitions.pyo
${PYSITELIB}/sympy/combinatorics/tests/test_perm_groups.py
${PYSITELIB}/sympy/combinatorics/tests/test_perm_groups.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_perm_groups.pyo
${PYSITELIB}/sympy/combinatorics/tests/test_permutations.py
${PYSITELIB}/sympy/combinatorics/tests/test_permutations.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_permutations.pyo
${PYSITELIB}/sympy/combinatorics/tests/test_polyhedron.py
${PYSITELIB}/sympy/combinatorics/tests/test_polyhedron.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_polyhedron.pyo
${PYSITELIB}/sympy/combinatorics/tests/test_prufer.py
${PYSITELIB}/sympy/combinatorics/tests/test_prufer.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_prufer.pyo
${PYSITELIB}/sympy/combinatorics/tests/test_rewriting.py
${PYSITELIB}/sympy/combinatorics/tests/test_rewriting.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_rewriting.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/combinatorics/tests/test_subsets.py
${PYSITELIB}/sympy/combinatorics/tests/test_subsets.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_subsets.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/combinatorics/tests/test_tensor_can.py
${PYSITELIB}/sympy/combinatorics/tests/test_tensor_can.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_tensor_can.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/combinatorics/tests/test_testutil.py
${PYSITELIB}/sympy/combinatorics/tests/test_testutil.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_testutil.pyo
${PYSITELIB}/sympy/combinatorics/tests/test_util.py
${PYSITELIB}/sympy/combinatorics/tests/test_util.pyc
${PYSITELIB}/sympy/combinatorics/tests/test_util.pyo
${PYSITELIB}/sympy/combinatorics/testutil.py
${PYSITELIB}/sympy/combinatorics/testutil.pyc
${PYSITELIB}/sympy/combinatorics/testutil.pyo
${PYSITELIB}/sympy/combinatorics/util.py
${PYSITELIB}/sympy/combinatorics/util.pyc
${PYSITELIB}/sympy/combinatorics/util.pyo
${PYSITELIB}/sympy/concrete/__init__.py
${PYSITELIB}/sympy/concrete/__init__.pyc
${PYSITELIB}/sympy/concrete/__init__.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/concrete/delta.py
${PYSITELIB}/sympy/concrete/delta.pyc
${PYSITELIB}/sympy/concrete/delta.pyo
${PYSITELIB}/sympy/concrete/expr_with_intlimits.py
${PYSITELIB}/sympy/concrete/expr_with_intlimits.pyc
${PYSITELIB}/sympy/concrete/expr_with_intlimits.pyo
${PYSITELIB}/sympy/concrete/expr_with_limits.py
${PYSITELIB}/sympy/concrete/expr_with_limits.pyc
${PYSITELIB}/sympy/concrete/expr_with_limits.pyo
${PYSITELIB}/sympy/concrete/gosper.py
${PYSITELIB}/sympy/concrete/gosper.pyc
${PYSITELIB}/sympy/concrete/gosper.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/concrete/guess.py
${PYSITELIB}/sympy/concrete/guess.pyc
${PYSITELIB}/sympy/concrete/guess.pyo
${PYSITELIB}/sympy/concrete/products.py
${PYSITELIB}/sympy/concrete/products.pyc
${PYSITELIB}/sympy/concrete/products.pyo
${PYSITELIB}/sympy/concrete/summations.py
${PYSITELIB}/sympy/concrete/summations.pyc
${PYSITELIB}/sympy/concrete/summations.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/concrete/tests/__init__.py
${PYSITELIB}/sympy/concrete/tests/__init__.pyc
${PYSITELIB}/sympy/concrete/tests/__init__.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/concrete/tests/test_delta.py
${PYSITELIB}/sympy/concrete/tests/test_delta.pyc
${PYSITELIB}/sympy/concrete/tests/test_delta.pyo
${PYSITELIB}/sympy/concrete/tests/test_gosper.py
${PYSITELIB}/sympy/concrete/tests/test_gosper.pyc
${PYSITELIB}/sympy/concrete/tests/test_gosper.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/concrete/tests/test_guess.py
${PYSITELIB}/sympy/concrete/tests/test_guess.pyc
${PYSITELIB}/sympy/concrete/tests/test_guess.pyo
${PYSITELIB}/sympy/concrete/tests/test_products.py
${PYSITELIB}/sympy/concrete/tests/test_products.pyc
${PYSITELIB}/sympy/concrete/tests/test_products.pyo
${PYSITELIB}/sympy/concrete/tests/test_sums_products.py
${PYSITELIB}/sympy/concrete/tests/test_sums_products.pyc
${PYSITELIB}/sympy/concrete/tests/test_sums_products.pyo
${PYSITELIB}/sympy/conftest.py
${PYSITELIB}/sympy/conftest.pyc
${PYSITELIB}/sympy/conftest.pyo
${PYSITELIB}/sympy/core/__init__.py
${PYSITELIB}/sympy/core/__init__.pyc
${PYSITELIB}/sympy/core/__init__.pyo
${PYSITELIB}/sympy/core/add.py
${PYSITELIB}/sympy/core/add.pyc
${PYSITELIB}/sympy/core/add.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/core/alphabets.py
${PYSITELIB}/sympy/core/alphabets.pyc
${PYSITELIB}/sympy/core/alphabets.pyo
${PYSITELIB}/sympy/core/assumptions.py
${PYSITELIB}/sympy/core/assumptions.pyc
${PYSITELIB}/sympy/core/assumptions.pyo
${PYSITELIB}/sympy/core/backend.py
${PYSITELIB}/sympy/core/backend.pyc
${PYSITELIB}/sympy/core/backend.pyo
${PYSITELIB}/sympy/core/basic.py
${PYSITELIB}/sympy/core/basic.pyc
${PYSITELIB}/sympy/core/basic.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/core/benchmarks/__init__.py
${PYSITELIB}/sympy/core/benchmarks/__init__.pyc
${PYSITELIB}/sympy/core/benchmarks/__init__.pyo
${PYSITELIB}/sympy/core/benchmarks/bench_arit.py
${PYSITELIB}/sympy/core/benchmarks/bench_arit.pyc
${PYSITELIB}/sympy/core/benchmarks/bench_arit.pyo
${PYSITELIB}/sympy/core/benchmarks/bench_assumptions.py
${PYSITELIB}/sympy/core/benchmarks/bench_assumptions.pyc
${PYSITELIB}/sympy/core/benchmarks/bench_assumptions.pyo
${PYSITELIB}/sympy/core/benchmarks/bench_basic.py
${PYSITELIB}/sympy/core/benchmarks/bench_basic.pyc
${PYSITELIB}/sympy/core/benchmarks/bench_basic.pyo
${PYSITELIB}/sympy/core/benchmarks/bench_expand.py
${PYSITELIB}/sympy/core/benchmarks/bench_expand.pyc
${PYSITELIB}/sympy/core/benchmarks/bench_expand.pyo
${PYSITELIB}/sympy/core/benchmarks/bench_numbers.py
${PYSITELIB}/sympy/core/benchmarks/bench_numbers.pyc
${PYSITELIB}/sympy/core/benchmarks/bench_numbers.pyo
${PYSITELIB}/sympy/core/benchmarks/bench_sympify.py
${PYSITELIB}/sympy/core/benchmarks/bench_sympify.pyc
${PYSITELIB}/sympy/core/benchmarks/bench_sympify.pyo
${PYSITELIB}/sympy/core/cache.py
${PYSITELIB}/sympy/core/cache.pyc
${PYSITELIB}/sympy/core/cache.pyo
${PYSITELIB}/sympy/core/compatibility.py
${PYSITELIB}/sympy/core/compatibility.pyc
${PYSITELIB}/sympy/core/compatibility.pyo
${PYSITELIB}/sympy/core/containers.py
${PYSITELIB}/sympy/core/containers.pyc
${PYSITELIB}/sympy/core/containers.pyo
${PYSITELIB}/sympy/core/core.py
${PYSITELIB}/sympy/core/core.pyc
${PYSITELIB}/sympy/core/core.pyo
${PYSITELIB}/sympy/core/coreerrors.py
${PYSITELIB}/sympy/core/coreerrors.pyc
${PYSITELIB}/sympy/core/coreerrors.pyo
${PYSITELIB}/sympy/core/decorators.py
${PYSITELIB}/sympy/core/decorators.pyc
${PYSITELIB}/sympy/core/decorators.pyo
${PYSITELIB}/sympy/core/evalf.py
${PYSITELIB}/sympy/core/evalf.pyc
${PYSITELIB}/sympy/core/evalf.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/core/evaluate.py
${PYSITELIB}/sympy/core/evaluate.pyc
${PYSITELIB}/sympy/core/evaluate.pyo
${PYSITELIB}/sympy/core/expr.py
${PYSITELIB}/sympy/core/expr.pyc
${PYSITELIB}/sympy/core/expr.pyo
${PYSITELIB}/sympy/core/exprtools.py
${PYSITELIB}/sympy/core/exprtools.pyc
${PYSITELIB}/sympy/core/exprtools.pyo
${PYSITELIB}/sympy/core/facts.py
${PYSITELIB}/sympy/core/facts.pyc
${PYSITELIB}/sympy/core/facts.pyo
${PYSITELIB}/sympy/core/function.py
${PYSITELIB}/sympy/core/function.pyc
${PYSITELIB}/sympy/core/function.pyo
${PYSITELIB}/sympy/core/logic.py
${PYSITELIB}/sympy/core/logic.pyc
${PYSITELIB}/sympy/core/logic.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/core/mod.py
${PYSITELIB}/sympy/core/mod.pyc
${PYSITELIB}/sympy/core/mod.pyo
${PYSITELIB}/sympy/core/mul.py
${PYSITELIB}/sympy/core/mul.pyc
${PYSITELIB}/sympy/core/mul.pyo
${PYSITELIB}/sympy/core/multidimensional.py
${PYSITELIB}/sympy/core/multidimensional.pyc
${PYSITELIB}/sympy/core/multidimensional.pyo
${PYSITELIB}/sympy/core/numbers.py
${PYSITELIB}/sympy/core/numbers.pyc
${PYSITELIB}/sympy/core/numbers.pyo
${PYSITELIB}/sympy/core/operations.py
${PYSITELIB}/sympy/core/operations.pyc
${PYSITELIB}/sympy/core/operations.pyo
${PYSITELIB}/sympy/core/power.py
${PYSITELIB}/sympy/core/power.pyc
${PYSITELIB}/sympy/core/power.pyo
${PYSITELIB}/sympy/core/relational.py
${PYSITELIB}/sympy/core/relational.pyc
${PYSITELIB}/sympy/core/relational.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/core/rules.py
${PYSITELIB}/sympy/core/rules.pyc
${PYSITELIB}/sympy/core/rules.pyo
${PYSITELIB}/sympy/core/singleton.py
${PYSITELIB}/sympy/core/singleton.pyc
${PYSITELIB}/sympy/core/singleton.pyo
${PYSITELIB}/sympy/core/symbol.py
${PYSITELIB}/sympy/core/symbol.pyc
${PYSITELIB}/sympy/core/symbol.pyo
${PYSITELIB}/sympy/core/sympify.py
${PYSITELIB}/sympy/core/sympify.pyc
${PYSITELIB}/sympy/core/sympify.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/core/tests/__init__.py
${PYSITELIB}/sympy/core/tests/__init__.pyc
${PYSITELIB}/sympy/core/tests/__init__.pyo
${PYSITELIB}/sympy/core/tests/test_args.py
${PYSITELIB}/sympy/core/tests/test_args.pyc
${PYSITELIB}/sympy/core/tests/test_args.pyo
${PYSITELIB}/sympy/core/tests/test_arit.py
${PYSITELIB}/sympy/core/tests/test_arit.pyc
${PYSITELIB}/sympy/core/tests/test_arit.pyo
${PYSITELIB}/sympy/core/tests/test_assumptions.py
${PYSITELIB}/sympy/core/tests/test_assumptions.pyc
${PYSITELIB}/sympy/core/tests/test_assumptions.pyo
${PYSITELIB}/sympy/core/tests/test_basic.py
${PYSITELIB}/sympy/core/tests/test_basic.pyc
${PYSITELIB}/sympy/core/tests/test_basic.pyo
${PYSITELIB}/sympy/core/tests/test_cache.py
${PYSITELIB}/sympy/core/tests/test_cache.pyc
${PYSITELIB}/sympy/core/tests/test_cache.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/core/tests/test_compatibility.py
${PYSITELIB}/sympy/core/tests/test_compatibility.pyc
${PYSITELIB}/sympy/core/tests/test_compatibility.pyo
${PYSITELIB}/sympy/core/tests/test_complex.py
${PYSITELIB}/sympy/core/tests/test_complex.pyc
${PYSITELIB}/sympy/core/tests/test_complex.pyo
${PYSITELIB}/sympy/core/tests/test_constructor_postprocessor.py
${PYSITELIB}/sympy/core/tests/test_constructor_postprocessor.pyc
${PYSITELIB}/sympy/core/tests/test_constructor_postprocessor.pyo
${PYSITELIB}/sympy/core/tests/test_containers.py
${PYSITELIB}/sympy/core/tests/test_containers.pyc
${PYSITELIB}/sympy/core/tests/test_containers.pyo
${PYSITELIB}/sympy/core/tests/test_count_ops.py
${PYSITELIB}/sympy/core/tests/test_count_ops.pyc
${PYSITELIB}/sympy/core/tests/test_count_ops.pyo
${PYSITELIB}/sympy/core/tests/test_diff.py
${PYSITELIB}/sympy/core/tests/test_diff.pyc
${PYSITELIB}/sympy/core/tests/test_diff.pyo
${PYSITELIB}/sympy/core/tests/test_equal.py
${PYSITELIB}/sympy/core/tests/test_equal.pyc
${PYSITELIB}/sympy/core/tests/test_equal.pyo
${PYSITELIB}/sympy/core/tests/test_eval.py
${PYSITELIB}/sympy/core/tests/test_eval.pyc
${PYSITELIB}/sympy/core/tests/test_eval.pyo
${PYSITELIB}/sympy/core/tests/test_evalf.py
${PYSITELIB}/sympy/core/tests/test_evalf.pyc
${PYSITELIB}/sympy/core/tests/test_evalf.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/core/tests/test_evaluate.py
${PYSITELIB}/sympy/core/tests/test_evaluate.pyc
${PYSITELIB}/sympy/core/tests/test_evaluate.pyo
${PYSITELIB}/sympy/core/tests/test_expand.py
${PYSITELIB}/sympy/core/tests/test_expand.pyc
${PYSITELIB}/sympy/core/tests/test_expand.pyo
${PYSITELIB}/sympy/core/tests/test_expr.py
${PYSITELIB}/sympy/core/tests/test_expr.pyc
${PYSITELIB}/sympy/core/tests/test_expr.pyo
${PYSITELIB}/sympy/core/tests/test_exprtools.py
${PYSITELIB}/sympy/core/tests/test_exprtools.pyc
${PYSITELIB}/sympy/core/tests/test_exprtools.pyo
${PYSITELIB}/sympy/core/tests/test_facts.py
${PYSITELIB}/sympy/core/tests/test_facts.pyc
${PYSITELIB}/sympy/core/tests/test_facts.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/core/tests/test_function.py
${PYSITELIB}/sympy/core/tests/test_function.pyc
${PYSITELIB}/sympy/core/tests/test_function.pyo
${PYSITELIB}/sympy/core/tests/test_logic.py
${PYSITELIB}/sympy/core/tests/test_logic.pyc
${PYSITELIB}/sympy/core/tests/test_logic.pyo
${PYSITELIB}/sympy/core/tests/test_match.py
${PYSITELIB}/sympy/core/tests/test_match.pyc
${PYSITELIB}/sympy/core/tests/test_match.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/core/tests/test_noncommutative.py
${PYSITELIB}/sympy/core/tests/test_noncommutative.pyc
${PYSITELIB}/sympy/core/tests/test_noncommutative.pyo
${PYSITELIB}/sympy/core/tests/test_numbers.py
${PYSITELIB}/sympy/core/tests/test_numbers.pyc
${PYSITELIB}/sympy/core/tests/test_numbers.pyo
${PYSITELIB}/sympy/core/tests/test_operations.py
${PYSITELIB}/sympy/core/tests/test_operations.pyc
${PYSITELIB}/sympy/core/tests/test_operations.pyo
${PYSITELIB}/sympy/core/tests/test_power.py
${PYSITELIB}/sympy/core/tests/test_power.pyc
${PYSITELIB}/sympy/core/tests/test_power.pyo
${PYSITELIB}/sympy/core/tests/test_priority.py
${PYSITELIB}/sympy/core/tests/test_priority.pyc
${PYSITELIB}/sympy/core/tests/test_priority.pyo
${PYSITELIB}/sympy/core/tests/test_relational.py
${PYSITELIB}/sympy/core/tests/test_relational.pyc
${PYSITELIB}/sympy/core/tests/test_relational.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/core/tests/test_rules.py
${PYSITELIB}/sympy/core/tests/test_rules.pyc
${PYSITELIB}/sympy/core/tests/test_rules.pyo
${PYSITELIB}/sympy/core/tests/test_singleton.py
${PYSITELIB}/sympy/core/tests/test_singleton.pyc
${PYSITELIB}/sympy/core/tests/test_singleton.pyo
${PYSITELIB}/sympy/core/tests/test_subs.py
${PYSITELIB}/sympy/core/tests/test_subs.pyc
${PYSITELIB}/sympy/core/tests/test_subs.pyo
${PYSITELIB}/sympy/core/tests/test_symbol.py
${PYSITELIB}/sympy/core/tests/test_symbol.pyc
${PYSITELIB}/sympy/core/tests/test_symbol.pyo
${PYSITELIB}/sympy/core/tests/test_sympify.py
${PYSITELIB}/sympy/core/tests/test_sympify.pyc
${PYSITELIB}/sympy/core/tests/test_sympify.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/core/tests/test_trace.py
${PYSITELIB}/sympy/core/tests/test_trace.pyc
${PYSITELIB}/sympy/core/tests/test_trace.pyo
${PYSITELIB}/sympy/core/tests/test_truediv.py
${PYSITELIB}/sympy/core/tests/test_truediv.pyc
${PYSITELIB}/sympy/core/tests/test_truediv.pyo
${PYSITELIB}/sympy/core/tests/test_var.py
${PYSITELIB}/sympy/core/tests/test_var.pyc
${PYSITELIB}/sympy/core/tests/test_var.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/core/trace.py
${PYSITELIB}/sympy/core/trace.pyc
${PYSITELIB}/sympy/core/trace.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/crypto/__init__.py
${PYSITELIB}/sympy/crypto/__init__.pyc
${PYSITELIB}/sympy/crypto/__init__.pyo
${PYSITELIB}/sympy/crypto/crypto.py
${PYSITELIB}/sympy/crypto/crypto.pyc
${PYSITELIB}/sympy/crypto/crypto.pyo
${PYSITELIB}/sympy/crypto/tests/__init__.py
${PYSITELIB}/sympy/crypto/tests/__init__.pyc
${PYSITELIB}/sympy/crypto/tests/__init__.pyo
${PYSITELIB}/sympy/crypto/tests/test_crypto.py
${PYSITELIB}/sympy/crypto/tests/test_crypto.pyc
${PYSITELIB}/sympy/crypto/tests/test_crypto.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/deprecated/__init__.py
${PYSITELIB}/sympy/deprecated/__init__.pyc
${PYSITELIB}/sympy/deprecated/__init__.pyo
${PYSITELIB}/sympy/deprecated/class_registry.py
${PYSITELIB}/sympy/deprecated/class_registry.pyc
${PYSITELIB}/sympy/deprecated/class_registry.pyo
${PYSITELIB}/sympy/deprecated/tests/__init__.py
${PYSITELIB}/sympy/deprecated/tests/__init__.pyc
${PYSITELIB}/sympy/deprecated/tests/__init__.pyo
${PYSITELIB}/sympy/deprecated/tests/test_class_registry.py
${PYSITELIB}/sympy/deprecated/tests/test_class_registry.pyc
${PYSITELIB}/sympy/deprecated/tests/test_class_registry.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/diffgeom/__init__.py
${PYSITELIB}/sympy/diffgeom/__init__.pyc
${PYSITELIB}/sympy/diffgeom/__init__.pyo
${PYSITELIB}/sympy/diffgeom/diffgeom.py
${PYSITELIB}/sympy/diffgeom/diffgeom.pyc
${PYSITELIB}/sympy/diffgeom/diffgeom.pyo
${PYSITELIB}/sympy/diffgeom/rn.py
${PYSITELIB}/sympy/diffgeom/rn.pyc
${PYSITELIB}/sympy/diffgeom/rn.pyo
${PYSITELIB}/sympy/diffgeom/tests/__init__.py
${PYSITELIB}/sympy/diffgeom/tests/__init__.pyc
${PYSITELIB}/sympy/diffgeom/tests/__init__.pyo
${PYSITELIB}/sympy/diffgeom/tests/test_class_structure.py
${PYSITELIB}/sympy/diffgeom/tests/test_class_structure.pyc
${PYSITELIB}/sympy/diffgeom/tests/test_class_structure.pyo
${PYSITELIB}/sympy/diffgeom/tests/test_diffgeom.py
${PYSITELIB}/sympy/diffgeom/tests/test_diffgeom.pyc
${PYSITELIB}/sympy/diffgeom/tests/test_diffgeom.pyo
${PYSITELIB}/sympy/diffgeom/tests/test_function_diffgeom_book.py
${PYSITELIB}/sympy/diffgeom/tests/test_function_diffgeom_book.pyc
${PYSITELIB}/sympy/diffgeom/tests/test_function_diffgeom_book.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/diffgeom/tests/test_hyperbolic_space.py
${PYSITELIB}/sympy/diffgeom/tests/test_hyperbolic_space.pyc
${PYSITELIB}/sympy/diffgeom/tests/test_hyperbolic_space.pyo
${PYSITELIB}/sympy/discrete/__init__.py
${PYSITELIB}/sympy/discrete/__init__.pyc
${PYSITELIB}/sympy/discrete/__init__.pyo
${PYSITELIB}/sympy/discrete/convolution.py
${PYSITELIB}/sympy/discrete/convolution.pyc
${PYSITELIB}/sympy/discrete/convolution.pyo
${PYSITELIB}/sympy/discrete/recurrence.py
${PYSITELIB}/sympy/discrete/recurrence.pyc
${PYSITELIB}/sympy/discrete/recurrence.pyo
${PYSITELIB}/sympy/discrete/tests/__init__.py
${PYSITELIB}/sympy/discrete/tests/__init__.pyc
${PYSITELIB}/sympy/discrete/tests/__init__.pyo
${PYSITELIB}/sympy/discrete/tests/test_convolution.py
${PYSITELIB}/sympy/discrete/tests/test_convolution.pyc
${PYSITELIB}/sympy/discrete/tests/test_convolution.pyo
${PYSITELIB}/sympy/discrete/tests/test_recurrence.py
${PYSITELIB}/sympy/discrete/tests/test_recurrence.pyc
${PYSITELIB}/sympy/discrete/tests/test_recurrence.pyo
${PYSITELIB}/sympy/discrete/tests/test_transforms.py
${PYSITELIB}/sympy/discrete/tests/test_transforms.pyc
${PYSITELIB}/sympy/discrete/tests/test_transforms.pyo
${PYSITELIB}/sympy/discrete/transforms.py
${PYSITELIB}/sympy/discrete/transforms.pyc
${PYSITELIB}/sympy/discrete/transforms.pyo
${PYSITELIB}/sympy/external/__init__.py
${PYSITELIB}/sympy/external/__init__.pyc
${PYSITELIB}/sympy/external/__init__.pyo
${PYSITELIB}/sympy/external/importtools.py
${PYSITELIB}/sympy/external/importtools.pyc
${PYSITELIB}/sympy/external/importtools.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/external/tests/__init__.py
${PYSITELIB}/sympy/external/tests/__init__.pyc
${PYSITELIB}/sympy/external/tests/__init__.pyo
${PYSITELIB}/sympy/external/tests/test_autowrap.py
${PYSITELIB}/sympy/external/tests/test_autowrap.pyc
${PYSITELIB}/sympy/external/tests/test_autowrap.pyo
${PYSITELIB}/sympy/external/tests/test_codegen.py
${PYSITELIB}/sympy/external/tests/test_codegen.pyc
${PYSITELIB}/sympy/external/tests/test_codegen.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/external/tests/test_importtools.py
${PYSITELIB}/sympy/external/tests/test_importtools.pyc
${PYSITELIB}/sympy/external/tests/test_importtools.pyo
${PYSITELIB}/sympy/external/tests/test_numpy.py
${PYSITELIB}/sympy/external/tests/test_numpy.pyc
${PYSITELIB}/sympy/external/tests/test_numpy.pyo
${PYSITELIB}/sympy/external/tests/test_sage.py
${PYSITELIB}/sympy/external/tests/test_sage.pyc
${PYSITELIB}/sympy/external/tests/test_sage.pyo
${PYSITELIB}/sympy/external/tests/test_scipy.py
${PYSITELIB}/sympy/external/tests/test_scipy.pyc
${PYSITELIB}/sympy/external/tests/test_scipy.pyo
${PYSITELIB}/sympy/functions/__init__.py
${PYSITELIB}/sympy/functions/__init__.pyc
${PYSITELIB}/sympy/functions/__init__.pyo
${PYSITELIB}/sympy/functions/combinatorial/__init__.py
${PYSITELIB}/sympy/functions/combinatorial/__init__.pyc
${PYSITELIB}/sympy/functions/combinatorial/__init__.pyo
${PYSITELIB}/sympy/functions/combinatorial/factorials.py
${PYSITELIB}/sympy/functions/combinatorial/factorials.pyc
${PYSITELIB}/sympy/functions/combinatorial/factorials.pyo
${PYSITELIB}/sympy/functions/combinatorial/numbers.py
${PYSITELIB}/sympy/functions/combinatorial/numbers.pyc
${PYSITELIB}/sympy/functions/combinatorial/numbers.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/functions/combinatorial/tests/__init__.py
${PYSITELIB}/sympy/functions/combinatorial/tests/__init__.pyc
${PYSITELIB}/sympy/functions/combinatorial/tests/__init__.pyo
${PYSITELIB}/sympy/functions/combinatorial/tests/test_comb_factorials.py
${PYSITELIB}/sympy/functions/combinatorial/tests/test_comb_factorials.pyc
${PYSITELIB}/sympy/functions/combinatorial/tests/test_comb_factorials.pyo
${PYSITELIB}/sympy/functions/combinatorial/tests/test_comb_numbers.py
${PYSITELIB}/sympy/functions/combinatorial/tests/test_comb_numbers.pyc
${PYSITELIB}/sympy/functions/combinatorial/tests/test_comb_numbers.pyo
${PYSITELIB}/sympy/functions/elementary/__init__.py
${PYSITELIB}/sympy/functions/elementary/__init__.pyc
${PYSITELIB}/sympy/functions/elementary/__init__.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/functions/elementary/benchmarks/__init__.py
${PYSITELIB}/sympy/functions/elementary/benchmarks/__init__.pyc
${PYSITELIB}/sympy/functions/elementary/benchmarks/__init__.pyo
${PYSITELIB}/sympy/functions/elementary/benchmarks/bench_exp.py
${PYSITELIB}/sympy/functions/elementary/benchmarks/bench_exp.pyc
${PYSITELIB}/sympy/functions/elementary/benchmarks/bench_exp.pyo
${PYSITELIB}/sympy/functions/elementary/complexes.py
${PYSITELIB}/sympy/functions/elementary/complexes.pyc
${PYSITELIB}/sympy/functions/elementary/complexes.pyo
${PYSITELIB}/sympy/functions/elementary/exponential.py
${PYSITELIB}/sympy/functions/elementary/exponential.pyc
${PYSITELIB}/sympy/functions/elementary/exponential.pyo
${PYSITELIB}/sympy/functions/elementary/hyperbolic.py
${PYSITELIB}/sympy/functions/elementary/hyperbolic.pyc
${PYSITELIB}/sympy/functions/elementary/hyperbolic.pyo
${PYSITELIB}/sympy/functions/elementary/integers.py
${PYSITELIB}/sympy/functions/elementary/integers.pyc
${PYSITELIB}/sympy/functions/elementary/integers.pyo
${PYSITELIB}/sympy/functions/elementary/miscellaneous.py
${PYSITELIB}/sympy/functions/elementary/miscellaneous.pyc
${PYSITELIB}/sympy/functions/elementary/miscellaneous.pyo
${PYSITELIB}/sympy/functions/elementary/piecewise.py
${PYSITELIB}/sympy/functions/elementary/piecewise.pyc
${PYSITELIB}/sympy/functions/elementary/piecewise.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/functions/elementary/tests/__init__.py
${PYSITELIB}/sympy/functions/elementary/tests/__init__.pyc
${PYSITELIB}/sympy/functions/elementary/tests/__init__.pyo
${PYSITELIB}/sympy/functions/elementary/tests/test_complexes.py
${PYSITELIB}/sympy/functions/elementary/tests/test_complexes.pyc
${PYSITELIB}/sympy/functions/elementary/tests/test_complexes.pyo
${PYSITELIB}/sympy/functions/elementary/tests/test_exponential.py
${PYSITELIB}/sympy/functions/elementary/tests/test_exponential.pyc
${PYSITELIB}/sympy/functions/elementary/tests/test_exponential.pyo
${PYSITELIB}/sympy/functions/elementary/tests/test_hyperbolic.py
${PYSITELIB}/sympy/functions/elementary/tests/test_hyperbolic.pyc
${PYSITELIB}/sympy/functions/elementary/tests/test_hyperbolic.pyo
${PYSITELIB}/sympy/functions/elementary/tests/test_integers.py
${PYSITELIB}/sympy/functions/elementary/tests/test_integers.pyc
${PYSITELIB}/sympy/functions/elementary/tests/test_integers.pyo
${PYSITELIB}/sympy/functions/elementary/tests/test_interface.py
${PYSITELIB}/sympy/functions/elementary/tests/test_interface.pyc
${PYSITELIB}/sympy/functions/elementary/tests/test_interface.pyo
${PYSITELIB}/sympy/functions/elementary/tests/test_miscellaneous.py
${PYSITELIB}/sympy/functions/elementary/tests/test_miscellaneous.pyc
${PYSITELIB}/sympy/functions/elementary/tests/test_miscellaneous.pyo
${PYSITELIB}/sympy/functions/elementary/tests/test_piecewise.py
${PYSITELIB}/sympy/functions/elementary/tests/test_piecewise.pyc
${PYSITELIB}/sympy/functions/elementary/tests/test_piecewise.pyo
${PYSITELIB}/sympy/functions/elementary/tests/test_trigonometric.py
${PYSITELIB}/sympy/functions/elementary/tests/test_trigonometric.pyc
${PYSITELIB}/sympy/functions/elementary/tests/test_trigonometric.pyo
${PYSITELIB}/sympy/functions/elementary/trigonometric.py
${PYSITELIB}/sympy/functions/elementary/trigonometric.pyc
${PYSITELIB}/sympy/functions/elementary/trigonometric.pyo
${PYSITELIB}/sympy/functions/special/__init__.py
${PYSITELIB}/sympy/functions/special/__init__.pyc
${PYSITELIB}/sympy/functions/special/__init__.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/functions/special/benchmarks/__init__.py
${PYSITELIB}/sympy/functions/special/benchmarks/__init__.pyc
${PYSITELIB}/sympy/functions/special/benchmarks/__init__.pyo
${PYSITELIB}/sympy/functions/special/benchmarks/bench_special.py
${PYSITELIB}/sympy/functions/special/benchmarks/bench_special.pyc
${PYSITELIB}/sympy/functions/special/benchmarks/bench_special.pyo
${PYSITELIB}/sympy/functions/special/bessel.py
${PYSITELIB}/sympy/functions/special/bessel.pyc
${PYSITELIB}/sympy/functions/special/bessel.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/functions/special/beta_functions.py
${PYSITELIB}/sympy/functions/special/beta_functions.pyc
${PYSITELIB}/sympy/functions/special/beta_functions.pyo
${PYSITELIB}/sympy/functions/special/bsplines.py
${PYSITELIB}/sympy/functions/special/bsplines.pyc
${PYSITELIB}/sympy/functions/special/bsplines.pyo
${PYSITELIB}/sympy/functions/special/delta_functions.py
${PYSITELIB}/sympy/functions/special/delta_functions.pyc
${PYSITELIB}/sympy/functions/special/delta_functions.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/functions/special/elliptic_integrals.py
${PYSITELIB}/sympy/functions/special/elliptic_integrals.pyc
${PYSITELIB}/sympy/functions/special/elliptic_integrals.pyo
${PYSITELIB}/sympy/functions/special/error_functions.py
${PYSITELIB}/sympy/functions/special/error_functions.pyc
${PYSITELIB}/sympy/functions/special/error_functions.pyo
${PYSITELIB}/sympy/functions/special/gamma_functions.py
${PYSITELIB}/sympy/functions/special/gamma_functions.pyc
${PYSITELIB}/sympy/functions/special/gamma_functions.pyo
${PYSITELIB}/sympy/functions/special/hyper.py
${PYSITELIB}/sympy/functions/special/hyper.pyc
${PYSITELIB}/sympy/functions/special/hyper.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/functions/special/mathieu_functions.py
${PYSITELIB}/sympy/functions/special/mathieu_functions.pyc
${PYSITELIB}/sympy/functions/special/mathieu_functions.pyo
${PYSITELIB}/sympy/functions/special/polynomials.py
${PYSITELIB}/sympy/functions/special/polynomials.pyc
${PYSITELIB}/sympy/functions/special/polynomials.pyo
${PYSITELIB}/sympy/functions/special/singularity_functions.py
${PYSITELIB}/sympy/functions/special/singularity_functions.pyc
${PYSITELIB}/sympy/functions/special/singularity_functions.pyo
${PYSITELIB}/sympy/functions/special/spherical_harmonics.py
${PYSITELIB}/sympy/functions/special/spherical_harmonics.pyc
${PYSITELIB}/sympy/functions/special/spherical_harmonics.pyo
${PYSITELIB}/sympy/functions/special/tensor_functions.py
${PYSITELIB}/sympy/functions/special/tensor_functions.pyc
${PYSITELIB}/sympy/functions/special/tensor_functions.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/functions/special/tests/__init__.py
${PYSITELIB}/sympy/functions/special/tests/__init__.pyc
${PYSITELIB}/sympy/functions/special/tests/__init__.pyo
${PYSITELIB}/sympy/functions/special/tests/test_bessel.py
${PYSITELIB}/sympy/functions/special/tests/test_bessel.pyc
${PYSITELIB}/sympy/functions/special/tests/test_bessel.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/functions/special/tests/test_beta_functions.py
${PYSITELIB}/sympy/functions/special/tests/test_beta_functions.pyc
${PYSITELIB}/sympy/functions/special/tests/test_beta_functions.pyo
${PYSITELIB}/sympy/functions/special/tests/test_bsplines.py
${PYSITELIB}/sympy/functions/special/tests/test_bsplines.pyc
${PYSITELIB}/sympy/functions/special/tests/test_bsplines.pyo
${PYSITELIB}/sympy/functions/special/tests/test_delta_functions.py
${PYSITELIB}/sympy/functions/special/tests/test_delta_functions.pyc
${PYSITELIB}/sympy/functions/special/tests/test_delta_functions.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/functions/special/tests/test_elliptic_integrals.py
${PYSITELIB}/sympy/functions/special/tests/test_elliptic_integrals.pyc
${PYSITELIB}/sympy/functions/special/tests/test_elliptic_integrals.pyo
${PYSITELIB}/sympy/functions/special/tests/test_error_functions.py
${PYSITELIB}/sympy/functions/special/tests/test_error_functions.pyc
${PYSITELIB}/sympy/functions/special/tests/test_error_functions.pyo
${PYSITELIB}/sympy/functions/special/tests/test_gamma_functions.py
${PYSITELIB}/sympy/functions/special/tests/test_gamma_functions.pyc
${PYSITELIB}/sympy/functions/special/tests/test_gamma_functions.pyo
${PYSITELIB}/sympy/functions/special/tests/test_hyper.py
${PYSITELIB}/sympy/functions/special/tests/test_hyper.pyc
${PYSITELIB}/sympy/functions/special/tests/test_hyper.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/functions/special/tests/test_mathieu.py
${PYSITELIB}/sympy/functions/special/tests/test_mathieu.pyc
${PYSITELIB}/sympy/functions/special/tests/test_mathieu.pyo
${PYSITELIB}/sympy/functions/special/tests/test_singularity_functions.py
${PYSITELIB}/sympy/functions/special/tests/test_singularity_functions.pyc
${PYSITELIB}/sympy/functions/special/tests/test_singularity_functions.pyo
${PYSITELIB}/sympy/functions/special/tests/test_spec_polynomials.py
${PYSITELIB}/sympy/functions/special/tests/test_spec_polynomials.pyc
${PYSITELIB}/sympy/functions/special/tests/test_spec_polynomials.pyo
${PYSITELIB}/sympy/functions/special/tests/test_spherical_harmonics.py
${PYSITELIB}/sympy/functions/special/tests/test_spherical_harmonics.pyc
${PYSITELIB}/sympy/functions/special/tests/test_spherical_harmonics.pyo
${PYSITELIB}/sympy/functions/special/tests/test_tensor_functions.py
${PYSITELIB}/sympy/functions/special/tests/test_tensor_functions.pyc
${PYSITELIB}/sympy/functions/special/tests/test_tensor_functions.pyo
${PYSITELIB}/sympy/functions/special/tests/test_zeta_functions.py
${PYSITELIB}/sympy/functions/special/tests/test_zeta_functions.pyc
${PYSITELIB}/sympy/functions/special/tests/test_zeta_functions.pyo
${PYSITELIB}/sympy/functions/special/zeta_functions.py
${PYSITELIB}/sympy/functions/special/zeta_functions.pyc
${PYSITELIB}/sympy/functions/special/zeta_functions.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/galgebra.py
${PYSITELIB}/sympy/galgebra.pyc
${PYSITELIB}/sympy/galgebra.pyo
${PYSITELIB}/sympy/geometry/__init__.py
${PYSITELIB}/sympy/geometry/__init__.pyc
${PYSITELIB}/sympy/geometry/__init__.pyo
${PYSITELIB}/sympy/geometry/curve.py
${PYSITELIB}/sympy/geometry/curve.pyc
${PYSITELIB}/sympy/geometry/curve.pyo
${PYSITELIB}/sympy/geometry/ellipse.py
${PYSITELIB}/sympy/geometry/ellipse.pyc
${PYSITELIB}/sympy/geometry/ellipse.pyo
${PYSITELIB}/sympy/geometry/entity.py
${PYSITELIB}/sympy/geometry/entity.pyc
${PYSITELIB}/sympy/geometry/entity.pyo
${PYSITELIB}/sympy/geometry/exceptions.py
${PYSITELIB}/sympy/geometry/exceptions.pyc
${PYSITELIB}/sympy/geometry/exceptions.pyo
${PYSITELIB}/sympy/geometry/line.py
${PYSITELIB}/sympy/geometry/line.pyc
${PYSITELIB}/sympy/geometry/line.pyo
${PYSITELIB}/sympy/geometry/parabola.py
${PYSITELIB}/sympy/geometry/parabola.pyc
${PYSITELIB}/sympy/geometry/parabola.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/geometry/plane.py
${PYSITELIB}/sympy/geometry/plane.pyc
${PYSITELIB}/sympy/geometry/plane.pyo
${PYSITELIB}/sympy/geometry/point.py
${PYSITELIB}/sympy/geometry/point.pyc
${PYSITELIB}/sympy/geometry/point.pyo
${PYSITELIB}/sympy/geometry/polygon.py
${PYSITELIB}/sympy/geometry/polygon.pyc
${PYSITELIB}/sympy/geometry/polygon.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/geometry/tests/__init__.py
${PYSITELIB}/sympy/geometry/tests/__init__.pyc
${PYSITELIB}/sympy/geometry/tests/__init__.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/geometry/tests/test_curve.py
${PYSITELIB}/sympy/geometry/tests/test_curve.pyc
${PYSITELIB}/sympy/geometry/tests/test_curve.pyo
${PYSITELIB}/sympy/geometry/tests/test_ellipse.py
${PYSITELIB}/sympy/geometry/tests/test_ellipse.pyc
${PYSITELIB}/sympy/geometry/tests/test_ellipse.pyo
${PYSITELIB}/sympy/geometry/tests/test_entity.py
${PYSITELIB}/sympy/geometry/tests/test_entity.pyc
${PYSITELIB}/sympy/geometry/tests/test_entity.pyo
${PYSITELIB}/sympy/geometry/tests/test_geometrysets.py
${PYSITELIB}/sympy/geometry/tests/test_geometrysets.pyc
${PYSITELIB}/sympy/geometry/tests/test_geometrysets.pyo
${PYSITELIB}/sympy/geometry/tests/test_line.py
${PYSITELIB}/sympy/geometry/tests/test_line.pyc
${PYSITELIB}/sympy/geometry/tests/test_line.pyo
${PYSITELIB}/sympy/geometry/tests/test_parabola.py
${PYSITELIB}/sympy/geometry/tests/test_parabola.pyc
${PYSITELIB}/sympy/geometry/tests/test_parabola.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/geometry/tests/test_plane.py
${PYSITELIB}/sympy/geometry/tests/test_plane.pyc
${PYSITELIB}/sympy/geometry/tests/test_plane.pyo
${PYSITELIB}/sympy/geometry/tests/test_point.py
${PYSITELIB}/sympy/geometry/tests/test_point.pyc
${PYSITELIB}/sympy/geometry/tests/test_point.pyo
${PYSITELIB}/sympy/geometry/tests/test_polygon.py
${PYSITELIB}/sympy/geometry/tests/test_polygon.pyc
${PYSITELIB}/sympy/geometry/tests/test_polygon.pyo
${PYSITELIB}/sympy/geometry/tests/test_util.py
${PYSITELIB}/sympy/geometry/tests/test_util.pyc
${PYSITELIB}/sympy/geometry/tests/test_util.pyo
${PYSITELIB}/sympy/geometry/util.py
${PYSITELIB}/sympy/geometry/util.pyc
${PYSITELIB}/sympy/geometry/util.pyo
${PYSITELIB}/sympy/holonomic/__init__.py
${PYSITELIB}/sympy/holonomic/__init__.pyc
${PYSITELIB}/sympy/holonomic/__init__.pyo
${PYSITELIB}/sympy/holonomic/holonomic.py
${PYSITELIB}/sympy/holonomic/holonomic.pyc
${PYSITELIB}/sympy/holonomic/holonomic.pyo
${PYSITELIB}/sympy/holonomic/holonomicerrors.py
${PYSITELIB}/sympy/holonomic/holonomicerrors.pyc
${PYSITELIB}/sympy/holonomic/holonomicerrors.pyo
${PYSITELIB}/sympy/holonomic/linearsolver.py
${PYSITELIB}/sympy/holonomic/linearsolver.pyc
${PYSITELIB}/sympy/holonomic/linearsolver.pyo
${PYSITELIB}/sympy/holonomic/numerical.py
${PYSITELIB}/sympy/holonomic/numerical.pyc
${PYSITELIB}/sympy/holonomic/numerical.pyo
${PYSITELIB}/sympy/holonomic/recurrence.py
${PYSITELIB}/sympy/holonomic/recurrence.pyc
${PYSITELIB}/sympy/holonomic/recurrence.pyo
${PYSITELIB}/sympy/holonomic/tests/test_holonomic.py
${PYSITELIB}/sympy/holonomic/tests/test_holonomic.pyc
${PYSITELIB}/sympy/holonomic/tests/test_holonomic.pyo
${PYSITELIB}/sympy/holonomic/tests/test_recurrence.py
${PYSITELIB}/sympy/holonomic/tests/test_recurrence.pyc
${PYSITELIB}/sympy/holonomic/tests/test_recurrence.pyo
${PYSITELIB}/sympy/integrals/__init__.py
${PYSITELIB}/sympy/integrals/__init__.pyc
${PYSITELIB}/sympy/integrals/__init__.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/integrals/benchmarks/__init__.py
${PYSITELIB}/sympy/integrals/benchmarks/__init__.pyc
${PYSITELIB}/sympy/integrals/benchmarks/__init__.pyo
${PYSITELIB}/sympy/integrals/benchmarks/bench_integrate.py
${PYSITELIB}/sympy/integrals/benchmarks/bench_integrate.pyc
${PYSITELIB}/sympy/integrals/benchmarks/bench_integrate.pyo
${PYSITELIB}/sympy/integrals/benchmarks/bench_trigintegrate.py
${PYSITELIB}/sympy/integrals/benchmarks/bench_trigintegrate.pyc
${PYSITELIB}/sympy/integrals/benchmarks/bench_trigintegrate.pyo
${PYSITELIB}/sympy/integrals/deltafunctions.py
${PYSITELIB}/sympy/integrals/deltafunctions.pyc
${PYSITELIB}/sympy/integrals/deltafunctions.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/integrals/heurisch.py
${PYSITELIB}/sympy/integrals/heurisch.pyc
${PYSITELIB}/sympy/integrals/heurisch.pyo
${PYSITELIB}/sympy/integrals/integrals.py
${PYSITELIB}/sympy/integrals/integrals.pyc
${PYSITELIB}/sympy/integrals/integrals.pyo
${PYSITELIB}/sympy/integrals/intpoly.py
${PYSITELIB}/sympy/integrals/intpoly.pyc
${PYSITELIB}/sympy/integrals/intpoly.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/integrals/manualintegrate.py
${PYSITELIB}/sympy/integrals/manualintegrate.pyc
${PYSITELIB}/sympy/integrals/manualintegrate.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/integrals/meijerint.py
${PYSITELIB}/sympy/integrals/meijerint.pyc
${PYSITELIB}/sympy/integrals/meijerint.pyo
${PYSITELIB}/sympy/integrals/meijerint_doc.py
${PYSITELIB}/sympy/integrals/meijerint_doc.pyc
${PYSITELIB}/sympy/integrals/meijerint_doc.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/integrals/prde.py
${PYSITELIB}/sympy/integrals/prde.pyc
${PYSITELIB}/sympy/integrals/prde.pyo
${PYSITELIB}/sympy/integrals/quadrature.py
${PYSITELIB}/sympy/integrals/quadrature.pyc
${PYSITELIB}/sympy/integrals/quadrature.pyo
${PYSITELIB}/sympy/integrals/rationaltools.py
${PYSITELIB}/sympy/integrals/rationaltools.pyc
${PYSITELIB}/sympy/integrals/rationaltools.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/integrals/rde.py
${PYSITELIB}/sympy/integrals/rde.pyc
${PYSITELIB}/sympy/integrals/rde.pyo
${PYSITELIB}/sympy/integrals/risch.py
${PYSITELIB}/sympy/integrals/risch.pyc
${PYSITELIB}/sympy/integrals/risch.pyo
${PYSITELIB}/sympy/integrals/rubi/__init__.py
${PYSITELIB}/sympy/integrals/rubi/__init__.pyc
${PYSITELIB}/sympy/integrals/rubi/__init__.pyo
${PYSITELIB}/sympy/integrals/rubi/parsetools/__init__.py
${PYSITELIB}/sympy/integrals/rubi/parsetools/__init__.pyc
${PYSITELIB}/sympy/integrals/rubi/parsetools/__init__.pyo
${PYSITELIB}/sympy/integrals/rubi/parsetools/header.py.txt
${PYSITELIB}/sympy/integrals/rubi/parsetools/parse.py
${PYSITELIB}/sympy/integrals/rubi/parsetools/parse.pyc
${PYSITELIB}/sympy/integrals/rubi/parsetools/parse.pyo
${PYSITELIB}/sympy/integrals/rubi/parsetools/tests/__init__.py
${PYSITELIB}/sympy/integrals/rubi/parsetools/tests/__init__.pyc
${PYSITELIB}/sympy/integrals/rubi/parsetools/tests/__init__.pyo
${PYSITELIB}/sympy/integrals/rubi/parsetools/tests/test_parse.py
${PYSITELIB}/sympy/integrals/rubi/parsetools/tests/test_parse.pyc
${PYSITELIB}/sympy/integrals/rubi/parsetools/tests/test_parse.pyo
${PYSITELIB}/sympy/integrals/rubi/rubi.py
${PYSITELIB}/sympy/integrals/rubi/rubi.pyc
${PYSITELIB}/sympy/integrals/rubi/rubi.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/__init__.py
${PYSITELIB}/sympy/integrals/rubi/rules/__init__.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/__init__.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/binomial_products.py
${PYSITELIB}/sympy/integrals/rubi/rules/binomial_products.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/binomial_products.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/exponential.py
${PYSITELIB}/sympy/integrals/rubi/rules/exponential.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/exponential.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/hyperbolic.py
${PYSITELIB}/sympy/integrals/rubi/rules/hyperbolic.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/hyperbolic.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/integrand_simplification.py
${PYSITELIB}/sympy/integrals/rubi/rules/integrand_simplification.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/integrand_simplification.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/inverse_hyperbolic.py
${PYSITELIB}/sympy/integrals/rubi/rules/inverse_hyperbolic.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/inverse_hyperbolic.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/inverse_trig.py
${PYSITELIB}/sympy/integrals/rubi/rules/inverse_trig.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/inverse_trig.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/linear_products.py
${PYSITELIB}/sympy/integrals/rubi/rules/linear_products.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/linear_products.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/logarithms.py
${PYSITELIB}/sympy/integrals/rubi/rules/logarithms.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/logarithms.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/miscellaneous_algebraic.py
${PYSITELIB}/sympy/integrals/rubi/rules/miscellaneous_algebraic.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/miscellaneous_algebraic.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/miscellaneous_integration.py
${PYSITELIB}/sympy/integrals/rubi/rules/miscellaneous_integration.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/miscellaneous_integration.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/miscellaneous_trig.py
${PYSITELIB}/sympy/integrals/rubi/rules/miscellaneous_trig.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/miscellaneous_trig.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/piecewise_linear.py
${PYSITELIB}/sympy/integrals/rubi/rules/piecewise_linear.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/piecewise_linear.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/quadratic_products.py
${PYSITELIB}/sympy/integrals/rubi/rules/quadratic_products.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/quadratic_products.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/secant.py
${PYSITELIB}/sympy/integrals/rubi/rules/secant.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/secant.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/sine.py
${PYSITELIB}/sympy/integrals/rubi/rules/sine.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/sine.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/tangent.py
${PYSITELIB}/sympy/integrals/rubi/rules/tangent.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/tangent.pyo
${PYSITELIB}/sympy/integrals/rubi/rules/trinomial_products.py
${PYSITELIB}/sympy/integrals/rubi/rules/trinomial_products.pyc
${PYSITELIB}/sympy/integrals/rubi/rules/trinomial_products.pyo
${PYSITELIB}/sympy/integrals/rubi/symbol.py
${PYSITELIB}/sympy/integrals/rubi/symbol.pyc
${PYSITELIB}/sympy/integrals/rubi/symbol.pyo
${PYSITELIB}/sympy/integrals/rubi/tests/__init__.py
${PYSITELIB}/sympy/integrals/rubi/tests/__init__.pyc
${PYSITELIB}/sympy/integrals/rubi/tests/__init__.pyo
${PYSITELIB}/sympy/integrals/rubi/tests/test_1_2.py
${PYSITELIB}/sympy/integrals/rubi/tests/test_1_2.pyc
${PYSITELIB}/sympy/integrals/rubi/tests/test_1_2.pyo
${PYSITELIB}/sympy/integrals/rubi/tests/test_1_3.py
${PYSITELIB}/sympy/integrals/rubi/tests/test_1_3.pyc
${PYSITELIB}/sympy/integrals/rubi/tests/test_1_3.pyo
${PYSITELIB}/sympy/integrals/rubi/tests/test_1_4.py
${PYSITELIB}/sympy/integrals/rubi/tests/test_1_4.pyc
${PYSITELIB}/sympy/integrals/rubi/tests/test_1_4.pyo
${PYSITELIB}/sympy/integrals/rubi/tests/test_rubi_integrate.py
${PYSITELIB}/sympy/integrals/rubi/tests/test_rubi_integrate.pyc
${PYSITELIB}/sympy/integrals/rubi/tests/test_rubi_integrate.pyo
${PYSITELIB}/sympy/integrals/rubi/tests/test_utility_function.py
${PYSITELIB}/sympy/integrals/rubi/tests/test_utility_function.pyc
${PYSITELIB}/sympy/integrals/rubi/tests/test_utility_function.pyo
${PYSITELIB}/sympy/integrals/rubi/utility_function.py
${PYSITELIB}/sympy/integrals/rubi/utility_function.pyc
${PYSITELIB}/sympy/integrals/rubi/utility_function.pyo
${PYSITELIB}/sympy/integrals/singularityfunctions.py
${PYSITELIB}/sympy/integrals/singularityfunctions.pyc
${PYSITELIB}/sympy/integrals/singularityfunctions.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/integrals/tests/__init__.py
${PYSITELIB}/sympy/integrals/tests/__init__.pyc
${PYSITELIB}/sympy/integrals/tests/__init__.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/integrals/tests/test_deltafunctions.py
${PYSITELIB}/sympy/integrals/tests/test_deltafunctions.pyc
${PYSITELIB}/sympy/integrals/tests/test_deltafunctions.pyo
${PYSITELIB}/sympy/integrals/tests/test_failing_integrals.py
${PYSITELIB}/sympy/integrals/tests/test_failing_integrals.pyc
${PYSITELIB}/sympy/integrals/tests/test_failing_integrals.pyo
${PYSITELIB}/sympy/integrals/tests/test_heurisch.py
${PYSITELIB}/sympy/integrals/tests/test_heurisch.pyc
${PYSITELIB}/sympy/integrals/tests/test_heurisch.pyo
${PYSITELIB}/sympy/integrals/tests/test_integrals.py
${PYSITELIB}/sympy/integrals/tests/test_integrals.pyc
${PYSITELIB}/sympy/integrals/tests/test_integrals.pyo
${PYSITELIB}/sympy/integrals/tests/test_intpoly.py
${PYSITELIB}/sympy/integrals/tests/test_intpoly.pyc
${PYSITELIB}/sympy/integrals/tests/test_intpoly.pyo
${PYSITELIB}/sympy/integrals/tests/test_lineintegrals.py
${PYSITELIB}/sympy/integrals/tests/test_lineintegrals.pyc
${PYSITELIB}/sympy/integrals/tests/test_lineintegrals.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/integrals/tests/test_manual.py
${PYSITELIB}/sympy/integrals/tests/test_manual.pyc
${PYSITELIB}/sympy/integrals/tests/test_manual.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/integrals/tests/test_meijerint.py
${PYSITELIB}/sympy/integrals/tests/test_meijerint.pyc
${PYSITELIB}/sympy/integrals/tests/test_meijerint.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/integrals/tests/test_prde.py
${PYSITELIB}/sympy/integrals/tests/test_prde.pyc
${PYSITELIB}/sympy/integrals/tests/test_prde.pyo
${PYSITELIB}/sympy/integrals/tests/test_quadrature.py
${PYSITELIB}/sympy/integrals/tests/test_quadrature.pyc
${PYSITELIB}/sympy/integrals/tests/test_quadrature.pyo
${PYSITELIB}/sympy/integrals/tests/test_rationaltools.py
${PYSITELIB}/sympy/integrals/tests/test_rationaltools.pyc
${PYSITELIB}/sympy/integrals/tests/test_rationaltools.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/integrals/tests/test_rde.py
${PYSITELIB}/sympy/integrals/tests/test_rde.pyc
${PYSITELIB}/sympy/integrals/tests/test_rde.pyo
${PYSITELIB}/sympy/integrals/tests/test_risch.py
${PYSITELIB}/sympy/integrals/tests/test_risch.pyc
${PYSITELIB}/sympy/integrals/tests/test_risch.pyo
${PYSITELIB}/sympy/integrals/tests/test_singularityfunctions.py
${PYSITELIB}/sympy/integrals/tests/test_singularityfunctions.pyc
${PYSITELIB}/sympy/integrals/tests/test_singularityfunctions.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/integrals/tests/test_transforms.py
${PYSITELIB}/sympy/integrals/tests/test_transforms.pyc
${PYSITELIB}/sympy/integrals/tests/test_transforms.pyo
${PYSITELIB}/sympy/integrals/tests/test_trigonometry.py
${PYSITELIB}/sympy/integrals/tests/test_trigonometry.pyc
${PYSITELIB}/sympy/integrals/tests/test_trigonometry.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/integrals/transforms.py
${PYSITELIB}/sympy/integrals/transforms.pyc
${PYSITELIB}/sympy/integrals/transforms.pyo
${PYSITELIB}/sympy/integrals/trigonometry.py
${PYSITELIB}/sympy/integrals/trigonometry.pyc
${PYSITELIB}/sympy/integrals/trigonometry.pyo
${PYSITELIB}/sympy/interactive/__init__.py
${PYSITELIB}/sympy/interactive/__init__.pyc
${PYSITELIB}/sympy/interactive/__init__.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/interactive/ipythonprinting.py
${PYSITELIB}/sympy/interactive/ipythonprinting.pyc
${PYSITELIB}/sympy/interactive/ipythonprinting.pyo
${PYSITELIB}/sympy/interactive/printing.py
${PYSITELIB}/sympy/interactive/printing.pyc
${PYSITELIB}/sympy/interactive/printing.pyo
${PYSITELIB}/sympy/interactive/session.py
${PYSITELIB}/sympy/interactive/session.pyc
${PYSITELIB}/sympy/interactive/session.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/interactive/tests/__init__.py
${PYSITELIB}/sympy/interactive/tests/__init__.pyc
${PYSITELIB}/sympy/interactive/tests/__init__.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/interactive/tests/test_interactive.py
${PYSITELIB}/sympy/interactive/tests/test_interactive.pyc
${PYSITELIB}/sympy/interactive/tests/test_interactive.pyo
${PYSITELIB}/sympy/interactive/tests/test_ipython.py
${PYSITELIB}/sympy/interactive/tests/test_ipython.pyc
${PYSITELIB}/sympy/interactive/tests/test_ipython.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/interactive/tests/test_ipythonprinting.py
${PYSITELIB}/sympy/interactive/tests/test_ipythonprinting.pyc
${PYSITELIB}/sympy/interactive/tests/test_ipythonprinting.pyo
${PYSITELIB}/sympy/liealgebras/__init__.py
${PYSITELIB}/sympy/liealgebras/__init__.pyc
${PYSITELIB}/sympy/liealgebras/__init__.pyo
${PYSITELIB}/sympy/liealgebras/cartan_matrix.py
${PYSITELIB}/sympy/liealgebras/cartan_matrix.pyc
${PYSITELIB}/sympy/liealgebras/cartan_matrix.pyo
${PYSITELIB}/sympy/liealgebras/cartan_type.py
${PYSITELIB}/sympy/liealgebras/cartan_type.pyc
${PYSITELIB}/sympy/liealgebras/cartan_type.pyo
${PYSITELIB}/sympy/liealgebras/dynkin_diagram.py
${PYSITELIB}/sympy/liealgebras/dynkin_diagram.pyc
${PYSITELIB}/sympy/liealgebras/dynkin_diagram.pyo
${PYSITELIB}/sympy/liealgebras/root_system.py
${PYSITELIB}/sympy/liealgebras/root_system.pyc
${PYSITELIB}/sympy/liealgebras/root_system.pyo
${PYSITELIB}/sympy/liealgebras/tests/__init__.py
${PYSITELIB}/sympy/liealgebras/tests/__init__.pyc
${PYSITELIB}/sympy/liealgebras/tests/__init__.pyo
${PYSITELIB}/sympy/liealgebras/tests/test_cartan_matrix.py
${PYSITELIB}/sympy/liealgebras/tests/test_cartan_matrix.pyc
${PYSITELIB}/sympy/liealgebras/tests/test_cartan_matrix.pyo
${PYSITELIB}/sympy/liealgebras/tests/test_cartan_type.py
${PYSITELIB}/sympy/liealgebras/tests/test_cartan_type.pyc
${PYSITELIB}/sympy/liealgebras/tests/test_cartan_type.pyo
${PYSITELIB}/sympy/liealgebras/tests/test_dynkin_diagram.py
${PYSITELIB}/sympy/liealgebras/tests/test_dynkin_diagram.pyc
${PYSITELIB}/sympy/liealgebras/tests/test_dynkin_diagram.pyo
${PYSITELIB}/sympy/liealgebras/tests/test_root_system.py
${PYSITELIB}/sympy/liealgebras/tests/test_root_system.pyc
${PYSITELIB}/sympy/liealgebras/tests/test_root_system.pyo
${PYSITELIB}/sympy/liealgebras/tests/test_type_A.py
${PYSITELIB}/sympy/liealgebras/tests/test_type_A.pyc
${PYSITELIB}/sympy/liealgebras/tests/test_type_A.pyo
${PYSITELIB}/sympy/liealgebras/tests/test_type_B.py
${PYSITELIB}/sympy/liealgebras/tests/test_type_B.pyc
${PYSITELIB}/sympy/liealgebras/tests/test_type_B.pyo
${PYSITELIB}/sympy/liealgebras/tests/test_type_C.py
${PYSITELIB}/sympy/liealgebras/tests/test_type_C.pyc
${PYSITELIB}/sympy/liealgebras/tests/test_type_C.pyo
${PYSITELIB}/sympy/liealgebras/tests/test_type_D.py
${PYSITELIB}/sympy/liealgebras/tests/test_type_D.pyc
${PYSITELIB}/sympy/liealgebras/tests/test_type_D.pyo
${PYSITELIB}/sympy/liealgebras/tests/test_type_E.py
${PYSITELIB}/sympy/liealgebras/tests/test_type_E.pyc
${PYSITELIB}/sympy/liealgebras/tests/test_type_E.pyo
${PYSITELIB}/sympy/liealgebras/tests/test_type_F.py
${PYSITELIB}/sympy/liealgebras/tests/test_type_F.pyc
${PYSITELIB}/sympy/liealgebras/tests/test_type_F.pyo
${PYSITELIB}/sympy/liealgebras/tests/test_type_G.py
${PYSITELIB}/sympy/liealgebras/tests/test_type_G.pyc
${PYSITELIB}/sympy/liealgebras/tests/test_type_G.pyo
${PYSITELIB}/sympy/liealgebras/tests/test_weyl_group.py
${PYSITELIB}/sympy/liealgebras/tests/test_weyl_group.pyc
${PYSITELIB}/sympy/liealgebras/tests/test_weyl_group.pyo
${PYSITELIB}/sympy/liealgebras/type_a.py
${PYSITELIB}/sympy/liealgebras/type_a.pyc
${PYSITELIB}/sympy/liealgebras/type_a.pyo
${PYSITELIB}/sympy/liealgebras/type_b.py
${PYSITELIB}/sympy/liealgebras/type_b.pyc
${PYSITELIB}/sympy/liealgebras/type_b.pyo
${PYSITELIB}/sympy/liealgebras/type_c.py
${PYSITELIB}/sympy/liealgebras/type_c.pyc
${PYSITELIB}/sympy/liealgebras/type_c.pyo
${PYSITELIB}/sympy/liealgebras/type_d.py
${PYSITELIB}/sympy/liealgebras/type_d.pyc
${PYSITELIB}/sympy/liealgebras/type_d.pyo
${PYSITELIB}/sympy/liealgebras/type_e.py
${PYSITELIB}/sympy/liealgebras/type_e.pyc
${PYSITELIB}/sympy/liealgebras/type_e.pyo
${PYSITELIB}/sympy/liealgebras/type_f.py
${PYSITELIB}/sympy/liealgebras/type_f.pyc
${PYSITELIB}/sympy/liealgebras/type_f.pyo
${PYSITELIB}/sympy/liealgebras/type_g.py
${PYSITELIB}/sympy/liealgebras/type_g.pyc
${PYSITELIB}/sympy/liealgebras/type_g.pyo
${PYSITELIB}/sympy/liealgebras/weyl_group.py
${PYSITELIB}/sympy/liealgebras/weyl_group.pyc
${PYSITELIB}/sympy/liealgebras/weyl_group.pyo
${PYSITELIB}/sympy/logic/__init__.py
${PYSITELIB}/sympy/logic/__init__.pyc
${PYSITELIB}/sympy/logic/__init__.pyo
${PYSITELIB}/sympy/logic/algorithms/__init__.py
${PYSITELIB}/sympy/logic/algorithms/__init__.pyc
${PYSITELIB}/sympy/logic/algorithms/__init__.pyo
${PYSITELIB}/sympy/logic/algorithms/dpll.py
${PYSITELIB}/sympy/logic/algorithms/dpll.pyc
${PYSITELIB}/sympy/logic/algorithms/dpll.pyo
${PYSITELIB}/sympy/logic/algorithms/dpll2.py
${PYSITELIB}/sympy/logic/algorithms/dpll2.pyc
${PYSITELIB}/sympy/logic/algorithms/dpll2.pyo
${PYSITELIB}/sympy/logic/boolalg.py
${PYSITELIB}/sympy/logic/boolalg.pyc
${PYSITELIB}/sympy/logic/boolalg.pyo
${PYSITELIB}/sympy/logic/inference.py
${PYSITELIB}/sympy/logic/inference.pyc
${PYSITELIB}/sympy/logic/inference.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/logic/tests/__init__.py
${PYSITELIB}/sympy/logic/tests/__init__.pyc
${PYSITELIB}/sympy/logic/tests/__init__.pyo
${PYSITELIB}/sympy/logic/tests/test_boolalg.py
${PYSITELIB}/sympy/logic/tests/test_boolalg.pyc
${PYSITELIB}/sympy/logic/tests/test_boolalg.pyo
${PYSITELIB}/sympy/logic/tests/test_dimacs.py
${PYSITELIB}/sympy/logic/tests/test_dimacs.pyc
${PYSITELIB}/sympy/logic/tests/test_dimacs.pyo
${PYSITELIB}/sympy/logic/tests/test_inference.py
${PYSITELIB}/sympy/logic/tests/test_inference.pyc
${PYSITELIB}/sympy/logic/tests/test_inference.pyo
${PYSITELIB}/sympy/logic/utilities/__init__.py
${PYSITELIB}/sympy/logic/utilities/__init__.pyc
${PYSITELIB}/sympy/logic/utilities/__init__.pyo
${PYSITELIB}/sympy/logic/utilities/dimacs.py
${PYSITELIB}/sympy/logic/utilities/dimacs.pyc
${PYSITELIB}/sympy/logic/utilities/dimacs.pyo
${PYSITELIB}/sympy/matrices/__init__.py
${PYSITELIB}/sympy/matrices/__init__.pyc
${PYSITELIB}/sympy/matrices/__init__.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/matrices/benchmarks/__init__.py
${PYSITELIB}/sympy/matrices/benchmarks/__init__.pyc
${PYSITELIB}/sympy/matrices/benchmarks/__init__.pyo
${PYSITELIB}/sympy/matrices/benchmarks/bench_matrix.py
${PYSITELIB}/sympy/matrices/benchmarks/bench_matrix.pyc
${PYSITELIB}/sympy/matrices/benchmarks/bench_matrix.pyo
${PYSITELIB}/sympy/matrices/common.py
${PYSITELIB}/sympy/matrices/common.pyc
${PYSITELIB}/sympy/matrices/common.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/dense.py
${PYSITELIB}/sympy/matrices/dense.pyc
${PYSITELIB}/sympy/matrices/dense.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/matrices/densearith.py
${PYSITELIB}/sympy/matrices/densearith.pyc
${PYSITELIB}/sympy/matrices/densearith.pyo
${PYSITELIB}/sympy/matrices/densesolve.py
${PYSITELIB}/sympy/matrices/densesolve.pyc
${PYSITELIB}/sympy/matrices/densesolve.pyo
${PYSITELIB}/sympy/matrices/densetools.py
${PYSITELIB}/sympy/matrices/densetools.pyc
${PYSITELIB}/sympy/matrices/densetools.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/matrices/expressions/__init__.py
${PYSITELIB}/sympy/matrices/expressions/__init__.pyc
${PYSITELIB}/sympy/matrices/expressions/__init__.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/expressions/adjoint.py
${PYSITELIB}/sympy/matrices/expressions/adjoint.pyc
${PYSITELIB}/sympy/matrices/expressions/adjoint.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/matrices/expressions/blockmatrix.py
${PYSITELIB}/sympy/matrices/expressions/blockmatrix.pyc
${PYSITELIB}/sympy/matrices/expressions/blockmatrix.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/expressions/determinant.py
${PYSITELIB}/sympy/matrices/expressions/determinant.pyc
${PYSITELIB}/sympy/matrices/expressions/determinant.pyo
${PYSITELIB}/sympy/matrices/expressions/diagonal.py
${PYSITELIB}/sympy/matrices/expressions/diagonal.pyc
${PYSITELIB}/sympy/matrices/expressions/diagonal.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/matrices/expressions/dotproduct.py
${PYSITELIB}/sympy/matrices/expressions/dotproduct.pyc
${PYSITELIB}/sympy/matrices/expressions/dotproduct.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/expressions/factorizations.py
${PYSITELIB}/sympy/matrices/expressions/factorizations.pyc
${PYSITELIB}/sympy/matrices/expressions/factorizations.pyo
${PYSITELIB}/sympy/matrices/expressions/fourier.py
${PYSITELIB}/sympy/matrices/expressions/fourier.pyc
${PYSITELIB}/sympy/matrices/expressions/fourier.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/matrices/expressions/funcmatrix.py
${PYSITELIB}/sympy/matrices/expressions/funcmatrix.pyc
${PYSITELIB}/sympy/matrices/expressions/funcmatrix.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/expressions/hadamard.py
${PYSITELIB}/sympy/matrices/expressions/hadamard.pyc
${PYSITELIB}/sympy/matrices/expressions/hadamard.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/matrices/expressions/inverse.py
${PYSITELIB}/sympy/matrices/expressions/inverse.pyc
${PYSITELIB}/sympy/matrices/expressions/inverse.pyo
${PYSITELIB}/sympy/matrices/expressions/kronecker.py
${PYSITELIB}/sympy/matrices/expressions/kronecker.pyc
${PYSITELIB}/sympy/matrices/expressions/kronecker.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/matrices/expressions/matadd.py
${PYSITELIB}/sympy/matrices/expressions/matadd.pyc
${PYSITELIB}/sympy/matrices/expressions/matadd.pyo
${PYSITELIB}/sympy/matrices/expressions/matexpr.py
${PYSITELIB}/sympy/matrices/expressions/matexpr.pyc
${PYSITELIB}/sympy/matrices/expressions/matexpr.pyo
${PYSITELIB}/sympy/matrices/expressions/matmul.py
${PYSITELIB}/sympy/matrices/expressions/matmul.pyc
${PYSITELIB}/sympy/matrices/expressions/matmul.pyo
${PYSITELIB}/sympy/matrices/expressions/matpow.py
${PYSITELIB}/sympy/matrices/expressions/matpow.pyc
${PYSITELIB}/sympy/matrices/expressions/matpow.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/expressions/slice.py
${PYSITELIB}/sympy/matrices/expressions/slice.pyc
${PYSITELIB}/sympy/matrices/expressions/slice.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/matrices/expressions/tests/__init__.py
${PYSITELIB}/sympy/matrices/expressions/tests/__init__.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/__init__.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/expressions/tests/test_adjoint.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_adjoint.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_adjoint.pyo
${PYSITELIB}/sympy/matrices/expressions/tests/test_blockmatrix.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_blockmatrix.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_blockmatrix.pyo
${PYSITELIB}/sympy/matrices/expressions/tests/test_derivatives.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_derivatives.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_derivatives.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/expressions/tests/test_determinant.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_determinant.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_determinant.pyo
${PYSITELIB}/sympy/matrices/expressions/tests/test_diagonal.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_diagonal.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_diagonal.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/matrices/expressions/tests/test_dotproduct.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_dotproduct.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_dotproduct.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/expressions/tests/test_factorizations.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_factorizations.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_factorizations.pyo
${PYSITELIB}/sympy/matrices/expressions/tests/test_fourier.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_fourier.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_fourier.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/matrices/expressions/tests/test_funcmatrix.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_funcmatrix.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_funcmatrix.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/expressions/tests/test_hadamard.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_hadamard.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_hadamard.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/matrices/expressions/tests/test_indexing.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_indexing.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_indexing.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/expressions/tests/test_inverse.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_inverse.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_inverse.pyo
${PYSITELIB}/sympy/matrices/expressions/tests/test_kronecker.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_kronecker.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_kronecker.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/expressions/tests/test_matadd.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_matadd.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_matadd.pyo
${PYSITELIB}/sympy/matrices/expressions/tests/test_matexpr.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_matexpr.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_matexpr.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/expressions/tests/test_matmul.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_matmul.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_matmul.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/matrices/expressions/tests/test_matpow.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_matpow.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_matpow.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/expressions/tests/test_slice.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_slice.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_slice.pyo
${PYSITELIB}/sympy/matrices/expressions/tests/test_trace.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_trace.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_trace.pyo
${PYSITELIB}/sympy/matrices/expressions/tests/test_transpose.py
${PYSITELIB}/sympy/matrices/expressions/tests/test_transpose.pyc
${PYSITELIB}/sympy/matrices/expressions/tests/test_transpose.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/matrices/expressions/trace.py
${PYSITELIB}/sympy/matrices/expressions/trace.pyc
${PYSITELIB}/sympy/matrices/expressions/trace.pyo
${PYSITELIB}/sympy/matrices/expressions/transpose.py
${PYSITELIB}/sympy/matrices/expressions/transpose.pyc
${PYSITELIB}/sympy/matrices/expressions/transpose.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/immutable.py
${PYSITELIB}/sympy/matrices/immutable.pyc
${PYSITELIB}/sympy/matrices/immutable.pyo
${PYSITELIB}/sympy/matrices/matrices.py
${PYSITELIB}/sympy/matrices/matrices.pyc
${PYSITELIB}/sympy/matrices/matrices.pyo
${PYSITELIB}/sympy/matrices/normalforms.py
${PYSITELIB}/sympy/matrices/normalforms.pyc
${PYSITELIB}/sympy/matrices/normalforms.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/sparse.py
${PYSITELIB}/sympy/matrices/sparse.pyc
${PYSITELIB}/sympy/matrices/sparse.pyo
${PYSITELIB}/sympy/matrices/sparsetools.py
${PYSITELIB}/sympy/matrices/sparsetools.pyc
${PYSITELIB}/sympy/matrices/sparsetools.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/matrices/tests/__init__.py
${PYSITELIB}/sympy/matrices/tests/__init__.pyc
${PYSITELIB}/sympy/matrices/tests/__init__.pyo
${PYSITELIB}/sympy/matrices/tests/test_commonmatrix.py
${PYSITELIB}/sympy/matrices/tests/test_commonmatrix.pyc
${PYSITELIB}/sympy/matrices/tests/test_commonmatrix.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/matrices/tests/test_densearith.py
${PYSITELIB}/sympy/matrices/tests/test_densearith.pyc
${PYSITELIB}/sympy/matrices/tests/test_densearith.pyo
${PYSITELIB}/sympy/matrices/tests/test_densesolve.py
${PYSITELIB}/sympy/matrices/tests/test_densesolve.pyc
${PYSITELIB}/sympy/matrices/tests/test_densesolve.pyo
${PYSITELIB}/sympy/matrices/tests/test_densetools.py
${PYSITELIB}/sympy/matrices/tests/test_densetools.pyc
${PYSITELIB}/sympy/matrices/tests/test_densetools.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/matrices/tests/test_immutable.py
${PYSITELIB}/sympy/matrices/tests/test_immutable.pyc
${PYSITELIB}/sympy/matrices/tests/test_immutable.pyo
${PYSITELIB}/sympy/matrices/tests/test_interactions.py
${PYSITELIB}/sympy/matrices/tests/test_interactions.pyc
${PYSITELIB}/sympy/matrices/tests/test_interactions.pyo
${PYSITELIB}/sympy/matrices/tests/test_matrices.py
${PYSITELIB}/sympy/matrices/tests/test_matrices.pyc
${PYSITELIB}/sympy/matrices/tests/test_matrices.pyo
${PYSITELIB}/sympy/matrices/tests/test_normalforms.py
${PYSITELIB}/sympy/matrices/tests/test_normalforms.pyc
${PYSITELIB}/sympy/matrices/tests/test_normalforms.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/matrices/tests/test_sparse.py
${PYSITELIB}/sympy/matrices/tests/test_sparse.pyc
${PYSITELIB}/sympy/matrices/tests/test_sparse.pyo
${PYSITELIB}/sympy/matrices/tests/test_sparsetools.py
${PYSITELIB}/sympy/matrices/tests/test_sparsetools.pyc
${PYSITELIB}/sympy/matrices/tests/test_sparsetools.pyo
${PYSITELIB}/sympy/multipledispatch/__init__.py
${PYSITELIB}/sympy/multipledispatch/__init__.pyc
${PYSITELIB}/sympy/multipledispatch/__init__.pyo
${PYSITELIB}/sympy/multipledispatch/conflict.py
${PYSITELIB}/sympy/multipledispatch/conflict.pyc
${PYSITELIB}/sympy/multipledispatch/conflict.pyo
${PYSITELIB}/sympy/multipledispatch/core.py
${PYSITELIB}/sympy/multipledispatch/core.pyc
${PYSITELIB}/sympy/multipledispatch/core.pyo
${PYSITELIB}/sympy/multipledispatch/dispatcher.py
${PYSITELIB}/sympy/multipledispatch/dispatcher.pyc
${PYSITELIB}/sympy/multipledispatch/dispatcher.pyo
${PYSITELIB}/sympy/multipledispatch/tests/test_conflict.py
${PYSITELIB}/sympy/multipledispatch/tests/test_conflict.pyc
${PYSITELIB}/sympy/multipledispatch/tests/test_conflict.pyo
${PYSITELIB}/sympy/multipledispatch/tests/test_core.py
${PYSITELIB}/sympy/multipledispatch/tests/test_core.pyc
${PYSITELIB}/sympy/multipledispatch/tests/test_core.pyo
${PYSITELIB}/sympy/multipledispatch/tests/test_dispatcher.py
${PYSITELIB}/sympy/multipledispatch/tests/test_dispatcher.pyc
${PYSITELIB}/sympy/multipledispatch/tests/test_dispatcher.pyo
${PYSITELIB}/sympy/multipledispatch/utils.py
${PYSITELIB}/sympy/multipledispatch/utils.pyc
${PYSITELIB}/sympy/multipledispatch/utils.pyo
${PYSITELIB}/sympy/ntheory/__init__.py
${PYSITELIB}/sympy/ntheory/__init__.pyc
${PYSITELIB}/sympy/ntheory/__init__.pyo
${PYSITELIB}/sympy/ntheory/bbp_pi.py
${PYSITELIB}/sympy/ntheory/bbp_pi.pyc
${PYSITELIB}/sympy/ntheory/bbp_pi.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/ntheory/continued_fraction.py
${PYSITELIB}/sympy/ntheory/continued_fraction.pyc
${PYSITELIB}/sympy/ntheory/continued_fraction.pyo
${PYSITELIB}/sympy/ntheory/egyptian_fraction.py
${PYSITELIB}/sympy/ntheory/egyptian_fraction.pyc
${PYSITELIB}/sympy/ntheory/egyptian_fraction.pyo
${PYSITELIB}/sympy/ntheory/factor_.py
${PYSITELIB}/sympy/ntheory/factor_.pyc
${PYSITELIB}/sympy/ntheory/factor_.pyo
${PYSITELIB}/sympy/ntheory/generate.py
${PYSITELIB}/sympy/ntheory/generate.pyc
${PYSITELIB}/sympy/ntheory/generate.pyo
${PYSITELIB}/sympy/ntheory/modular.py
${PYSITELIB}/sympy/ntheory/modular.pyc
${PYSITELIB}/sympy/ntheory/modular.pyo
${PYSITELIB}/sympy/ntheory/multinomial.py
${PYSITELIB}/sympy/ntheory/multinomial.pyc
${PYSITELIB}/sympy/ntheory/multinomial.pyo
${PYSITELIB}/sympy/ntheory/partitions_.py
${PYSITELIB}/sympy/ntheory/partitions_.pyc
${PYSITELIB}/sympy/ntheory/partitions_.pyo
${PYSITELIB}/sympy/ntheory/primetest.py
${PYSITELIB}/sympy/ntheory/primetest.pyc
${PYSITELIB}/sympy/ntheory/primetest.pyo
${PYSITELIB}/sympy/ntheory/residue_ntheory.py
${PYSITELIB}/sympy/ntheory/residue_ntheory.pyc
${PYSITELIB}/sympy/ntheory/residue_ntheory.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/ntheory/tests/__init__.py
${PYSITELIB}/sympy/ntheory/tests/__init__.pyc
${PYSITELIB}/sympy/ntheory/tests/__init__.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/ntheory/tests/test_bbp_pi.py
${PYSITELIB}/sympy/ntheory/tests/test_bbp_pi.pyc
${PYSITELIB}/sympy/ntheory/tests/test_bbp_pi.pyo
${PYSITELIB}/sympy/ntheory/tests/test_continued_fraction.py
${PYSITELIB}/sympy/ntheory/tests/test_continued_fraction.pyc
${PYSITELIB}/sympy/ntheory/tests/test_continued_fraction.pyo
${PYSITELIB}/sympy/ntheory/tests/test_egyptian_fraction.py
${PYSITELIB}/sympy/ntheory/tests/test_egyptian_fraction.pyc
${PYSITELIB}/sympy/ntheory/tests/test_egyptian_fraction.pyo
${PYSITELIB}/sympy/ntheory/tests/test_factor_.py
${PYSITELIB}/sympy/ntheory/tests/test_factor_.pyc
${PYSITELIB}/sympy/ntheory/tests/test_factor_.pyo
${PYSITELIB}/sympy/ntheory/tests/test_generate.py
${PYSITELIB}/sympy/ntheory/tests/test_generate.pyc
${PYSITELIB}/sympy/ntheory/tests/test_generate.pyo
${PYSITELIB}/sympy/ntheory/tests/test_modular.py
${PYSITELIB}/sympy/ntheory/tests/test_modular.pyc
${PYSITELIB}/sympy/ntheory/tests/test_modular.pyo
${PYSITELIB}/sympy/ntheory/tests/test_multinomial.py
${PYSITELIB}/sympy/ntheory/tests/test_multinomial.pyc
${PYSITELIB}/sympy/ntheory/tests/test_multinomial.pyo
${PYSITELIB}/sympy/ntheory/tests/test_partitions.py
${PYSITELIB}/sympy/ntheory/tests/test_partitions.pyc
${PYSITELIB}/sympy/ntheory/tests/test_partitions.pyo
${PYSITELIB}/sympy/ntheory/tests/test_primetest.py
${PYSITELIB}/sympy/ntheory/tests/test_primetest.pyc
${PYSITELIB}/sympy/ntheory/tests/test_primetest.pyo
${PYSITELIB}/sympy/ntheory/tests/test_residue.py
${PYSITELIB}/sympy/ntheory/tests/test_residue.pyc
${PYSITELIB}/sympy/ntheory/tests/test_residue.pyo
${PYSITELIB}/sympy/parsing/__init__.py
${PYSITELIB}/sympy/parsing/__init__.pyc
${PYSITELIB}/sympy/parsing/__init__.pyo
${PYSITELIB}/sympy/parsing/ast_parser.py
${PYSITELIB}/sympy/parsing/ast_parser.pyc
${PYSITELIB}/sympy/parsing/ast_parser.pyo
${PYSITELIB}/sympy/parsing/latex/LICENSE.txt
${PYSITELIB}/sympy/parsing/latex/LaTeX.g4
${PYSITELIB}/sympy/parsing/latex/__init__.py
${PYSITELIB}/sympy/parsing/latex/__init__.pyc
${PYSITELIB}/sympy/parsing/latex/__init__.pyo
${PYSITELIB}/sympy/parsing/latex/_antlr/__init__.py
${PYSITELIB}/sympy/parsing/latex/_antlr/__init__.pyc
${PYSITELIB}/sympy/parsing/latex/_antlr/__init__.pyo
${PYSITELIB}/sympy/parsing/latex/_antlr/latex.interp
${PYSITELIB}/sympy/parsing/latex/_antlr/latex.tokens
${PYSITELIB}/sympy/parsing/latex/_antlr/latexlexer.interp
${PYSITELIB}/sympy/parsing/latex/_antlr/latexlexer.py
${PYSITELIB}/sympy/parsing/latex/_antlr/latexlexer.pyc
${PYSITELIB}/sympy/parsing/latex/_antlr/latexlexer.pyo
${PYSITELIB}/sympy/parsing/latex/_antlr/latexlexer.tokens
${PYSITELIB}/sympy/parsing/latex/_antlr/latexparser.py
${PYSITELIB}/sympy/parsing/latex/_antlr/latexparser.pyc
${PYSITELIB}/sympy/parsing/latex/_antlr/latexparser.pyo
${PYSITELIB}/sympy/parsing/latex/_build_latex_antlr.py
${PYSITELIB}/sympy/parsing/latex/_build_latex_antlr.pyc
${PYSITELIB}/sympy/parsing/latex/_build_latex_antlr.pyo
${PYSITELIB}/sympy/parsing/latex/_parse_latex_antlr.py
${PYSITELIB}/sympy/parsing/latex/_parse_latex_antlr.pyc
${PYSITELIB}/sympy/parsing/latex/_parse_latex_antlr.pyo
${PYSITELIB}/sympy/parsing/latex/errors.py
${PYSITELIB}/sympy/parsing/latex/errors.pyc
${PYSITELIB}/sympy/parsing/latex/errors.pyo
${PYSITELIB}/sympy/parsing/mathematica.py
${PYSITELIB}/sympy/parsing/mathematica.pyc
${PYSITELIB}/sympy/parsing/mathematica.pyo
${PYSITELIB}/sympy/parsing/maxima.py
${PYSITELIB}/sympy/parsing/maxima.pyc
${PYSITELIB}/sympy/parsing/maxima.pyo
${PYSITELIB}/sympy/parsing/sympy_parser.py
${PYSITELIB}/sympy/parsing/sympy_parser.pyc
${PYSITELIB}/sympy/parsing/sympy_parser.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/parsing/tests/__init__.py
${PYSITELIB}/sympy/parsing/tests/__init__.pyc
${PYSITELIB}/sympy/parsing/tests/__init__.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/parsing/tests/test_implicit_multiplication_application.py
${PYSITELIB}/sympy/parsing/tests/test_implicit_multiplication_application.pyc
${PYSITELIB}/sympy/parsing/tests/test_implicit_multiplication_application.pyo
${PYSITELIB}/sympy/parsing/tests/test_latex.py
${PYSITELIB}/sympy/parsing/tests/test_latex.pyc
${PYSITELIB}/sympy/parsing/tests/test_latex.pyo
${PYSITELIB}/sympy/parsing/tests/test_latex_deps.py
${PYSITELIB}/sympy/parsing/tests/test_latex_deps.pyc
${PYSITELIB}/sympy/parsing/tests/test_latex_deps.pyo
${PYSITELIB}/sympy/parsing/tests/test_mathematica.py
${PYSITELIB}/sympy/parsing/tests/test_mathematica.pyc
${PYSITELIB}/sympy/parsing/tests/test_mathematica.pyo
${PYSITELIB}/sympy/parsing/tests/test_maxima.py
${PYSITELIB}/sympy/parsing/tests/test_maxima.pyc
${PYSITELIB}/sympy/parsing/tests/test_maxima.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/parsing/tests/test_sympy_parser.py
${PYSITELIB}/sympy/parsing/tests/test_sympy_parser.pyc
${PYSITELIB}/sympy/parsing/tests/test_sympy_parser.pyo
${PYSITELIB}/sympy/physics/__init__.py
${PYSITELIB}/sympy/physics/__init__.pyc
${PYSITELIB}/sympy/physics/__init__.pyo
${PYSITELIB}/sympy/physics/continuum_mechanics/__init__.py
${PYSITELIB}/sympy/physics/continuum_mechanics/__init__.pyc
${PYSITELIB}/sympy/physics/continuum_mechanics/__init__.pyo
${PYSITELIB}/sympy/physics/continuum_mechanics/beam.py
${PYSITELIB}/sympy/physics/continuum_mechanics/beam.pyc
${PYSITELIB}/sympy/physics/continuum_mechanics/beam.pyo
${PYSITELIB}/sympy/physics/continuum_mechanics/tests/__init__.py
${PYSITELIB}/sympy/physics/continuum_mechanics/tests/__init__.pyc
${PYSITELIB}/sympy/physics/continuum_mechanics/tests/__init__.pyo
${PYSITELIB}/sympy/physics/continuum_mechanics/tests/test_beam.py
${PYSITELIB}/sympy/physics/continuum_mechanics/tests/test_beam.pyc
${PYSITELIB}/sympy/physics/continuum_mechanics/tests/test_beam.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/gaussopt.py
${PYSITELIB}/sympy/physics/gaussopt.pyc
${PYSITELIB}/sympy/physics/gaussopt.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/physics/hep/__init__.py
${PYSITELIB}/sympy/physics/hep/__init__.pyc
${PYSITELIB}/sympy/physics/hep/__init__.pyo
${PYSITELIB}/sympy/physics/hep/gamma_matrices.py
${PYSITELIB}/sympy/physics/hep/gamma_matrices.pyc
${PYSITELIB}/sympy/physics/hep/gamma_matrices.pyo
${PYSITELIB}/sympy/physics/hep/tests/__init__.py
${PYSITELIB}/sympy/physics/hep/tests/__init__.pyc
${PYSITELIB}/sympy/physics/hep/tests/__init__.pyo
${PYSITELIB}/sympy/physics/hep/tests/test_gamma_matrices.py
${PYSITELIB}/sympy/physics/hep/tests/test_gamma_matrices.pyc
${PYSITELIB}/sympy/physics/hep/tests/test_gamma_matrices.pyo
${PYSITELIB}/sympy/physics/hydrogen.py
${PYSITELIB}/sympy/physics/hydrogen.pyc
${PYSITELIB}/sympy/physics/hydrogen.pyo
${PYSITELIB}/sympy/physics/matrices.py
${PYSITELIB}/sympy/physics/matrices.pyc
${PYSITELIB}/sympy/physics/matrices.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/mechanics/__init__.py
${PYSITELIB}/sympy/physics/mechanics/__init__.pyc
${PYSITELIB}/sympy/physics/mechanics/__init__.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/physics/mechanics/body.py
${PYSITELIB}/sympy/physics/mechanics/body.pyc
${PYSITELIB}/sympy/physics/mechanics/body.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/mechanics/functions.py
${PYSITELIB}/sympy/physics/mechanics/functions.pyc
${PYSITELIB}/sympy/physics/mechanics/functions.pyo
${PYSITELIB}/sympy/physics/mechanics/kane.py
${PYSITELIB}/sympy/physics/mechanics/kane.pyc
${PYSITELIB}/sympy/physics/mechanics/kane.pyo
${PYSITELIB}/sympy/physics/mechanics/lagrange.py
${PYSITELIB}/sympy/physics/mechanics/lagrange.pyc
${PYSITELIB}/sympy/physics/mechanics/lagrange.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/physics/mechanics/linearize.py
${PYSITELIB}/sympy/physics/mechanics/linearize.pyc
${PYSITELIB}/sympy/physics/mechanics/linearize.pyo
${PYSITELIB}/sympy/physics/mechanics/models.py
${PYSITELIB}/sympy/physics/mechanics/models.pyc
${PYSITELIB}/sympy/physics/mechanics/models.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/mechanics/particle.py
${PYSITELIB}/sympy/physics/mechanics/particle.pyc
${PYSITELIB}/sympy/physics/mechanics/particle.pyo
${PYSITELIB}/sympy/physics/mechanics/rigidbody.py
${PYSITELIB}/sympy/physics/mechanics/rigidbody.pyc
${PYSITELIB}/sympy/physics/mechanics/rigidbody.pyo
${PYSITELIB}/sympy/physics/mechanics/system.py
${PYSITELIB}/sympy/physics/mechanics/system.pyc
${PYSITELIB}/sympy/physics/mechanics/system.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/mechanics/tests/__init__.py
${PYSITELIB}/sympy/physics/mechanics/tests/__init__.pyc
${PYSITELIB}/sympy/physics/mechanics/tests/__init__.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/physics/mechanics/tests/test_body.py
${PYSITELIB}/sympy/physics/mechanics/tests/test_body.pyc
${PYSITELIB}/sympy/physics/mechanics/tests/test_body.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/mechanics/tests/test_functions.py
${PYSITELIB}/sympy/physics/mechanics/tests/test_functions.pyc
${PYSITELIB}/sympy/physics/mechanics/tests/test_functions.pyo
${PYSITELIB}/sympy/physics/mechanics/tests/test_kane.py
${PYSITELIB}/sympy/physics/mechanics/tests/test_kane.pyc
${PYSITELIB}/sympy/physics/mechanics/tests/test_kane.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/physics/mechanics/tests/test_kane2.py
${PYSITELIB}/sympy/physics/mechanics/tests/test_kane2.pyc
${PYSITELIB}/sympy/physics/mechanics/tests/test_kane2.pyo
${PYSITELIB}/sympy/physics/mechanics/tests/test_kane3.py
${PYSITELIB}/sympy/physics/mechanics/tests/test_kane3.pyc
${PYSITELIB}/sympy/physics/mechanics/tests/test_kane3.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/mechanics/tests/test_lagrange.py
${PYSITELIB}/sympy/physics/mechanics/tests/test_lagrange.pyc
${PYSITELIB}/sympy/physics/mechanics/tests/test_lagrange.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/physics/mechanics/tests/test_lagrange2.py
${PYSITELIB}/sympy/physics/mechanics/tests/test_lagrange2.pyc
${PYSITELIB}/sympy/physics/mechanics/tests/test_lagrange2.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/physics/mechanics/tests/test_linearize.py
${PYSITELIB}/sympy/physics/mechanics/tests/test_linearize.pyc
${PYSITELIB}/sympy/physics/mechanics/tests/test_linearize.pyo
${PYSITELIB}/sympy/physics/mechanics/tests/test_models.py
${PYSITELIB}/sympy/physics/mechanics/tests/test_models.pyc
${PYSITELIB}/sympy/physics/mechanics/tests/test_models.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/mechanics/tests/test_particle.py
${PYSITELIB}/sympy/physics/mechanics/tests/test_particle.pyc
${PYSITELIB}/sympy/physics/mechanics/tests/test_particle.pyo
${PYSITELIB}/sympy/physics/mechanics/tests/test_rigidbody.py
${PYSITELIB}/sympy/physics/mechanics/tests/test_rigidbody.pyc
${PYSITELIB}/sympy/physics/mechanics/tests/test_rigidbody.pyo
${PYSITELIB}/sympy/physics/mechanics/tests/test_system.py
${PYSITELIB}/sympy/physics/mechanics/tests/test_system.pyc
${PYSITELIB}/sympy/physics/mechanics/tests/test_system.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/physics/optics/__init__.py
${PYSITELIB}/sympy/physics/optics/__init__.pyc
${PYSITELIB}/sympy/physics/optics/__init__.pyo
${PYSITELIB}/sympy/physics/optics/gaussopt.py
${PYSITELIB}/sympy/physics/optics/gaussopt.pyc
${PYSITELIB}/sympy/physics/optics/gaussopt.pyo
${PYSITELIB}/sympy/physics/optics/medium.py
${PYSITELIB}/sympy/physics/optics/medium.pyc
${PYSITELIB}/sympy/physics/optics/medium.pyo
${PYSITELIB}/sympy/physics/optics/tests/__init__.py
${PYSITELIB}/sympy/physics/optics/tests/__init__.pyc
${PYSITELIB}/sympy/physics/optics/tests/__init__.pyo
${PYSITELIB}/sympy/physics/optics/tests/test_gaussopt.py
${PYSITELIB}/sympy/physics/optics/tests/test_gaussopt.pyc
${PYSITELIB}/sympy/physics/optics/tests/test_gaussopt.pyo
${PYSITELIB}/sympy/physics/optics/tests/test_medium.py
${PYSITELIB}/sympy/physics/optics/tests/test_medium.pyc
${PYSITELIB}/sympy/physics/optics/tests/test_medium.pyo
${PYSITELIB}/sympy/physics/optics/tests/test_utils.py
${PYSITELIB}/sympy/physics/optics/tests/test_utils.pyc
${PYSITELIB}/sympy/physics/optics/tests/test_utils.pyo
${PYSITELIB}/sympy/physics/optics/tests/test_waves.py
${PYSITELIB}/sympy/physics/optics/tests/test_waves.pyc
${PYSITELIB}/sympy/physics/optics/tests/test_waves.pyo
${PYSITELIB}/sympy/physics/optics/utils.py
${PYSITELIB}/sympy/physics/optics/utils.pyc
${PYSITELIB}/sympy/physics/optics/utils.pyo
${PYSITELIB}/sympy/physics/optics/waves.py
${PYSITELIB}/sympy/physics/optics/waves.pyc
${PYSITELIB}/sympy/physics/optics/waves.pyo
${PYSITELIB}/sympy/physics/paulialgebra.py
${PYSITELIB}/sympy/physics/paulialgebra.pyc
${PYSITELIB}/sympy/physics/paulialgebra.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/physics/pring.py
${PYSITELIB}/sympy/physics/pring.pyc
${PYSITELIB}/sympy/physics/pring.pyo
${PYSITELIB}/sympy/physics/qho_1d.py
${PYSITELIB}/sympy/physics/qho_1d.pyc
${PYSITELIB}/sympy/physics/qho_1d.pyo
${PYSITELIB}/sympy/physics/quantum/__init__.py
${PYSITELIB}/sympy/physics/quantum/__init__.pyc
${PYSITELIB}/sympy/physics/quantum/__init__.pyo
${PYSITELIB}/sympy/physics/quantum/anticommutator.py
${PYSITELIB}/sympy/physics/quantum/anticommutator.pyc
${PYSITELIB}/sympy/physics/quantum/anticommutator.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/physics/quantum/boson.py
${PYSITELIB}/sympy/physics/quantum/boson.pyc
${PYSITELIB}/sympy/physics/quantum/boson.pyo
${PYSITELIB}/sympy/physics/quantum/cartesian.py
${PYSITELIB}/sympy/physics/quantum/cartesian.pyc
${PYSITELIB}/sympy/physics/quantum/cartesian.pyo
${PYSITELIB}/sympy/physics/quantum/cg.py
${PYSITELIB}/sympy/physics/quantum/cg.pyc
${PYSITELIB}/sympy/physics/quantum/cg.pyo
${PYSITELIB}/sympy/physics/quantum/circuitplot.py
${PYSITELIB}/sympy/physics/quantum/circuitplot.pyc
${PYSITELIB}/sympy/physics/quantum/circuitplot.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/quantum/circuitutils.py
${PYSITELIB}/sympy/physics/quantum/circuitutils.pyc
${PYSITELIB}/sympy/physics/quantum/circuitutils.pyo
${PYSITELIB}/sympy/physics/quantum/commutator.py
${PYSITELIB}/sympy/physics/quantum/commutator.pyc
${PYSITELIB}/sympy/physics/quantum/commutator.pyo
${PYSITELIB}/sympy/physics/quantum/constants.py
${PYSITELIB}/sympy/physics/quantum/constants.pyc
${PYSITELIB}/sympy/physics/quantum/constants.pyo
${PYSITELIB}/sympy/physics/quantum/dagger.py
${PYSITELIB}/sympy/physics/quantum/dagger.pyc
${PYSITELIB}/sympy/physics/quantum/dagger.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/quantum/density.py
${PYSITELIB}/sympy/physics/quantum/density.pyc
${PYSITELIB}/sympy/physics/quantum/density.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/physics/quantum/fermion.py
${PYSITELIB}/sympy/physics/quantum/fermion.pyc
${PYSITELIB}/sympy/physics/quantum/fermion.pyo
${PYSITELIB}/sympy/physics/quantum/gate.py
${PYSITELIB}/sympy/physics/quantum/gate.pyc
${PYSITELIB}/sympy/physics/quantum/gate.pyo
${PYSITELIB}/sympy/physics/quantum/grover.py
${PYSITELIB}/sympy/physics/quantum/grover.pyc
${PYSITELIB}/sympy/physics/quantum/grover.pyo
${PYSITELIB}/sympy/physics/quantum/hilbert.py
${PYSITELIB}/sympy/physics/quantum/hilbert.pyc
${PYSITELIB}/sympy/physics/quantum/hilbert.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/quantum/identitysearch.py
${PYSITELIB}/sympy/physics/quantum/identitysearch.pyc
${PYSITELIB}/sympy/physics/quantum/identitysearch.pyo
${PYSITELIB}/sympy/physics/quantum/innerproduct.py
${PYSITELIB}/sympy/physics/quantum/innerproduct.pyc
${PYSITELIB}/sympy/physics/quantum/innerproduct.pyo
${PYSITELIB}/sympy/physics/quantum/matrixcache.py
${PYSITELIB}/sympy/physics/quantum/matrixcache.pyc
${PYSITELIB}/sympy/physics/quantum/matrixcache.pyo
${PYSITELIB}/sympy/physics/quantum/matrixutils.py
${PYSITELIB}/sympy/physics/quantum/matrixutils.pyc
${PYSITELIB}/sympy/physics/quantum/matrixutils.pyo
${PYSITELIB}/sympy/physics/quantum/operator.py
${PYSITELIB}/sympy/physics/quantum/operator.pyc
${PYSITELIB}/sympy/physics/quantum/operator.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/physics/quantum/operatorordering.py
${PYSITELIB}/sympy/physics/quantum/operatorordering.pyc
${PYSITELIB}/sympy/physics/quantum/operatorordering.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/quantum/operatorset.py
${PYSITELIB}/sympy/physics/quantum/operatorset.pyc
${PYSITELIB}/sympy/physics/quantum/operatorset.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/physics/quantum/pauli.py
${PYSITELIB}/sympy/physics/quantum/pauli.pyc
${PYSITELIB}/sympy/physics/quantum/pauli.pyo
${PYSITELIB}/sympy/physics/quantum/piab.py
${PYSITELIB}/sympy/physics/quantum/piab.pyc
${PYSITELIB}/sympy/physics/quantum/piab.pyo
${PYSITELIB}/sympy/physics/quantum/qapply.py
${PYSITELIB}/sympy/physics/quantum/qapply.pyc
${PYSITELIB}/sympy/physics/quantum/qapply.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/physics/quantum/qasm.py
${PYSITELIB}/sympy/physics/quantum/qasm.pyc
${PYSITELIB}/sympy/physics/quantum/qasm.pyo
${PYSITELIB}/sympy/physics/quantum/qexpr.py
${PYSITELIB}/sympy/physics/quantum/qexpr.pyc
${PYSITELIB}/sympy/physics/quantum/qexpr.pyo
${PYSITELIB}/sympy/physics/quantum/qft.py
${PYSITELIB}/sympy/physics/quantum/qft.pyc
${PYSITELIB}/sympy/physics/quantum/qft.pyo
${PYSITELIB}/sympy/physics/quantum/qubit.py
${PYSITELIB}/sympy/physics/quantum/qubit.pyc
${PYSITELIB}/sympy/physics/quantum/qubit.pyo
${PYSITELIB}/sympy/physics/quantum/represent.py
${PYSITELIB}/sympy/physics/quantum/represent.pyc
${PYSITELIB}/sympy/physics/quantum/represent.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/physics/quantum/sho1d.py
${PYSITELIB}/sympy/physics/quantum/sho1d.pyc
${PYSITELIB}/sympy/physics/quantum/sho1d.pyo
${PYSITELIB}/sympy/physics/quantum/shor.py
${PYSITELIB}/sympy/physics/quantum/shor.pyc
${PYSITELIB}/sympy/physics/quantum/shor.pyo
${PYSITELIB}/sympy/physics/quantum/spin.py
${PYSITELIB}/sympy/physics/quantum/spin.pyc
${PYSITELIB}/sympy/physics/quantum/spin.pyo
${PYSITELIB}/sympy/physics/quantum/state.py
${PYSITELIB}/sympy/physics/quantum/state.pyc
${PYSITELIB}/sympy/physics/quantum/state.pyo
${PYSITELIB}/sympy/physics/quantum/tensorproduct.py
${PYSITELIB}/sympy/physics/quantum/tensorproduct.pyc
${PYSITELIB}/sympy/physics/quantum/tensorproduct.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/quantum/tests/__init__.py
${PYSITELIB}/sympy/physics/quantum/tests/__init__.pyc
${PYSITELIB}/sympy/physics/quantum/tests/__init__.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_anticommutator.py
${PYSITELIB}/sympy/physics/quantum/tests/test_anticommutator.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_anticommutator.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/physics/quantum/tests/test_boson.py
${PYSITELIB}/sympy/physics/quantum/tests/test_boson.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_boson.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_cartesian.py
${PYSITELIB}/sympy/physics/quantum/tests/test_cartesian.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_cartesian.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_cg.py
${PYSITELIB}/sympy/physics/quantum/tests/test_cg.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_cg.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/physics/quantum/tests/test_circuitplot.py
${PYSITELIB}/sympy/physics/quantum/tests/test_circuitplot.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_circuitplot.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/quantum/tests/test_circuitutils.py
${PYSITELIB}/sympy/physics/quantum/tests/test_circuitutils.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_circuitutils.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_commutator.py
${PYSITELIB}/sympy/physics/quantum/tests/test_commutator.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_commutator.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_constants.py
${PYSITELIB}/sympy/physics/quantum/tests/test_constants.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_constants.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_dagger.py
${PYSITELIB}/sympy/physics/quantum/tests/test_dagger.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_dagger.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/quantum/tests/test_density.py
${PYSITELIB}/sympy/physics/quantum/tests/test_density.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_density.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/physics/quantum/tests/test_fermion.py
${PYSITELIB}/sympy/physics/quantum/tests/test_fermion.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_fermion.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_gate.py
${PYSITELIB}/sympy/physics/quantum/tests/test_gate.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_gate.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_grover.py
${PYSITELIB}/sympy/physics/quantum/tests/test_grover.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_grover.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_hilbert.py
${PYSITELIB}/sympy/physics/quantum/tests/test_hilbert.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_hilbert.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/quantum/tests/test_identitysearch.py
${PYSITELIB}/sympy/physics/quantum/tests/test_identitysearch.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_identitysearch.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_innerproduct.py
${PYSITELIB}/sympy/physics/quantum/tests/test_innerproduct.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_innerproduct.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_matrixutils.py
${PYSITELIB}/sympy/physics/quantum/tests/test_matrixutils.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_matrixutils.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_operator.py
${PYSITELIB}/sympy/physics/quantum/tests/test_operator.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_operator.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/physics/quantum/tests/test_operatorordering.py
${PYSITELIB}/sympy/physics/quantum/tests/test_operatorordering.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_operatorordering.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/quantum/tests/test_operatorset.py
${PYSITELIB}/sympy/physics/quantum/tests/test_operatorset.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_operatorset.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/physics/quantum/tests/test_pauli.py
${PYSITELIB}/sympy/physics/quantum/tests/test_pauli.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_pauli.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_piab.py
${PYSITELIB}/sympy/physics/quantum/tests/test_piab.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_piab.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/quantum/tests/test_printing.py
${PYSITELIB}/sympy/physics/quantum/tests/test_printing.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_printing.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_qapply.py
${PYSITELIB}/sympy/physics/quantum/tests/test_qapply.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_qapply.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/physics/quantum/tests/test_qasm.py
${PYSITELIB}/sympy/physics/quantum/tests/test_qasm.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_qasm.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_qexpr.py
${PYSITELIB}/sympy/physics/quantum/tests/test_qexpr.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_qexpr.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_qft.py
${PYSITELIB}/sympy/physics/quantum/tests/test_qft.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_qft.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_qubit.py
${PYSITELIB}/sympy/physics/quantum/tests/test_qubit.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_qubit.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_represent.py
${PYSITELIB}/sympy/physics/quantum/tests/test_represent.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_represent.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/physics/quantum/tests/test_sho1d.py
${PYSITELIB}/sympy/physics/quantum/tests/test_sho1d.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_sho1d.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_shor.py
${PYSITELIB}/sympy/physics/quantum/tests/test_shor.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_shor.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_spin.py
${PYSITELIB}/sympy/physics/quantum/tests/test_spin.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_spin.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_state.py
${PYSITELIB}/sympy/physics/quantum/tests/test_state.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_state.pyo
${PYSITELIB}/sympy/physics/quantum/tests/test_tensorproduct.py
${PYSITELIB}/sympy/physics/quantum/tests/test_tensorproduct.pyc
${PYSITELIB}/sympy/physics/quantum/tests/test_tensorproduct.pyo
${PYSITELIB}/sympy/physics/secondquant.py
${PYSITELIB}/sympy/physics/secondquant.pyc
${PYSITELIB}/sympy/physics/secondquant.pyo
${PYSITELIB}/sympy/physics/sho.py
${PYSITELIB}/sympy/physics/sho.pyc
${PYSITELIB}/sympy/physics/sho.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/physics/tests/__init__.py
${PYSITELIB}/sympy/physics/tests/__init__.pyc
${PYSITELIB}/sympy/physics/tests/__init__.pyo
${PYSITELIB}/sympy/physics/tests/test_clebsch_gordan.py
${PYSITELIB}/sympy/physics/tests/test_clebsch_gordan.pyc
${PYSITELIB}/sympy/physics/tests/test_clebsch_gordan.pyo
${PYSITELIB}/sympy/physics/tests/test_hydrogen.py
${PYSITELIB}/sympy/physics/tests/test_hydrogen.pyc
${PYSITELIB}/sympy/physics/tests/test_hydrogen.pyo
${PYSITELIB}/sympy/physics/tests/test_paulialgebra.py
${PYSITELIB}/sympy/physics/tests/test_paulialgebra.pyc
${PYSITELIB}/sympy/physics/tests/test_paulialgebra.pyo
${PYSITELIB}/sympy/physics/tests/test_physics_matrices.py
${PYSITELIB}/sympy/physics/tests/test_physics_matrices.pyc
${PYSITELIB}/sympy/physics/tests/test_physics_matrices.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/physics/tests/test_pring.py
${PYSITELIB}/sympy/physics/tests/test_pring.pyc
${PYSITELIB}/sympy/physics/tests/test_pring.pyo
${PYSITELIB}/sympy/physics/tests/test_qho_1d.py
${PYSITELIB}/sympy/physics/tests/test_qho_1d.pyc
${PYSITELIB}/sympy/physics/tests/test_qho_1d.pyo
${PYSITELIB}/sympy/physics/tests/test_secondquant.py
${PYSITELIB}/sympy/physics/tests/test_secondquant.pyc
${PYSITELIB}/sympy/physics/tests/test_secondquant.pyo
${PYSITELIB}/sympy/physics/tests/test_sho.py
${PYSITELIB}/sympy/physics/tests/test_sho.pyc
${PYSITELIB}/sympy/physics/tests/test_sho.pyo
${PYSITELIB}/sympy/physics/units/__init__.py
${PYSITELIB}/sympy/physics/units/__init__.pyc
${PYSITELIB}/sympy/physics/units/__init__.pyo
${PYSITELIB}/sympy/physics/units/definitions.py
${PYSITELIB}/sympy/physics/units/definitions.pyc
${PYSITELIB}/sympy/physics/units/definitions.pyo
${PYSITELIB}/sympy/physics/units/dimensions.py
${PYSITELIB}/sympy/physics/units/dimensions.pyc
${PYSITELIB}/sympy/physics/units/dimensions.pyo
${PYSITELIB}/sympy/physics/units/prefixes.py
${PYSITELIB}/sympy/physics/units/prefixes.pyc
${PYSITELIB}/sympy/physics/units/prefixes.pyo
${PYSITELIB}/sympy/physics/units/quantities.py
${PYSITELIB}/sympy/physics/units/quantities.pyc
${PYSITELIB}/sympy/physics/units/quantities.pyo
${PYSITELIB}/sympy/physics/units/systems/__init__.py
${PYSITELIB}/sympy/physics/units/systems/__init__.pyc
${PYSITELIB}/sympy/physics/units/systems/__init__.pyo
${PYSITELIB}/sympy/physics/units/systems/mks.py
${PYSITELIB}/sympy/physics/units/systems/mks.pyc
${PYSITELIB}/sympy/physics/units/systems/mks.pyo
${PYSITELIB}/sympy/physics/units/systems/mksa.py
${PYSITELIB}/sympy/physics/units/systems/mksa.pyc
${PYSITELIB}/sympy/physics/units/systems/mksa.pyo
${PYSITELIB}/sympy/physics/units/systems/natural.py
${PYSITELIB}/sympy/physics/units/systems/natural.pyc
${PYSITELIB}/sympy/physics/units/systems/natural.pyo
${PYSITELIB}/sympy/physics/units/systems/si.py
${PYSITELIB}/sympy/physics/units/systems/si.pyc
${PYSITELIB}/sympy/physics/units/systems/si.pyo
${PYSITELIB}/sympy/physics/units/tests/__init__.py
${PYSITELIB}/sympy/physics/units/tests/__init__.pyc
${PYSITELIB}/sympy/physics/units/tests/__init__.pyo
${PYSITELIB}/sympy/physics/units/tests/test_dimensions.py
${PYSITELIB}/sympy/physics/units/tests/test_dimensions.pyc
${PYSITELIB}/sympy/physics/units/tests/test_dimensions.pyo
${PYSITELIB}/sympy/physics/units/tests/test_dimensionsystem.py
${PYSITELIB}/sympy/physics/units/tests/test_dimensionsystem.pyc
${PYSITELIB}/sympy/physics/units/tests/test_dimensionsystem.pyo
${PYSITELIB}/sympy/physics/units/tests/test_prefixes.py
${PYSITELIB}/sympy/physics/units/tests/test_prefixes.pyc
${PYSITELIB}/sympy/physics/units/tests/test_prefixes.pyo
${PYSITELIB}/sympy/physics/units/tests/test_quantities.py
${PYSITELIB}/sympy/physics/units/tests/test_quantities.pyc
${PYSITELIB}/sympy/physics/units/tests/test_quantities.pyo
${PYSITELIB}/sympy/physics/units/tests/test_unitsystem.py
${PYSITELIB}/sympy/physics/units/tests/test_unitsystem.pyc
${PYSITELIB}/sympy/physics/units/tests/test_unitsystem.pyo
${PYSITELIB}/sympy/physics/units/tests/test_util.py
${PYSITELIB}/sympy/physics/units/tests/test_util.pyc
${PYSITELIB}/sympy/physics/units/tests/test_util.pyo
${PYSITELIB}/sympy/physics/units/unitsystem.py
${PYSITELIB}/sympy/physics/units/unitsystem.pyc
${PYSITELIB}/sympy/physics/units/unitsystem.pyo
${PYSITELIB}/sympy/physics/units/util.py
${PYSITELIB}/sympy/physics/units/util.pyc
${PYSITELIB}/sympy/physics/units/util.pyo
${PYSITELIB}/sympy/physics/unitsystems.py
${PYSITELIB}/sympy/physics/unitsystems.pyc
${PYSITELIB}/sympy/physics/unitsystems.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/physics/vector/__init__.py
${PYSITELIB}/sympy/physics/vector/__init__.pyc
${PYSITELIB}/sympy/physics/vector/__init__.pyo
${PYSITELIB}/sympy/physics/vector/dyadic.py
${PYSITELIB}/sympy/physics/vector/dyadic.pyc
${PYSITELIB}/sympy/physics/vector/dyadic.pyo
${PYSITELIB}/sympy/physics/vector/fieldfunctions.py
${PYSITELIB}/sympy/physics/vector/fieldfunctions.pyc
${PYSITELIB}/sympy/physics/vector/fieldfunctions.pyo
${PYSITELIB}/sympy/physics/vector/frame.py
${PYSITELIB}/sympy/physics/vector/frame.pyc
${PYSITELIB}/sympy/physics/vector/frame.pyo
${PYSITELIB}/sympy/physics/vector/functions.py
${PYSITELIB}/sympy/physics/vector/functions.pyc
${PYSITELIB}/sympy/physics/vector/functions.pyo
${PYSITELIB}/sympy/physics/vector/point.py
${PYSITELIB}/sympy/physics/vector/point.pyc
${PYSITELIB}/sympy/physics/vector/point.pyo
${PYSITELIB}/sympy/physics/vector/printing.py
${PYSITELIB}/sympy/physics/vector/printing.pyc
${PYSITELIB}/sympy/physics/vector/printing.pyo
${PYSITELIB}/sympy/physics/vector/tests/__init__.py
${PYSITELIB}/sympy/physics/vector/tests/__init__.pyc
${PYSITELIB}/sympy/physics/vector/tests/__init__.pyo
${PYSITELIB}/sympy/physics/vector/tests/test_dyadic.py
${PYSITELIB}/sympy/physics/vector/tests/test_dyadic.pyc
${PYSITELIB}/sympy/physics/vector/tests/test_dyadic.pyo
${PYSITELIB}/sympy/physics/vector/tests/test_fieldfunctions.py
${PYSITELIB}/sympy/physics/vector/tests/test_fieldfunctions.pyc
${PYSITELIB}/sympy/physics/vector/tests/test_fieldfunctions.pyo
${PYSITELIB}/sympy/physics/vector/tests/test_frame.py
${PYSITELIB}/sympy/physics/vector/tests/test_frame.pyc
${PYSITELIB}/sympy/physics/vector/tests/test_frame.pyo
${PYSITELIB}/sympy/physics/vector/tests/test_functions.py
${PYSITELIB}/sympy/physics/vector/tests/test_functions.pyc
${PYSITELIB}/sympy/physics/vector/tests/test_functions.pyo
${PYSITELIB}/sympy/physics/vector/tests/test_output.py
${PYSITELIB}/sympy/physics/vector/tests/test_output.pyc
${PYSITELIB}/sympy/physics/vector/tests/test_output.pyo
${PYSITELIB}/sympy/physics/vector/tests/test_point.py
${PYSITELIB}/sympy/physics/vector/tests/test_point.pyc
${PYSITELIB}/sympy/physics/vector/tests/test_point.pyo
${PYSITELIB}/sympy/physics/vector/tests/test_printing.py
${PYSITELIB}/sympy/physics/vector/tests/test_printing.pyc
${PYSITELIB}/sympy/physics/vector/tests/test_printing.pyo
${PYSITELIB}/sympy/physics/vector/tests/test_vector.py
${PYSITELIB}/sympy/physics/vector/tests/test_vector.pyc
${PYSITELIB}/sympy/physics/vector/tests/test_vector.pyo
${PYSITELIB}/sympy/physics/vector/vector.py
${PYSITELIB}/sympy/physics/vector/vector.pyc
${PYSITELIB}/sympy/physics/vector/vector.pyo
${PYSITELIB}/sympy/physics/wigner.py
${PYSITELIB}/sympy/physics/wigner.pyc
${PYSITELIB}/sympy/physics/wigner.pyo
${PYSITELIB}/sympy/plotting/__init__.py
${PYSITELIB}/sympy/plotting/__init__.pyc
${PYSITELIB}/sympy/plotting/__init__.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/plotting/experimental_lambdify.py
${PYSITELIB}/sympy/plotting/experimental_lambdify.pyc
${PYSITELIB}/sympy/plotting/experimental_lambdify.pyo
${PYSITELIB}/sympy/plotting/intervalmath/__init__.py
${PYSITELIB}/sympy/plotting/intervalmath/__init__.pyc
${PYSITELIB}/sympy/plotting/intervalmath/__init__.pyo
${PYSITELIB}/sympy/plotting/intervalmath/interval_arithmetic.py
${PYSITELIB}/sympy/plotting/intervalmath/interval_arithmetic.pyc
${PYSITELIB}/sympy/plotting/intervalmath/interval_arithmetic.pyo
${PYSITELIB}/sympy/plotting/intervalmath/lib_interval.py
${PYSITELIB}/sympy/plotting/intervalmath/lib_interval.pyc
${PYSITELIB}/sympy/plotting/intervalmath/lib_interval.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/plotting/intervalmath/tests/__init__.py
${PYSITELIB}/sympy/plotting/intervalmath/tests/__init__.pyc
${PYSITELIB}/sympy/plotting/intervalmath/tests/__init__.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/plotting/intervalmath/tests/test_interval_functions.py
${PYSITELIB}/sympy/plotting/intervalmath/tests/test_interval_functions.pyc
${PYSITELIB}/sympy/plotting/intervalmath/tests/test_interval_functions.pyo
${PYSITELIB}/sympy/plotting/intervalmath/tests/test_intervalmath.py
${PYSITELIB}/sympy/plotting/intervalmath/tests/test_intervalmath.pyc
${PYSITELIB}/sympy/plotting/intervalmath/tests/test_intervalmath.pyo
${PYSITELIB}/sympy/plotting/plot.py
${PYSITELIB}/sympy/plotting/plot.pyc
${PYSITELIB}/sympy/plotting/plot.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/plotting/plot_implicit.py
${PYSITELIB}/sympy/plotting/plot_implicit.pyc
${PYSITELIB}/sympy/plotting/plot_implicit.pyo
${PYSITELIB}/sympy/plotting/pygletplot/__init__.py
${PYSITELIB}/sympy/plotting/pygletplot/__init__.pyc
${PYSITELIB}/sympy/plotting/pygletplot/__init__.pyo
${PYSITELIB}/sympy/plotting/pygletplot/color_scheme.py
${PYSITELIB}/sympy/plotting/pygletplot/color_scheme.pyc
${PYSITELIB}/sympy/plotting/pygletplot/color_scheme.pyo
${PYSITELIB}/sympy/plotting/pygletplot/managed_window.py
${PYSITELIB}/sympy/plotting/pygletplot/managed_window.pyc
${PYSITELIB}/sympy/plotting/pygletplot/managed_window.pyo
${PYSITELIB}/sympy/plotting/pygletplot/plot.py
${PYSITELIB}/sympy/plotting/pygletplot/plot.pyc
${PYSITELIB}/sympy/plotting/pygletplot/plot.pyo
${PYSITELIB}/sympy/plotting/pygletplot/plot_axes.py
${PYSITELIB}/sympy/plotting/pygletplot/plot_axes.pyc
${PYSITELIB}/sympy/plotting/pygletplot/plot_axes.pyo
${PYSITELIB}/sympy/plotting/pygletplot/plot_camera.py
${PYSITELIB}/sympy/plotting/pygletplot/plot_camera.pyc
${PYSITELIB}/sympy/plotting/pygletplot/plot_camera.pyo
${PYSITELIB}/sympy/plotting/pygletplot/plot_controller.py
${PYSITELIB}/sympy/plotting/pygletplot/plot_controller.pyc
${PYSITELIB}/sympy/plotting/pygletplot/plot_controller.pyo
${PYSITELIB}/sympy/plotting/pygletplot/plot_curve.py
${PYSITELIB}/sympy/plotting/pygletplot/plot_curve.pyc
${PYSITELIB}/sympy/plotting/pygletplot/plot_curve.pyo
${PYSITELIB}/sympy/plotting/pygletplot/plot_interval.py
${PYSITELIB}/sympy/plotting/pygletplot/plot_interval.pyc
${PYSITELIB}/sympy/plotting/pygletplot/plot_interval.pyo
${PYSITELIB}/sympy/plotting/pygletplot/plot_mode.py
${PYSITELIB}/sympy/plotting/pygletplot/plot_mode.pyc
${PYSITELIB}/sympy/plotting/pygletplot/plot_mode.pyo
${PYSITELIB}/sympy/plotting/pygletplot/plot_mode_base.py
${PYSITELIB}/sympy/plotting/pygletplot/plot_mode_base.pyc
${PYSITELIB}/sympy/plotting/pygletplot/plot_mode_base.pyo
${PYSITELIB}/sympy/plotting/pygletplot/plot_modes.py
${PYSITELIB}/sympy/plotting/pygletplot/plot_modes.pyc
${PYSITELIB}/sympy/plotting/pygletplot/plot_modes.pyo
${PYSITELIB}/sympy/plotting/pygletplot/plot_object.py
${PYSITELIB}/sympy/plotting/pygletplot/plot_object.pyc
${PYSITELIB}/sympy/plotting/pygletplot/plot_object.pyo
${PYSITELIB}/sympy/plotting/pygletplot/plot_rotation.py
${PYSITELIB}/sympy/plotting/pygletplot/plot_rotation.pyc
${PYSITELIB}/sympy/plotting/pygletplot/plot_rotation.pyo
${PYSITELIB}/sympy/plotting/pygletplot/plot_surface.py
${PYSITELIB}/sympy/plotting/pygletplot/plot_surface.pyc
${PYSITELIB}/sympy/plotting/pygletplot/plot_surface.pyo
${PYSITELIB}/sympy/plotting/pygletplot/plot_window.py
${PYSITELIB}/sympy/plotting/pygletplot/plot_window.pyc
${PYSITELIB}/sympy/plotting/pygletplot/plot_window.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/plotting/pygletplot/tests/__init__.py
${PYSITELIB}/sympy/plotting/pygletplot/tests/__init__.pyc
${PYSITELIB}/sympy/plotting/pygletplot/tests/__init__.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/plotting/pygletplot/tests/test_plotting.py
${PYSITELIB}/sympy/plotting/pygletplot/tests/test_plotting.pyc
${PYSITELIB}/sympy/plotting/pygletplot/tests/test_plotting.pyo
${PYSITELIB}/sympy/plotting/pygletplot/util.py
${PYSITELIB}/sympy/plotting/pygletplot/util.pyc
${PYSITELIB}/sympy/plotting/pygletplot/util.pyo
${PYSITELIB}/sympy/plotting/tests/__init__.py
${PYSITELIB}/sympy/plotting/tests/__init__.pyc
${PYSITELIB}/sympy/plotting/tests/__init__.pyo
${PYSITELIB}/sympy/plotting/tests/test_plot.py
${PYSITELIB}/sympy/plotting/tests/test_plot.pyc
${PYSITELIB}/sympy/plotting/tests/test_plot.pyo
${PYSITELIB}/sympy/plotting/tests/test_plot_implicit.py
${PYSITELIB}/sympy/plotting/tests/test_plot_implicit.pyc
${PYSITELIB}/sympy/plotting/tests/test_plot_implicit.pyo
${PYSITELIB}/sympy/plotting/textplot.py
${PYSITELIB}/sympy/plotting/textplot.pyc
${PYSITELIB}/sympy/plotting/textplot.pyo
${PYSITELIB}/sympy/polys/__init__.py
${PYSITELIB}/sympy/polys/__init__.pyc
${PYSITELIB}/sympy/polys/__init__.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/polys/agca/__init__.py
${PYSITELIB}/sympy/polys/agca/__init__.pyc
${PYSITELIB}/sympy/polys/agca/__init__.pyo
${PYSITELIB}/sympy/polys/agca/extensions.py
${PYSITELIB}/sympy/polys/agca/extensions.pyc
${PYSITELIB}/sympy/polys/agca/extensions.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/polys/agca/homomorphisms.py
${PYSITELIB}/sympy/polys/agca/homomorphisms.pyc
${PYSITELIB}/sympy/polys/agca/homomorphisms.pyo
${PYSITELIB}/sympy/polys/agca/ideals.py
${PYSITELIB}/sympy/polys/agca/ideals.pyc
${PYSITELIB}/sympy/polys/agca/ideals.pyo
${PYSITELIB}/sympy/polys/agca/modules.py
${PYSITELIB}/sympy/polys/agca/modules.pyc
${PYSITELIB}/sympy/polys/agca/modules.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/agca/tests/__init__.py
${PYSITELIB}/sympy/polys/agca/tests/__init__.pyc
${PYSITELIB}/sympy/polys/agca/tests/__init__.pyo
${PYSITELIB}/sympy/polys/agca/tests/test_extensions.py
${PYSITELIB}/sympy/polys/agca/tests/test_extensions.pyc
${PYSITELIB}/sympy/polys/agca/tests/test_extensions.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/polys/agca/tests/test_homomorphisms.py
${PYSITELIB}/sympy/polys/agca/tests/test_homomorphisms.pyc
${PYSITELIB}/sympy/polys/agca/tests/test_homomorphisms.pyo
${PYSITELIB}/sympy/polys/agca/tests/test_ideals.py
${PYSITELIB}/sympy/polys/agca/tests/test_ideals.pyc
${PYSITELIB}/sympy/polys/agca/tests/test_ideals.pyo
${PYSITELIB}/sympy/polys/agca/tests/test_modules.py
${PYSITELIB}/sympy/polys/agca/tests/test_modules.pyc
${PYSITELIB}/sympy/polys/agca/tests/test_modules.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/polys/benchmarks/__init__.py
${PYSITELIB}/sympy/polys/benchmarks/__init__.pyc
${PYSITELIB}/sympy/polys/benchmarks/__init__.pyo
${PYSITELIB}/sympy/polys/benchmarks/bench_galoispolys.py
${PYSITELIB}/sympy/polys/benchmarks/bench_galoispolys.pyc
${PYSITELIB}/sympy/polys/benchmarks/bench_galoispolys.pyo
${PYSITELIB}/sympy/polys/benchmarks/bench_groebnertools.py
${PYSITELIB}/sympy/polys/benchmarks/bench_groebnertools.pyc
${PYSITELIB}/sympy/polys/benchmarks/bench_groebnertools.pyo
${PYSITELIB}/sympy/polys/benchmarks/bench_solvers.py
${PYSITELIB}/sympy/polys/benchmarks/bench_solvers.pyc
${PYSITELIB}/sympy/polys/benchmarks/bench_solvers.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/compatibility.py
${PYSITELIB}/sympy/polys/compatibility.pyc
${PYSITELIB}/sympy/polys/compatibility.pyo
${PYSITELIB}/sympy/polys/constructor.py
${PYSITELIB}/sympy/polys/constructor.pyc
${PYSITELIB}/sympy/polys/constructor.pyo
${PYSITELIB}/sympy/polys/densearith.py
${PYSITELIB}/sympy/polys/densearith.pyc
${PYSITELIB}/sympy/polys/densearith.pyo
${PYSITELIB}/sympy/polys/densebasic.py
${PYSITELIB}/sympy/polys/densebasic.pyc
${PYSITELIB}/sympy/polys/densebasic.pyo
${PYSITELIB}/sympy/polys/densetools.py
${PYSITELIB}/sympy/polys/densetools.pyc
${PYSITELIB}/sympy/polys/densetools.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/polys/dispersion.py
${PYSITELIB}/sympy/polys/dispersion.pyc
${PYSITELIB}/sympy/polys/dispersion.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/polys/distributedmodules.py
${PYSITELIB}/sympy/polys/distributedmodules.pyc
${PYSITELIB}/sympy/polys/distributedmodules.pyo
${PYSITELIB}/sympy/polys/domains/__init__.py
${PYSITELIB}/sympy/polys/domains/__init__.pyc
${PYSITELIB}/sympy/polys/domains/__init__.pyo
${PYSITELIB}/sympy/polys/domains/algebraicfield.py
${PYSITELIB}/sympy/polys/domains/algebraicfield.pyc
${PYSITELIB}/sympy/polys/domains/algebraicfield.pyo
${PYSITELIB}/sympy/polys/domains/characteristiczero.py
${PYSITELIB}/sympy/polys/domains/characteristiczero.pyc
${PYSITELIB}/sympy/polys/domains/characteristiczero.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/domains/complexfield.py
${PYSITELIB}/sympy/polys/domains/complexfield.pyc
${PYSITELIB}/sympy/polys/domains/complexfield.pyo
${PYSITELIB}/sympy/polys/domains/compositedomain.py
${PYSITELIB}/sympy/polys/domains/compositedomain.pyc
${PYSITELIB}/sympy/polys/domains/compositedomain.pyo
${PYSITELIB}/sympy/polys/domains/domain.py
${PYSITELIB}/sympy/polys/domains/domain.pyc
${PYSITELIB}/sympy/polys/domains/domain.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/domains/domainelement.py
${PYSITELIB}/sympy/polys/domains/domainelement.pyc
${PYSITELIB}/sympy/polys/domains/domainelement.pyo
${PYSITELIB}/sympy/polys/domains/expressiondomain.py
${PYSITELIB}/sympy/polys/domains/expressiondomain.pyc
${PYSITELIB}/sympy/polys/domains/expressiondomain.pyo
${PYSITELIB}/sympy/polys/domains/field.py
${PYSITELIB}/sympy/polys/domains/field.pyc
${PYSITELIB}/sympy/polys/domains/field.pyo
${PYSITELIB}/sympy/polys/domains/finitefield.py
${PYSITELIB}/sympy/polys/domains/finitefield.pyc
${PYSITELIB}/sympy/polys/domains/finitefield.pyo
${PYSITELIB}/sympy/polys/domains/fractionfield.py
${PYSITELIB}/sympy/polys/domains/fractionfield.pyc
${PYSITELIB}/sympy/polys/domains/fractionfield.pyo
${PYSITELIB}/sympy/polys/domains/gmpyfinitefield.py
${PYSITELIB}/sympy/polys/domains/gmpyfinitefield.pyc
${PYSITELIB}/sympy/polys/domains/gmpyfinitefield.pyo
${PYSITELIB}/sympy/polys/domains/gmpyintegerring.py
${PYSITELIB}/sympy/polys/domains/gmpyintegerring.pyc
${PYSITELIB}/sympy/polys/domains/gmpyintegerring.pyo
${PYSITELIB}/sympy/polys/domains/gmpyrationalfield.py
${PYSITELIB}/sympy/polys/domains/gmpyrationalfield.pyc
${PYSITELIB}/sympy/polys/domains/gmpyrationalfield.pyo
${PYSITELIB}/sympy/polys/domains/groundtypes.py
${PYSITELIB}/sympy/polys/domains/groundtypes.pyc
${PYSITELIB}/sympy/polys/domains/groundtypes.pyo
${PYSITELIB}/sympy/polys/domains/integerring.py
${PYSITELIB}/sympy/polys/domains/integerring.pyc
${PYSITELIB}/sympy/polys/domains/integerring.pyo
${PYSITELIB}/sympy/polys/domains/modularinteger.py
${PYSITELIB}/sympy/polys/domains/modularinteger.pyc
${PYSITELIB}/sympy/polys/domains/modularinteger.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/domains/mpelements.py
${PYSITELIB}/sympy/polys/domains/mpelements.pyc
${PYSITELIB}/sympy/polys/domains/mpelements.pyo
${PYSITELIB}/sympy/polys/domains/old_fractionfield.py
${PYSITELIB}/sympy/polys/domains/old_fractionfield.pyc
${PYSITELIB}/sympy/polys/domains/old_fractionfield.pyo
${PYSITELIB}/sympy/polys/domains/old_polynomialring.py
${PYSITELIB}/sympy/polys/domains/old_polynomialring.pyc
${PYSITELIB}/sympy/polys/domains/old_polynomialring.pyo
${PYSITELIB}/sympy/polys/domains/polynomialring.py
${PYSITELIB}/sympy/polys/domains/polynomialring.pyc
${PYSITELIB}/sympy/polys/domains/polynomialring.pyo
${PYSITELIB}/sympy/polys/domains/pythonfinitefield.py
${PYSITELIB}/sympy/polys/domains/pythonfinitefield.pyc
${PYSITELIB}/sympy/polys/domains/pythonfinitefield.pyo
${PYSITELIB}/sympy/polys/domains/pythonintegerring.py
${PYSITELIB}/sympy/polys/domains/pythonintegerring.pyc
${PYSITELIB}/sympy/polys/domains/pythonintegerring.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/domains/pythonrational.py
${PYSITELIB}/sympy/polys/domains/pythonrational.pyc
${PYSITELIB}/sympy/polys/domains/pythonrational.pyo
${PYSITELIB}/sympy/polys/domains/pythonrationalfield.py
${PYSITELIB}/sympy/polys/domains/pythonrationalfield.pyc
${PYSITELIB}/sympy/polys/domains/pythonrationalfield.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/polys/domains/quotientring.py
${PYSITELIB}/sympy/polys/domains/quotientring.pyc
${PYSITELIB}/sympy/polys/domains/quotientring.pyo
${PYSITELIB}/sympy/polys/domains/rationalfield.py
${PYSITELIB}/sympy/polys/domains/rationalfield.pyc
${PYSITELIB}/sympy/polys/domains/rationalfield.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/domains/realfield.py
${PYSITELIB}/sympy/polys/domains/realfield.pyc
${PYSITELIB}/sympy/polys/domains/realfield.pyo
${PYSITELIB}/sympy/polys/domains/ring.py
${PYSITELIB}/sympy/polys/domains/ring.pyc
${PYSITELIB}/sympy/polys/domains/ring.pyo
${PYSITELIB}/sympy/polys/domains/simpledomain.py
${PYSITELIB}/sympy/polys/domains/simpledomain.pyc
${PYSITELIB}/sympy/polys/domains/simpledomain.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/domains/tests/__init__.py
${PYSITELIB}/sympy/polys/domains/tests/__init__.pyc
${PYSITELIB}/sympy/polys/domains/tests/__init__.pyo
${PYSITELIB}/sympy/polys/domains/tests/test_domains.py
${PYSITELIB}/sympy/polys/domains/tests/test_domains.pyc
${PYSITELIB}/sympy/polys/domains/tests/test_domains.pyo
${PYSITELIB}/sympy/polys/domains/tests/test_polynomialring.py
${PYSITELIB}/sympy/polys/domains/tests/test_polynomialring.pyc
${PYSITELIB}/sympy/polys/domains/tests/test_polynomialring.pyo
${PYSITELIB}/sympy/polys/domains/tests/test_quotientring.py
${PYSITELIB}/sympy/polys/domains/tests/test_quotientring.pyc
${PYSITELIB}/sympy/polys/domains/tests/test_quotientring.pyo
${PYSITELIB}/sympy/polys/euclidtools.py
${PYSITELIB}/sympy/polys/euclidtools.pyc
${PYSITELIB}/sympy/polys/euclidtools.pyo
${PYSITELIB}/sympy/polys/factortools.py
${PYSITELIB}/sympy/polys/factortools.pyc
${PYSITELIB}/sympy/polys/factortools.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/fglmtools.py
${PYSITELIB}/sympy/polys/fglmtools.pyc
${PYSITELIB}/sympy/polys/fglmtools.pyo
${PYSITELIB}/sympy/polys/fields.py
${PYSITELIB}/sympy/polys/fields.pyc
${PYSITELIB}/sympy/polys/fields.pyo
${PYSITELIB}/sympy/polys/galoistools.py
${PYSITELIB}/sympy/polys/galoistools.pyc
${PYSITELIB}/sympy/polys/galoistools.pyo
${PYSITELIB}/sympy/polys/groebnertools.py
${PYSITELIB}/sympy/polys/groebnertools.pyc
${PYSITELIB}/sympy/polys/groebnertools.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/heuristicgcd.py
${PYSITELIB}/sympy/polys/heuristicgcd.pyc
${PYSITELIB}/sympy/polys/heuristicgcd.pyo
${PYSITELIB}/sympy/polys/modulargcd.py
${PYSITELIB}/sympy/polys/modulargcd.pyc
${PYSITELIB}/sympy/polys/modulargcd.pyo
${PYSITELIB}/sympy/polys/monomials.py
${PYSITELIB}/sympy/polys/monomials.pyc
${PYSITELIB}/sympy/polys/monomials.pyo
${PYSITELIB}/sympy/polys/multivariate_resultants.py
${PYSITELIB}/sympy/polys/multivariate_resultants.pyc
${PYSITELIB}/sympy/polys/multivariate_resultants.pyo
${PYSITELIB}/sympy/polys/numberfields.py
${PYSITELIB}/sympy/polys/numberfields.pyc
${PYSITELIB}/sympy/polys/numberfields.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/orderings.py
${PYSITELIB}/sympy/polys/orderings.pyc
${PYSITELIB}/sympy/polys/orderings.pyo
${PYSITELIB}/sympy/polys/orthopolys.py
${PYSITELIB}/sympy/polys/orthopolys.pyc
${PYSITELIB}/sympy/polys/orthopolys.pyo
${PYSITELIB}/sympy/polys/partfrac.py
${PYSITELIB}/sympy/polys/partfrac.pyc
${PYSITELIB}/sympy/polys/partfrac.pyo
${PYSITELIB}/sympy/polys/polyclasses.py
${PYSITELIB}/sympy/polys/polyclasses.pyc
${PYSITELIB}/sympy/polys/polyclasses.pyo
${PYSITELIB}/sympy/polys/polyconfig.py
${PYSITELIB}/sympy/polys/polyconfig.pyc
${PYSITELIB}/sympy/polys/polyconfig.pyo
${PYSITELIB}/sympy/polys/polyerrors.py
${PYSITELIB}/sympy/polys/polyerrors.pyc
${PYSITELIB}/sympy/polys/polyerrors.pyo
${PYSITELIB}/sympy/polys/polyfuncs.py
${PYSITELIB}/sympy/polys/polyfuncs.pyc
${PYSITELIB}/sympy/polys/polyfuncs.pyo
${PYSITELIB}/sympy/polys/polymatrix.py
${PYSITELIB}/sympy/polys/polymatrix.pyc
${PYSITELIB}/sympy/polys/polymatrix.pyo
${PYSITELIB}/sympy/polys/polyoptions.py
${PYSITELIB}/sympy/polys/polyoptions.pyc
${PYSITELIB}/sympy/polys/polyoptions.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/polyquinticconst.py
${PYSITELIB}/sympy/polys/polyquinticconst.pyc
${PYSITELIB}/sympy/polys/polyquinticconst.pyo
${PYSITELIB}/sympy/polys/polyroots.py
${PYSITELIB}/sympy/polys/polyroots.pyc
${PYSITELIB}/sympy/polys/polyroots.pyo
${PYSITELIB}/sympy/polys/polytools.py
${PYSITELIB}/sympy/polys/polytools.pyc
${PYSITELIB}/sympy/polys/polytools.pyo
${PYSITELIB}/sympy/polys/polyutils.py
${PYSITELIB}/sympy/polys/polyutils.pyc
${PYSITELIB}/sympy/polys/polyutils.pyo
${PYSITELIB}/sympy/polys/rationaltools.py
${PYSITELIB}/sympy/polys/rationaltools.pyc
${PYSITELIB}/sympy/polys/rationaltools.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/polys/ring_series.py
${PYSITELIB}/sympy/polys/ring_series.pyc
${PYSITELIB}/sympy/polys/ring_series.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/rings.py
${PYSITELIB}/sympy/polys/rings.pyc
${PYSITELIB}/sympy/polys/rings.pyo
${PYSITELIB}/sympy/polys/rootisolation.py
${PYSITELIB}/sympy/polys/rootisolation.pyc
${PYSITELIB}/sympy/polys/rootisolation.pyo
${PYSITELIB}/sympy/polys/rootoftools.py
${PYSITELIB}/sympy/polys/rootoftools.pyc
${PYSITELIB}/sympy/polys/rootoftools.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/solvers.py
${PYSITELIB}/sympy/polys/solvers.pyc
${PYSITELIB}/sympy/polys/solvers.pyo
${PYSITELIB}/sympy/polys/specialpolys.py
${PYSITELIB}/sympy/polys/specialpolys.pyc
${PYSITELIB}/sympy/polys/specialpolys.pyo
${PYSITELIB}/sympy/polys/sqfreetools.py
${PYSITELIB}/sympy/polys/sqfreetools.pyc
${PYSITELIB}/sympy/polys/sqfreetools.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/polys/subresultants_qq_zz.py
${PYSITELIB}/sympy/polys/subresultants_qq_zz.pyc
${PYSITELIB}/sympy/polys/subresultants_qq_zz.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/polys/tests/__init__.py
${PYSITELIB}/sympy/polys/tests/__init__.pyc
${PYSITELIB}/sympy/polys/tests/__init__.pyo
${PYSITELIB}/sympy/polys/tests/test_constructor.py
${PYSITELIB}/sympy/polys/tests/test_constructor.pyc
${PYSITELIB}/sympy/polys/tests/test_constructor.pyo
${PYSITELIB}/sympy/polys/tests/test_densearith.py
${PYSITELIB}/sympy/polys/tests/test_densearith.pyc
${PYSITELIB}/sympy/polys/tests/test_densearith.pyo
${PYSITELIB}/sympy/polys/tests/test_densebasic.py
${PYSITELIB}/sympy/polys/tests/test_densebasic.pyc
${PYSITELIB}/sympy/polys/tests/test_densebasic.pyo
${PYSITELIB}/sympy/polys/tests/test_densetools.py
${PYSITELIB}/sympy/polys/tests/test_densetools.pyc
${PYSITELIB}/sympy/polys/tests/test_densetools.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/polys/tests/test_dispersion.py
${PYSITELIB}/sympy/polys/tests/test_dispersion.pyc
${PYSITELIB}/sympy/polys/tests/test_dispersion.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/polys/tests/test_distributedmodules.py
${PYSITELIB}/sympy/polys/tests/test_distributedmodules.pyc
${PYSITELIB}/sympy/polys/tests/test_distributedmodules.pyo
${PYSITELIB}/sympy/polys/tests/test_euclidtools.py
${PYSITELIB}/sympy/polys/tests/test_euclidtools.pyc
${PYSITELIB}/sympy/polys/tests/test_euclidtools.pyo
${PYSITELIB}/sympy/polys/tests/test_factortools.py
${PYSITELIB}/sympy/polys/tests/test_factortools.pyc
${PYSITELIB}/sympy/polys/tests/test_factortools.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/tests/test_fields.py
${PYSITELIB}/sympy/polys/tests/test_fields.pyc
${PYSITELIB}/sympy/polys/tests/test_fields.pyo
${PYSITELIB}/sympy/polys/tests/test_galoistools.py
${PYSITELIB}/sympy/polys/tests/test_galoistools.pyc
${PYSITELIB}/sympy/polys/tests/test_galoistools.pyo
${PYSITELIB}/sympy/polys/tests/test_groebnertools.py
${PYSITELIB}/sympy/polys/tests/test_groebnertools.pyc
${PYSITELIB}/sympy/polys/tests/test_groebnertools.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/tests/test_heuristicgcd.py
${PYSITELIB}/sympy/polys/tests/test_heuristicgcd.pyc
${PYSITELIB}/sympy/polys/tests/test_heuristicgcd.pyo
${PYSITELIB}/sympy/polys/tests/test_injections.py
${PYSITELIB}/sympy/polys/tests/test_injections.pyc
${PYSITELIB}/sympy/polys/tests/test_injections.pyo
${PYSITELIB}/sympy/polys/tests/test_modulargcd.py
${PYSITELIB}/sympy/polys/tests/test_modulargcd.pyc
${PYSITELIB}/sympy/polys/tests/test_modulargcd.pyo
${PYSITELIB}/sympy/polys/tests/test_monomials.py
${PYSITELIB}/sympy/polys/tests/test_monomials.pyc
${PYSITELIB}/sympy/polys/tests/test_monomials.pyo
${PYSITELIB}/sympy/polys/tests/test_multivariate_resultants.py
${PYSITELIB}/sympy/polys/tests/test_multivariate_resultants.pyc
${PYSITELIB}/sympy/polys/tests/test_multivariate_resultants.pyo
${PYSITELIB}/sympy/polys/tests/test_numberfields.py
${PYSITELIB}/sympy/polys/tests/test_numberfields.pyc
${PYSITELIB}/sympy/polys/tests/test_numberfields.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/tests/test_orderings.py
${PYSITELIB}/sympy/polys/tests/test_orderings.pyc
${PYSITELIB}/sympy/polys/tests/test_orderings.pyo
${PYSITELIB}/sympy/polys/tests/test_orthopolys.py
${PYSITELIB}/sympy/polys/tests/test_orthopolys.pyc
${PYSITELIB}/sympy/polys/tests/test_orthopolys.pyo
${PYSITELIB}/sympy/polys/tests/test_partfrac.py
${PYSITELIB}/sympy/polys/tests/test_partfrac.pyc
${PYSITELIB}/sympy/polys/tests/test_partfrac.pyo
${PYSITELIB}/sympy/polys/tests/test_polyclasses.py
${PYSITELIB}/sympy/polys/tests/test_polyclasses.pyc
${PYSITELIB}/sympy/polys/tests/test_polyclasses.pyo
${PYSITELIB}/sympy/polys/tests/test_polyfuncs.py
${PYSITELIB}/sympy/polys/tests/test_polyfuncs.pyc
${PYSITELIB}/sympy/polys/tests/test_polyfuncs.pyo
${PYSITELIB}/sympy/polys/tests/test_polymatrix.py
${PYSITELIB}/sympy/polys/tests/test_polymatrix.pyc
${PYSITELIB}/sympy/polys/tests/test_polymatrix.pyo
${PYSITELIB}/sympy/polys/tests/test_polyoptions.py
${PYSITELIB}/sympy/polys/tests/test_polyoptions.pyc
${PYSITELIB}/sympy/polys/tests/test_polyoptions.pyo
${PYSITELIB}/sympy/polys/tests/test_polyroots.py
${PYSITELIB}/sympy/polys/tests/test_polyroots.pyc
${PYSITELIB}/sympy/polys/tests/test_polyroots.pyo
${PYSITELIB}/sympy/polys/tests/test_polytools.py
${PYSITELIB}/sympy/polys/tests/test_polytools.pyc
${PYSITELIB}/sympy/polys/tests/test_polytools.pyo
${PYSITELIB}/sympy/polys/tests/test_polyutils.py
${PYSITELIB}/sympy/polys/tests/test_polyutils.pyc
${PYSITELIB}/sympy/polys/tests/test_polyutils.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/tests/test_pythonrational.py
${PYSITELIB}/sympy/polys/tests/test_pythonrational.pyc
${PYSITELIB}/sympy/polys/tests/test_pythonrational.pyo
${PYSITELIB}/sympy/polys/tests/test_rationaltools.py
${PYSITELIB}/sympy/polys/tests/test_rationaltools.pyc
${PYSITELIB}/sympy/polys/tests/test_rationaltools.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/polys/tests/test_ring_series.py
${PYSITELIB}/sympy/polys/tests/test_ring_series.pyc
${PYSITELIB}/sympy/polys/tests/test_ring_series.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/tests/test_rings.py
${PYSITELIB}/sympy/polys/tests/test_rings.pyc
${PYSITELIB}/sympy/polys/tests/test_rings.pyo
${PYSITELIB}/sympy/polys/tests/test_rootisolation.py
${PYSITELIB}/sympy/polys/tests/test_rootisolation.pyc
${PYSITELIB}/sympy/polys/tests/test_rootisolation.pyo
${PYSITELIB}/sympy/polys/tests/test_rootoftools.py
${PYSITELIB}/sympy/polys/tests/test_rootoftools.pyc
${PYSITELIB}/sympy/polys/tests/test_rootoftools.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/polys/tests/test_solvers.py
${PYSITELIB}/sympy/polys/tests/test_solvers.pyc
${PYSITELIB}/sympy/polys/tests/test_solvers.pyo
${PYSITELIB}/sympy/polys/tests/test_specialpolys.py
${PYSITELIB}/sympy/polys/tests/test_specialpolys.pyc
${PYSITELIB}/sympy/polys/tests/test_specialpolys.pyo
${PYSITELIB}/sympy/polys/tests/test_sqfreetools.py
${PYSITELIB}/sympy/polys/tests/test_sqfreetools.pyc
${PYSITELIB}/sympy/polys/tests/test_sqfreetools.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/polys/tests/test_subresultants_qq_zz.py
${PYSITELIB}/sympy/polys/tests/test_subresultants_qq_zz.pyc
${PYSITELIB}/sympy/polys/tests/test_subresultants_qq_zz.pyo
${PYSITELIB}/sympy/printing/__init__.py
${PYSITELIB}/sympy/printing/__init__.pyc
${PYSITELIB}/sympy/printing/__init__.pyo
${PYSITELIB}/sympy/printing/ccode.py
${PYSITELIB}/sympy/printing/ccode.pyc
${PYSITELIB}/sympy/printing/ccode.pyo
${PYSITELIB}/sympy/printing/codeprinter.py
${PYSITELIB}/sympy/printing/codeprinter.pyc
${PYSITELIB}/sympy/printing/codeprinter.pyo
${PYSITELIB}/sympy/printing/conventions.py
${PYSITELIB}/sympy/printing/conventions.pyc
${PYSITELIB}/sympy/printing/conventions.pyo
${PYSITELIB}/sympy/printing/cxxcode.py
${PYSITELIB}/sympy/printing/cxxcode.pyc
${PYSITELIB}/sympy/printing/cxxcode.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/printing/defaults.py
${PYSITELIB}/sympy/printing/defaults.pyc
${PYSITELIB}/sympy/printing/defaults.pyo
${PYSITELIB}/sympy/printing/dot.py
${PYSITELIB}/sympy/printing/dot.pyc
${PYSITELIB}/sympy/printing/dot.pyo
${PYSITELIB}/sympy/printing/fcode.py
${PYSITELIB}/sympy/printing/fcode.pyc
${PYSITELIB}/sympy/printing/fcode.pyo
${PYSITELIB}/sympy/printing/glsl.py
${PYSITELIB}/sympy/printing/glsl.pyc
${PYSITELIB}/sympy/printing/glsl.pyo
${PYSITELIB}/sympy/printing/gtk.py
${PYSITELIB}/sympy/printing/gtk.pyc
${PYSITELIB}/sympy/printing/gtk.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/printing/jscode.py
${PYSITELIB}/sympy/printing/jscode.pyc
${PYSITELIB}/sympy/printing/jscode.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/printing/julia.py
${PYSITELIB}/sympy/printing/julia.pyc
${PYSITELIB}/sympy/printing/julia.pyo
${PYSITELIB}/sympy/printing/lambdarepr.py
${PYSITELIB}/sympy/printing/lambdarepr.pyc
${PYSITELIB}/sympy/printing/lambdarepr.pyo
${PYSITELIB}/sympy/printing/latex.py
${PYSITELIB}/sympy/printing/latex.pyc
${PYSITELIB}/sympy/printing/latex.pyo
${PYSITELIB}/sympy/printing/llvmjitcode.py
${PYSITELIB}/sympy/printing/llvmjitcode.pyc
${PYSITELIB}/sympy/printing/llvmjitcode.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/printing/mathematica.py
${PYSITELIB}/sympy/printing/mathematica.pyc
${PYSITELIB}/sympy/printing/mathematica.pyo
${PYSITELIB}/sympy/printing/mathml.py
${PYSITELIB}/sympy/printing/mathml.pyc
${PYSITELIB}/sympy/printing/mathml.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/printing/octave.py
${PYSITELIB}/sympy/printing/octave.pyc
${PYSITELIB}/sympy/printing/octave.pyo
${PYSITELIB}/sympy/printing/precedence.py
${PYSITELIB}/sympy/printing/precedence.pyc
${PYSITELIB}/sympy/printing/precedence.pyo
${PYSITELIB}/sympy/printing/pretty/__init__.py
${PYSITELIB}/sympy/printing/pretty/__init__.pyc
${PYSITELIB}/sympy/printing/pretty/__init__.pyo
${PYSITELIB}/sympy/printing/pretty/pretty.py
${PYSITELIB}/sympy/printing/pretty/pretty.pyc
${PYSITELIB}/sympy/printing/pretty/pretty.pyo
${PYSITELIB}/sympy/printing/pretty/pretty_symbology.py
${PYSITELIB}/sympy/printing/pretty/pretty_symbology.pyc
${PYSITELIB}/sympy/printing/pretty/pretty_symbology.pyo
${PYSITELIB}/sympy/printing/pretty/stringpict.py
${PYSITELIB}/sympy/printing/pretty/stringpict.pyc
${PYSITELIB}/sympy/printing/pretty/stringpict.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/printing/pretty/tests/__init__.py
${PYSITELIB}/sympy/printing/pretty/tests/__init__.pyc
${PYSITELIB}/sympy/printing/pretty/tests/__init__.pyo
${PYSITELIB}/sympy/printing/pretty/tests/test_pretty.py
${PYSITELIB}/sympy/printing/pretty/tests/test_pretty.pyc
${PYSITELIB}/sympy/printing/pretty/tests/test_pretty.pyo
${PYSITELIB}/sympy/printing/preview.py
${PYSITELIB}/sympy/printing/preview.pyc
${PYSITELIB}/sympy/printing/preview.pyo
${PYSITELIB}/sympy/printing/printer.py
${PYSITELIB}/sympy/printing/printer.pyc
${PYSITELIB}/sympy/printing/printer.pyo
${PYSITELIB}/sympy/printing/pycode.py
${PYSITELIB}/sympy/printing/pycode.pyc
${PYSITELIB}/sympy/printing/pycode.pyo
${PYSITELIB}/sympy/printing/python.py
${PYSITELIB}/sympy/printing/python.pyc
${PYSITELIB}/sympy/printing/python.pyo
${PYSITELIB}/sympy/printing/rcode.py
${PYSITELIB}/sympy/printing/rcode.pyc
${PYSITELIB}/sympy/printing/rcode.pyo
${PYSITELIB}/sympy/printing/repr.py
${PYSITELIB}/sympy/printing/repr.pyc
${PYSITELIB}/sympy/printing/repr.pyo
${PYSITELIB}/sympy/printing/rust.py
${PYSITELIB}/sympy/printing/rust.pyc
${PYSITELIB}/sympy/printing/rust.pyo
${PYSITELIB}/sympy/printing/str.py
${PYSITELIB}/sympy/printing/str.pyc
${PYSITELIB}/sympy/printing/str.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/printing/tableform.py
${PYSITELIB}/sympy/printing/tableform.pyc
${PYSITELIB}/sympy/printing/tableform.pyo
${PYSITELIB}/sympy/printing/tests/__init__.py
${PYSITELIB}/sympy/printing/tests/__init__.pyc
${PYSITELIB}/sympy/printing/tests/__init__.pyo
${PYSITELIB}/sympy/printing/tests/test_ccode.py
${PYSITELIB}/sympy/printing/tests/test_ccode.pyc
${PYSITELIB}/sympy/printing/tests/test_ccode.pyo
${PYSITELIB}/sympy/printing/tests/test_codeprinter.py
${PYSITELIB}/sympy/printing/tests/test_codeprinter.pyc
${PYSITELIB}/sympy/printing/tests/test_codeprinter.pyo
${PYSITELIB}/sympy/printing/tests/test_conventions.py
${PYSITELIB}/sympy/printing/tests/test_conventions.pyc
${PYSITELIB}/sympy/printing/tests/test_conventions.pyo
${PYSITELIB}/sympy/printing/tests/test_cxxcode.py
${PYSITELIB}/sympy/printing/tests/test_cxxcode.pyc
${PYSITELIB}/sympy/printing/tests/test_cxxcode.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/printing/tests/test_dot.py
${PYSITELIB}/sympy/printing/tests/test_dot.pyc
${PYSITELIB}/sympy/printing/tests/test_dot.pyo
${PYSITELIB}/sympy/printing/tests/test_fcode.py
${PYSITELIB}/sympy/printing/tests/test_fcode.pyc
${PYSITELIB}/sympy/printing/tests/test_fcode.pyo
${PYSITELIB}/sympy/printing/tests/test_glsl.py
${PYSITELIB}/sympy/printing/tests/test_glsl.pyc
${PYSITELIB}/sympy/printing/tests/test_glsl.pyo
${PYSITELIB}/sympy/printing/tests/test_gtk.py
${PYSITELIB}/sympy/printing/tests/test_gtk.pyc
${PYSITELIB}/sympy/printing/tests/test_gtk.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/printing/tests/test_jscode.py
${PYSITELIB}/sympy/printing/tests/test_jscode.pyc
${PYSITELIB}/sympy/printing/tests/test_jscode.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/printing/tests/test_julia.py
${PYSITELIB}/sympy/printing/tests/test_julia.pyc
${PYSITELIB}/sympy/printing/tests/test_julia.pyo
${PYSITELIB}/sympy/printing/tests/test_lambdarepr.py
${PYSITELIB}/sympy/printing/tests/test_lambdarepr.pyc
${PYSITELIB}/sympy/printing/tests/test_lambdarepr.pyo
${PYSITELIB}/sympy/printing/tests/test_latex.py
${PYSITELIB}/sympy/printing/tests/test_latex.pyc
${PYSITELIB}/sympy/printing/tests/test_latex.pyo
${PYSITELIB}/sympy/printing/tests/test_llvmjit.py
${PYSITELIB}/sympy/printing/tests/test_llvmjit.pyc
${PYSITELIB}/sympy/printing/tests/test_llvmjit.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/printing/tests/test_mathematica.py
${PYSITELIB}/sympy/printing/tests/test_mathematica.pyc
${PYSITELIB}/sympy/printing/tests/test_mathematica.pyo
${PYSITELIB}/sympy/printing/tests/test_mathml.py
${PYSITELIB}/sympy/printing/tests/test_mathml.pyc
${PYSITELIB}/sympy/printing/tests/test_mathml.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/printing/tests/test_numpy.py
${PYSITELIB}/sympy/printing/tests/test_numpy.pyc
${PYSITELIB}/sympy/printing/tests/test_numpy.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/printing/tests/test_octave.py
${PYSITELIB}/sympy/printing/tests/test_octave.pyc
${PYSITELIB}/sympy/printing/tests/test_octave.pyo
${PYSITELIB}/sympy/printing/tests/test_precedence.py
${PYSITELIB}/sympy/printing/tests/test_precedence.pyc
${PYSITELIB}/sympy/printing/tests/test_precedence.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/printing/tests/test_preview.py
${PYSITELIB}/sympy/printing/tests/test_preview.pyc
${PYSITELIB}/sympy/printing/tests/test_preview.pyo
${PYSITELIB}/sympy/printing/tests/test_pycode.py
${PYSITELIB}/sympy/printing/tests/test_pycode.pyc
${PYSITELIB}/sympy/printing/tests/test_pycode.pyo
${PYSITELIB}/sympy/printing/tests/test_python.py
${PYSITELIB}/sympy/printing/tests/test_python.pyc
${PYSITELIB}/sympy/printing/tests/test_python.pyo
${PYSITELIB}/sympy/printing/tests/test_rcode.py
${PYSITELIB}/sympy/printing/tests/test_rcode.pyc
${PYSITELIB}/sympy/printing/tests/test_rcode.pyo
${PYSITELIB}/sympy/printing/tests/test_repr.py
${PYSITELIB}/sympy/printing/tests/test_repr.pyc
${PYSITELIB}/sympy/printing/tests/test_repr.pyo
${PYSITELIB}/sympy/printing/tests/test_rust.py
${PYSITELIB}/sympy/printing/tests/test_rust.pyc
${PYSITELIB}/sympy/printing/tests/test_rust.pyo
${PYSITELIB}/sympy/printing/tests/test_str.py
${PYSITELIB}/sympy/printing/tests/test_str.pyc
${PYSITELIB}/sympy/printing/tests/test_str.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/printing/tests/test_tableform.py
${PYSITELIB}/sympy/printing/tests/test_tableform.pyc
${PYSITELIB}/sympy/printing/tests/test_tableform.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/printing/tests/test_theanocode.py
${PYSITELIB}/sympy/printing/tests/test_theanocode.pyc
${PYSITELIB}/sympy/printing/tests/test_theanocode.pyo
${PYSITELIB}/sympy/printing/theanocode.py
${PYSITELIB}/sympy/printing/theanocode.pyc
${PYSITELIB}/sympy/printing/theanocode.pyo
${PYSITELIB}/sympy/printing/tree.py
${PYSITELIB}/sympy/printing/tree.pyc
${PYSITELIB}/sympy/printing/tree.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/release.py
${PYSITELIB}/sympy/release.pyc
${PYSITELIB}/sympy/release.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/sandbox/__init__.py
${PYSITELIB}/sympy/sandbox/__init__.pyc
${PYSITELIB}/sympy/sandbox/__init__.pyo
${PYSITELIB}/sympy/sandbox/indexed_integrals.py
${PYSITELIB}/sympy/sandbox/indexed_integrals.pyc
${PYSITELIB}/sympy/sandbox/indexed_integrals.pyo
${PYSITELIB}/sympy/sandbox/tests/__init__.py
${PYSITELIB}/sympy/sandbox/tests/__init__.pyc
${PYSITELIB}/sympy/sandbox/tests/__init__.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/sandbox/tests/test_indexed_integrals.py
${PYSITELIB}/sympy/sandbox/tests/test_indexed_integrals.pyc
${PYSITELIB}/sympy/sandbox/tests/test_indexed_integrals.pyo
${PYSITELIB}/sympy/series/__init__.py
${PYSITELIB}/sympy/series/__init__.pyc
${PYSITELIB}/sympy/series/__init__.pyo
${PYSITELIB}/sympy/series/acceleration.py
${PYSITELIB}/sympy/series/acceleration.pyc
${PYSITELIB}/sympy/series/acceleration.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/series/approximants.py
${PYSITELIB}/sympy/series/approximants.pyc
${PYSITELIB}/sympy/series/approximants.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/series/benchmarks/__init__.py
${PYSITELIB}/sympy/series/benchmarks/__init__.pyc
${PYSITELIB}/sympy/series/benchmarks/__init__.pyo
${PYSITELIB}/sympy/series/benchmarks/bench_limit.py
${PYSITELIB}/sympy/series/benchmarks/bench_limit.pyc
${PYSITELIB}/sympy/series/benchmarks/bench_limit.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/series/benchmarks/bench_order.py
${PYSITELIB}/sympy/series/benchmarks/bench_order.pyc
${PYSITELIB}/sympy/series/benchmarks/bench_order.pyo
${PYSITELIB}/sympy/series/formal.py
${PYSITELIB}/sympy/series/formal.pyc
${PYSITELIB}/sympy/series/formal.pyo
${PYSITELIB}/sympy/series/fourier.py
${PYSITELIB}/sympy/series/fourier.pyc
${PYSITELIB}/sympy/series/fourier.pyo
${PYSITELIB}/sympy/series/gruntz.py
${PYSITELIB}/sympy/series/gruntz.pyc
${PYSITELIB}/sympy/series/gruntz.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/series/kauers.py
${PYSITELIB}/sympy/series/kauers.pyc
${PYSITELIB}/sympy/series/kauers.pyo
${PYSITELIB}/sympy/series/limits.py
${PYSITELIB}/sympy/series/limits.pyc
${PYSITELIB}/sympy/series/limits.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/series/limitseq.py
${PYSITELIB}/sympy/series/limitseq.pyc
${PYSITELIB}/sympy/series/limitseq.pyo
${PYSITELIB}/sympy/series/order.py
${PYSITELIB}/sympy/series/order.pyc
${PYSITELIB}/sympy/series/order.pyo
${PYSITELIB}/sympy/series/residues.py
${PYSITELIB}/sympy/series/residues.pyc
${PYSITELIB}/sympy/series/residues.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/series/sequences.py
${PYSITELIB}/sympy/series/sequences.pyc
${PYSITELIB}/sympy/series/sequences.pyo
${PYSITELIB}/sympy/series/series.py
${PYSITELIB}/sympy/series/series.pyc
${PYSITELIB}/sympy/series/series.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/series/series_class.py
${PYSITELIB}/sympy/series/series_class.pyc
${PYSITELIB}/sympy/series/series_class.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/series/tests/__init__.py
${PYSITELIB}/sympy/series/tests/__init__.pyc
${PYSITELIB}/sympy/series/tests/__init__.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/series/tests/test_approximants.py
${PYSITELIB}/sympy/series/tests/test_approximants.pyc
${PYSITELIB}/sympy/series/tests/test_approximants.pyo
${PYSITELIB}/sympy/series/tests/test_demidovich.py
${PYSITELIB}/sympy/series/tests/test_demidovich.pyc
${PYSITELIB}/sympy/series/tests/test_demidovich.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/series/tests/test_formal.py
${PYSITELIB}/sympy/series/tests/test_formal.pyc
${PYSITELIB}/sympy/series/tests/test_formal.pyo
${PYSITELIB}/sympy/series/tests/test_fourier.py
${PYSITELIB}/sympy/series/tests/test_fourier.pyc
${PYSITELIB}/sympy/series/tests/test_fourier.pyo
${PYSITELIB}/sympy/series/tests/test_gruntz.py
${PYSITELIB}/sympy/series/tests/test_gruntz.pyc
${PYSITELIB}/sympy/series/tests/test_gruntz.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/series/tests/test_kauers.py
${PYSITELIB}/sympy/series/tests/test_kauers.pyc
${PYSITELIB}/sympy/series/tests/test_kauers.pyo
${PYSITELIB}/sympy/series/tests/test_limits.py
${PYSITELIB}/sympy/series/tests/test_limits.pyc
${PYSITELIB}/sympy/series/tests/test_limits.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/series/tests/test_limitseq.py
${PYSITELIB}/sympy/series/tests/test_limitseq.pyc
${PYSITELIB}/sympy/series/tests/test_limitseq.pyo
${PYSITELIB}/sympy/series/tests/test_lseries.py
${PYSITELIB}/sympy/series/tests/test_lseries.pyc
${PYSITELIB}/sympy/series/tests/test_lseries.pyo
${PYSITELIB}/sympy/series/tests/test_nseries.py
${PYSITELIB}/sympy/series/tests/test_nseries.pyc
${PYSITELIB}/sympy/series/tests/test_nseries.pyo
${PYSITELIB}/sympy/series/tests/test_order.py
${PYSITELIB}/sympy/series/tests/test_order.pyc
${PYSITELIB}/sympy/series/tests/test_order.pyo
${PYSITELIB}/sympy/series/tests/test_residues.py
${PYSITELIB}/sympy/series/tests/test_residues.pyc
${PYSITELIB}/sympy/series/tests/test_residues.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/series/tests/test_sequences.py
${PYSITELIB}/sympy/series/tests/test_sequences.pyc
${PYSITELIB}/sympy/series/tests/test_sequences.pyo
${PYSITELIB}/sympy/series/tests/test_series.py
${PYSITELIB}/sympy/series/tests/test_series.pyc
${PYSITELIB}/sympy/series/tests/test_series.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/sets/__init__.py
${PYSITELIB}/sympy/sets/__init__.pyc
${PYSITELIB}/sympy/sets/__init__.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/sets/conditionset.py
${PYSITELIB}/sympy/sets/conditionset.pyc
${PYSITELIB}/sympy/sets/conditionset.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/sets/contains.py
${PYSITELIB}/sympy/sets/contains.pyc
${PYSITELIB}/sympy/sets/contains.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/sets/fancysets.py
${PYSITELIB}/sympy/sets/fancysets.pyc
${PYSITELIB}/sympy/sets/fancysets.pyo
${PYSITELIB}/sympy/sets/handlers/__init__.py
${PYSITELIB}/sympy/sets/handlers/__init__.pyc
${PYSITELIB}/sympy/sets/handlers/__init__.pyo
${PYSITELIB}/sympy/sets/handlers/add.py
${PYSITELIB}/sympy/sets/handlers/add.pyc
${PYSITELIB}/sympy/sets/handlers/add.pyo
${PYSITELIB}/sympy/sets/handlers/functions.py
${PYSITELIB}/sympy/sets/handlers/functions.pyc
${PYSITELIB}/sympy/sets/handlers/functions.pyo
${PYSITELIB}/sympy/sets/handlers/intersection.py
${PYSITELIB}/sympy/sets/handlers/intersection.pyc
${PYSITELIB}/sympy/sets/handlers/intersection.pyo
${PYSITELIB}/sympy/sets/handlers/mul.py
${PYSITELIB}/sympy/sets/handlers/mul.pyc
${PYSITELIB}/sympy/sets/handlers/mul.pyo
${PYSITELIB}/sympy/sets/handlers/power.py
${PYSITELIB}/sympy/sets/handlers/power.pyc
${PYSITELIB}/sympy/sets/handlers/power.pyo
${PYSITELIB}/sympy/sets/handlers/union.py
${PYSITELIB}/sympy/sets/handlers/union.pyc
${PYSITELIB}/sympy/sets/handlers/union.pyo
${PYSITELIB}/sympy/sets/ordinals.py
${PYSITELIB}/sympy/sets/ordinals.pyc
${PYSITELIB}/sympy/sets/ordinals.pyo
${PYSITELIB}/sympy/sets/setexpr.py
${PYSITELIB}/sympy/sets/setexpr.pyc
${PYSITELIB}/sympy/sets/setexpr.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/sets/sets.py
${PYSITELIB}/sympy/sets/sets.pyc
${PYSITELIB}/sympy/sets/sets.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/sets/tests/__init__.py
${PYSITELIB}/sympy/sets/tests/__init__.pyc
${PYSITELIB}/sympy/sets/tests/__init__.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/sets/tests/test_conditionset.py
${PYSITELIB}/sympy/sets/tests/test_conditionset.pyc
${PYSITELIB}/sympy/sets/tests/test_conditionset.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/sets/tests/test_contains.py
${PYSITELIB}/sympy/sets/tests/test_contains.pyc
${PYSITELIB}/sympy/sets/tests/test_contains.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/sets/tests/test_fancysets.py
${PYSITELIB}/sympy/sets/tests/test_fancysets.pyc
${PYSITELIB}/sympy/sets/tests/test_fancysets.pyo
${PYSITELIB}/sympy/sets/tests/test_ordinals.py
${PYSITELIB}/sympy/sets/tests/test_ordinals.pyc
${PYSITELIB}/sympy/sets/tests/test_ordinals.pyo
${PYSITELIB}/sympy/sets/tests/test_setexpr.py
${PYSITELIB}/sympy/sets/tests/test_setexpr.pyc
${PYSITELIB}/sympy/sets/tests/test_setexpr.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/sets/tests/test_sets.py
${PYSITELIB}/sympy/sets/tests/test_sets.pyc
${PYSITELIB}/sympy/sets/tests/test_sets.pyo
${PYSITELIB}/sympy/simplify/__init__.py
${PYSITELIB}/sympy/simplify/__init__.pyc
${PYSITELIB}/sympy/simplify/__init__.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/simplify/combsimp.py
${PYSITELIB}/sympy/simplify/combsimp.pyc
${PYSITELIB}/sympy/simplify/combsimp.pyo
${PYSITELIB}/sympy/simplify/cse_main.py
${PYSITELIB}/sympy/simplify/cse_main.pyc
${PYSITELIB}/sympy/simplify/cse_main.pyo
${PYSITELIB}/sympy/simplify/cse_opts.py
${PYSITELIB}/sympy/simplify/cse_opts.pyc
${PYSITELIB}/sympy/simplify/cse_opts.pyo
${PYSITELIB}/sympy/simplify/epathtools.py
${PYSITELIB}/sympy/simplify/epathtools.pyc
${PYSITELIB}/sympy/simplify/epathtools.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/simplify/fu.py
${PYSITELIB}/sympy/simplify/fu.pyc
${PYSITELIB}/sympy/simplify/fu.pyo
${PYSITELIB}/sympy/simplify/gammasimp.py
${PYSITELIB}/sympy/simplify/gammasimp.pyc
${PYSITELIB}/sympy/simplify/gammasimp.pyo
${PYSITELIB}/sympy/simplify/hyperexpand.py
${PYSITELIB}/sympy/simplify/hyperexpand.pyc
${PYSITELIB}/sympy/simplify/hyperexpand.pyo
${PYSITELIB}/sympy/simplify/hyperexpand_doc.py
${PYSITELIB}/sympy/simplify/hyperexpand_doc.pyc
${PYSITELIB}/sympy/simplify/hyperexpand_doc.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/simplify/powsimp.py
${PYSITELIB}/sympy/simplify/powsimp.pyc
${PYSITELIB}/sympy/simplify/powsimp.pyo
${PYSITELIB}/sympy/simplify/radsimp.py
${PYSITELIB}/sympy/simplify/radsimp.pyc
${PYSITELIB}/sympy/simplify/radsimp.pyo
${PYSITELIB}/sympy/simplify/ratsimp.py
${PYSITELIB}/sympy/simplify/ratsimp.pyc
${PYSITELIB}/sympy/simplify/ratsimp.pyo
${PYSITELIB}/sympy/simplify/simplify.py
${PYSITELIB}/sympy/simplify/simplify.pyc
${PYSITELIB}/sympy/simplify/simplify.pyo
${PYSITELIB}/sympy/simplify/sqrtdenest.py
${PYSITELIB}/sympy/simplify/sqrtdenest.pyc
${PYSITELIB}/sympy/simplify/sqrtdenest.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/simplify/tests/__init__.py
${PYSITELIB}/sympy/simplify/tests/__init__.pyc
${PYSITELIB}/sympy/simplify/tests/__init__.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/simplify/tests/test_combsimp.py
${PYSITELIB}/sympy/simplify/tests/test_combsimp.pyc
${PYSITELIB}/sympy/simplify/tests/test_combsimp.pyo
${PYSITELIB}/sympy/simplify/tests/test_cse.py
${PYSITELIB}/sympy/simplify/tests/test_cse.pyc
${PYSITELIB}/sympy/simplify/tests/test_cse.pyo
${PYSITELIB}/sympy/simplify/tests/test_epathtools.py
${PYSITELIB}/sympy/simplify/tests/test_epathtools.pyc
${PYSITELIB}/sympy/simplify/tests/test_epathtools.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/simplify/tests/test_fu.py
${PYSITELIB}/sympy/simplify/tests/test_fu.pyc
${PYSITELIB}/sympy/simplify/tests/test_fu.pyo
${PYSITELIB}/sympy/simplify/tests/test_function.py
${PYSITELIB}/sympy/simplify/tests/test_function.pyc
${PYSITELIB}/sympy/simplify/tests/test_function.pyo
${PYSITELIB}/sympy/simplify/tests/test_gammasimp.py
${PYSITELIB}/sympy/simplify/tests/test_gammasimp.pyc
${PYSITELIB}/sympy/simplify/tests/test_gammasimp.pyo
${PYSITELIB}/sympy/simplify/tests/test_hyperexpand.py
${PYSITELIB}/sympy/simplify/tests/test_hyperexpand.pyc
${PYSITELIB}/sympy/simplify/tests/test_hyperexpand.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/simplify/tests/test_powsimp.py
${PYSITELIB}/sympy/simplify/tests/test_powsimp.pyc
${PYSITELIB}/sympy/simplify/tests/test_powsimp.pyo
${PYSITELIB}/sympy/simplify/tests/test_radsimp.py
${PYSITELIB}/sympy/simplify/tests/test_radsimp.pyc
${PYSITELIB}/sympy/simplify/tests/test_radsimp.pyo
${PYSITELIB}/sympy/simplify/tests/test_ratsimp.py
${PYSITELIB}/sympy/simplify/tests/test_ratsimp.pyc
${PYSITELIB}/sympy/simplify/tests/test_ratsimp.pyo
${PYSITELIB}/sympy/simplify/tests/test_rewrite.py
${PYSITELIB}/sympy/simplify/tests/test_rewrite.pyc
${PYSITELIB}/sympy/simplify/tests/test_rewrite.pyo
${PYSITELIB}/sympy/simplify/tests/test_simplify.py
${PYSITELIB}/sympy/simplify/tests/test_simplify.pyc
${PYSITELIB}/sympy/simplify/tests/test_simplify.pyo
${PYSITELIB}/sympy/simplify/tests/test_sqrtdenest.py
${PYSITELIB}/sympy/simplify/tests/test_sqrtdenest.pyc
${PYSITELIB}/sympy/simplify/tests/test_sqrtdenest.pyo
${PYSITELIB}/sympy/simplify/tests/test_traversaltools.py
${PYSITELIB}/sympy/simplify/tests/test_traversaltools.pyc
${PYSITELIB}/sympy/simplify/tests/test_traversaltools.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/simplify/tests/test_trigsimp.py
${PYSITELIB}/sympy/simplify/tests/test_trigsimp.pyc
${PYSITELIB}/sympy/simplify/tests/test_trigsimp.pyo
${PYSITELIB}/sympy/simplify/traversaltools.py
${PYSITELIB}/sympy/simplify/traversaltools.pyc
${PYSITELIB}/sympy/simplify/traversaltools.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/simplify/trigsimp.py
${PYSITELIB}/sympy/simplify/trigsimp.pyc
${PYSITELIB}/sympy/simplify/trigsimp.pyo
${PYSITELIB}/sympy/solvers/__init__.py
${PYSITELIB}/sympy/solvers/__init__.pyc
${PYSITELIB}/sympy/solvers/__init__.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/solvers/benchmarks/__init__.py
${PYSITELIB}/sympy/solvers/benchmarks/__init__.pyc
${PYSITELIB}/sympy/solvers/benchmarks/__init__.pyo
${PYSITELIB}/sympy/solvers/benchmarks/bench_solvers.py
${PYSITELIB}/sympy/solvers/benchmarks/bench_solvers.pyc
${PYSITELIB}/sympy/solvers/benchmarks/bench_solvers.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/solvers/bivariate.py
${PYSITELIB}/sympy/solvers/bivariate.pyc
${PYSITELIB}/sympy/solvers/bivariate.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/solvers/decompogen.py
${PYSITELIB}/sympy/solvers/decompogen.pyc
${PYSITELIB}/sympy/solvers/decompogen.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/solvers/deutils.py
${PYSITELIB}/sympy/solvers/deutils.pyc
${PYSITELIB}/sympy/solvers/deutils.pyo
${PYSITELIB}/sympy/solvers/diophantine.py
${PYSITELIB}/sympy/solvers/diophantine.pyc
${PYSITELIB}/sympy/solvers/diophantine.pyo
${PYSITELIB}/sympy/solvers/inequalities.py
${PYSITELIB}/sympy/solvers/inequalities.pyc
${PYSITELIB}/sympy/solvers/inequalities.pyo
${PYSITELIB}/sympy/solvers/ode.py
${PYSITELIB}/sympy/solvers/ode.pyc
${PYSITELIB}/sympy/solvers/ode.pyo
${PYSITELIB}/sympy/solvers/pde.py
${PYSITELIB}/sympy/solvers/pde.pyc
${PYSITELIB}/sympy/solvers/pde.pyo
${PYSITELIB}/sympy/solvers/polysys.py
${PYSITELIB}/sympy/solvers/polysys.pyc
${PYSITELIB}/sympy/solvers/polysys.pyo
${PYSITELIB}/sympy/solvers/recurr.py
${PYSITELIB}/sympy/solvers/recurr.pyc
${PYSITELIB}/sympy/solvers/recurr.pyo
${PYSITELIB}/sympy/solvers/solvers.py
${PYSITELIB}/sympy/solvers/solvers.pyc
${PYSITELIB}/sympy/solvers/solvers.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/solvers/solveset.py
${PYSITELIB}/sympy/solvers/solveset.pyc
${PYSITELIB}/sympy/solvers/solveset.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/solvers/tests/__init__.py
${PYSITELIB}/sympy/solvers/tests/__init__.pyc
${PYSITELIB}/sympy/solvers/tests/__init__.pyo
${PYSITELIB}/sympy/solvers/tests/test_constantsimp.py
${PYSITELIB}/sympy/solvers/tests/test_constantsimp.pyc
${PYSITELIB}/sympy/solvers/tests/test_constantsimp.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/solvers/tests/test_decompogen.py
${PYSITELIB}/sympy/solvers/tests/test_decompogen.pyc
${PYSITELIB}/sympy/solvers/tests/test_decompogen.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/solvers/tests/test_diophantine.py
${PYSITELIB}/sympy/solvers/tests/test_diophantine.pyc
${PYSITELIB}/sympy/solvers/tests/test_diophantine.pyo
${PYSITELIB}/sympy/solvers/tests/test_inequalities.py
${PYSITELIB}/sympy/solvers/tests/test_inequalities.pyc
${PYSITELIB}/sympy/solvers/tests/test_inequalities.pyo
${PYSITELIB}/sympy/solvers/tests/test_numeric.py
${PYSITELIB}/sympy/solvers/tests/test_numeric.pyc
${PYSITELIB}/sympy/solvers/tests/test_numeric.pyo
${PYSITELIB}/sympy/solvers/tests/test_ode.py
${PYSITELIB}/sympy/solvers/tests/test_ode.pyc
${PYSITELIB}/sympy/solvers/tests/test_ode.pyo
${PYSITELIB}/sympy/solvers/tests/test_pde.py
${PYSITELIB}/sympy/solvers/tests/test_pde.pyc
${PYSITELIB}/sympy/solvers/tests/test_pde.pyo
${PYSITELIB}/sympy/solvers/tests/test_polysys.py
${PYSITELIB}/sympy/solvers/tests/test_polysys.pyc
${PYSITELIB}/sympy/solvers/tests/test_polysys.pyo
${PYSITELIB}/sympy/solvers/tests/test_recurr.py
${PYSITELIB}/sympy/solvers/tests/test_recurr.pyc
${PYSITELIB}/sympy/solvers/tests/test_recurr.pyo
${PYSITELIB}/sympy/solvers/tests/test_solvers.py
${PYSITELIB}/sympy/solvers/tests/test_solvers.pyc
${PYSITELIB}/sympy/solvers/tests/test_solvers.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/solvers/tests/test_solveset.py
${PYSITELIB}/sympy/solvers/tests/test_solveset.pyc
${PYSITELIB}/sympy/solvers/tests/test_solveset.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/stats/__init__.py
${PYSITELIB}/sympy/stats/__init__.pyc
${PYSITELIB}/sympy/stats/__init__.pyo
${PYSITELIB}/sympy/stats/crv.py
${PYSITELIB}/sympy/stats/crv.pyc
${PYSITELIB}/sympy/stats/crv.pyo
${PYSITELIB}/sympy/stats/crv_types.py
${PYSITELIB}/sympy/stats/crv_types.pyc
${PYSITELIB}/sympy/stats/crv_types.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/stats/drv.py
${PYSITELIB}/sympy/stats/drv.pyc
${PYSITELIB}/sympy/stats/drv.pyo
${PYSITELIB}/sympy/stats/drv_types.py
${PYSITELIB}/sympy/stats/drv_types.pyc
${PYSITELIB}/sympy/stats/drv_types.pyo
${PYSITELIB}/sympy/stats/error_prop.py
${PYSITELIB}/sympy/stats/error_prop.pyc
${PYSITELIB}/sympy/stats/error_prop.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/stats/frv.py
${PYSITELIB}/sympy/stats/frv.pyc
${PYSITELIB}/sympy/stats/frv.pyo
${PYSITELIB}/sympy/stats/frv_types.py
${PYSITELIB}/sympy/stats/frv_types.pyc
${PYSITELIB}/sympy/stats/frv_types.pyo
${PYSITELIB}/sympy/stats/rv.py
${PYSITELIB}/sympy/stats/rv.pyc
${PYSITELIB}/sympy/stats/rv.pyo
${PYSITELIB}/sympy/stats/rv_interface.py
${PYSITELIB}/sympy/stats/rv_interface.pyc
${PYSITELIB}/sympy/stats/rv_interface.pyo
${PYSITELIB}/sympy/stats/symbolic_probability.py
${PYSITELIB}/sympy/stats/symbolic_probability.pyc
${PYSITELIB}/sympy/stats/symbolic_probability.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/stats/tests/__init__.py
${PYSITELIB}/sympy/stats/tests/__init__.pyc
${PYSITELIB}/sympy/stats/tests/__init__.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/stats/tests/test_continuous_rv.py
${PYSITELIB}/sympy/stats/tests/test_continuous_rv.pyc
${PYSITELIB}/sympy/stats/tests/test_continuous_rv.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/stats/tests/test_discrete_rv.py
${PYSITELIB}/sympy/stats/tests/test_discrete_rv.pyc
${PYSITELIB}/sympy/stats/tests/test_discrete_rv.pyo
${PYSITELIB}/sympy/stats/tests/test_error_prop.py
${PYSITELIB}/sympy/stats/tests/test_error_prop.pyc
${PYSITELIB}/sympy/stats/tests/test_error_prop.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/stats/tests/test_finite_rv.py
${PYSITELIB}/sympy/stats/tests/test_finite_rv.pyc
${PYSITELIB}/sympy/stats/tests/test_finite_rv.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/stats/tests/test_mix.py
${PYSITELIB}/sympy/stats/tests/test_mix.pyc
${PYSITELIB}/sympy/stats/tests/test_mix.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/stats/tests/test_rv.py
${PYSITELIB}/sympy/stats/tests/test_rv.pyc
${PYSITELIB}/sympy/stats/tests/test_rv.pyo
${PYSITELIB}/sympy/stats/tests/test_symbolic_probability.py
${PYSITELIB}/sympy/stats/tests/test_symbolic_probability.pyc
${PYSITELIB}/sympy/stats/tests/test_symbolic_probability.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/strategies/__init__.py
${PYSITELIB}/sympy/strategies/__init__.pyc
${PYSITELIB}/sympy/strategies/__init__.pyo
${PYSITELIB}/sympy/strategies/branch/__init__.py
${PYSITELIB}/sympy/strategies/branch/__init__.pyc
${PYSITELIB}/sympy/strategies/branch/__init__.pyo
${PYSITELIB}/sympy/strategies/branch/core.py
${PYSITELIB}/sympy/strategies/branch/core.pyc
${PYSITELIB}/sympy/strategies/branch/core.pyo
${PYSITELIB}/sympy/strategies/branch/tests/__init__.py
${PYSITELIB}/sympy/strategies/branch/tests/__init__.pyc
${PYSITELIB}/sympy/strategies/branch/tests/__init__.pyo
${PYSITELIB}/sympy/strategies/branch/tests/test_core.py
${PYSITELIB}/sympy/strategies/branch/tests/test_core.pyc
${PYSITELIB}/sympy/strategies/branch/tests/test_core.pyo
${PYSITELIB}/sympy/strategies/branch/tests/test_tools.py
${PYSITELIB}/sympy/strategies/branch/tests/test_tools.pyc
${PYSITELIB}/sympy/strategies/branch/tests/test_tools.pyo
${PYSITELIB}/sympy/strategies/branch/tests/test_traverse.py
${PYSITELIB}/sympy/strategies/branch/tests/test_traverse.pyc
${PYSITELIB}/sympy/strategies/branch/tests/test_traverse.pyo
${PYSITELIB}/sympy/strategies/branch/tools.py
${PYSITELIB}/sympy/strategies/branch/tools.pyc
${PYSITELIB}/sympy/strategies/branch/tools.pyo
${PYSITELIB}/sympy/strategies/branch/traverse.py
${PYSITELIB}/sympy/strategies/branch/traverse.pyc
${PYSITELIB}/sympy/strategies/branch/traverse.pyo
${PYSITELIB}/sympy/strategies/core.py
${PYSITELIB}/sympy/strategies/core.pyc
${PYSITELIB}/sympy/strategies/core.pyo
${PYSITELIB}/sympy/strategies/rl.py
${PYSITELIB}/sympy/strategies/rl.pyc
${PYSITELIB}/sympy/strategies/rl.pyo
${PYSITELIB}/sympy/strategies/tests/__init__.py
${PYSITELIB}/sympy/strategies/tests/__init__.pyc
${PYSITELIB}/sympy/strategies/tests/__init__.pyo
${PYSITELIB}/sympy/strategies/tests/test_core.py
${PYSITELIB}/sympy/strategies/tests/test_core.pyc
${PYSITELIB}/sympy/strategies/tests/test_core.pyo
${PYSITELIB}/sympy/strategies/tests/test_rl.py
${PYSITELIB}/sympy/strategies/tests/test_rl.pyc
${PYSITELIB}/sympy/strategies/tests/test_rl.pyo
${PYSITELIB}/sympy/strategies/tests/test_strat.py
${PYSITELIB}/sympy/strategies/tests/test_strat.pyc
${PYSITELIB}/sympy/strategies/tests/test_strat.pyo
${PYSITELIB}/sympy/strategies/tests/test_tools.py
${PYSITELIB}/sympy/strategies/tests/test_tools.pyc
${PYSITELIB}/sympy/strategies/tests/test_tools.pyo
${PYSITELIB}/sympy/strategies/tests/test_traverse.py
${PYSITELIB}/sympy/strategies/tests/test_traverse.pyc
${PYSITELIB}/sympy/strategies/tests/test_traverse.pyo
${PYSITELIB}/sympy/strategies/tests/test_tree.py
${PYSITELIB}/sympy/strategies/tests/test_tree.pyc
${PYSITELIB}/sympy/strategies/tests/test_tree.pyo
${PYSITELIB}/sympy/strategies/tools.py
${PYSITELIB}/sympy/strategies/tools.pyc
${PYSITELIB}/sympy/strategies/tools.pyo
${PYSITELIB}/sympy/strategies/traverse.py
${PYSITELIB}/sympy/strategies/traverse.pyc
${PYSITELIB}/sympy/strategies/traverse.pyo
${PYSITELIB}/sympy/strategies/tree.py
${PYSITELIB}/sympy/strategies/tree.pyc
${PYSITELIB}/sympy/strategies/tree.pyo
${PYSITELIB}/sympy/strategies/util.py
${PYSITELIB}/sympy/strategies/util.pyc
${PYSITELIB}/sympy/strategies/util.pyo
${PYSITELIB}/sympy/tensor/__init__.py
${PYSITELIB}/sympy/tensor/__init__.pyc
${PYSITELIB}/sympy/tensor/__init__.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/tensor/array/__init__.py
${PYSITELIB}/sympy/tensor/array/__init__.pyc
${PYSITELIB}/sympy/tensor/array/__init__.pyo
${PYSITELIB}/sympy/tensor/array/arrayop.py
${PYSITELIB}/sympy/tensor/array/arrayop.pyc
${PYSITELIB}/sympy/tensor/array/arrayop.pyo
${PYSITELIB}/sympy/tensor/array/dense_ndim_array.py
${PYSITELIB}/sympy/tensor/array/dense_ndim_array.pyc
${PYSITELIB}/sympy/tensor/array/dense_ndim_array.pyo
${PYSITELIB}/sympy/tensor/array/mutable_ndim_array.py
${PYSITELIB}/sympy/tensor/array/mutable_ndim_array.pyc
${PYSITELIB}/sympy/tensor/array/mutable_ndim_array.pyo
${PYSITELIB}/sympy/tensor/array/ndim_array.py
${PYSITELIB}/sympy/tensor/array/ndim_array.pyc
${PYSITELIB}/sympy/tensor/array/ndim_array.pyo
${PYSITELIB}/sympy/tensor/array/sparse_ndim_array.py
${PYSITELIB}/sympy/tensor/array/sparse_ndim_array.pyc
${PYSITELIB}/sympy/tensor/array/sparse_ndim_array.pyo
${PYSITELIB}/sympy/tensor/array/tests/__init__.py
${PYSITELIB}/sympy/tensor/array/tests/__init__.pyc
${PYSITELIB}/sympy/tensor/array/tests/__init__.pyo
${PYSITELIB}/sympy/tensor/array/tests/test_arrayop.py
${PYSITELIB}/sympy/tensor/array/tests/test_arrayop.pyc
${PYSITELIB}/sympy/tensor/array/tests/test_arrayop.pyo
${PYSITELIB}/sympy/tensor/array/tests/test_immutable_ndim_array.py
${PYSITELIB}/sympy/tensor/array/tests/test_immutable_ndim_array.pyc
${PYSITELIB}/sympy/tensor/array/tests/test_immutable_ndim_array.pyo
${PYSITELIB}/sympy/tensor/array/tests/test_mutable_ndim_array.py
${PYSITELIB}/sympy/tensor/array/tests/test_mutable_ndim_array.pyc
${PYSITELIB}/sympy/tensor/array/tests/test_mutable_ndim_array.pyo
${PYSITELIB}/sympy/tensor/array/tests/test_ndim_array_conversions.py
${PYSITELIB}/sympy/tensor/array/tests/test_ndim_array_conversions.pyc
${PYSITELIB}/sympy/tensor/array/tests/test_ndim_array_conversions.pyo
${PYSITELIB}/sympy/tensor/functions.py
${PYSITELIB}/sympy/tensor/functions.pyc
${PYSITELIB}/sympy/tensor/functions.pyo
${PYSITELIB}/sympy/tensor/index_methods.py
${PYSITELIB}/sympy/tensor/index_methods.pyc
${PYSITELIB}/sympy/tensor/index_methods.pyo
${PYSITELIB}/sympy/tensor/indexed.py
${PYSITELIB}/sympy/tensor/indexed.pyc
${PYSITELIB}/sympy/tensor/indexed.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/tensor/tensor.py
${PYSITELIB}/sympy/tensor/tensor.pyc
${PYSITELIB}/sympy/tensor/tensor.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/tensor/tests/__init__.py
${PYSITELIB}/sympy/tensor/tests/__init__.pyc
${PYSITELIB}/sympy/tensor/tests/__init__.pyo
${PYSITELIB}/sympy/tensor/tests/test_functions.py
${PYSITELIB}/sympy/tensor/tests/test_functions.pyc
${PYSITELIB}/sympy/tensor/tests/test_functions.pyo
${PYSITELIB}/sympy/tensor/tests/test_index_methods.py
${PYSITELIB}/sympy/tensor/tests/test_index_methods.pyc
${PYSITELIB}/sympy/tensor/tests/test_index_methods.pyo
${PYSITELIB}/sympy/tensor/tests/test_indexed.py
${PYSITELIB}/sympy/tensor/tests/test_indexed.pyc
${PYSITELIB}/sympy/tensor/tests/test_indexed.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/tensor/tests/test_tensor.py
${PYSITELIB}/sympy/tensor/tests/test_tensor.pyc
${PYSITELIB}/sympy/tensor/tests/test_tensor.pyo
${PYSITELIB}/sympy/this.py
${PYSITELIB}/sympy/this.pyc
${PYSITELIB}/sympy/this.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/unify/__init__.py
${PYSITELIB}/sympy/unify/__init__.pyc
${PYSITELIB}/sympy/unify/__init__.pyo
${PYSITELIB}/sympy/unify/core.py
${PYSITELIB}/sympy/unify/core.pyc
${PYSITELIB}/sympy/unify/core.pyo
${PYSITELIB}/sympy/unify/rewrite.py
${PYSITELIB}/sympy/unify/rewrite.pyc
${PYSITELIB}/sympy/unify/rewrite.pyo
${PYSITELIB}/sympy/unify/tests/__init__.py
${PYSITELIB}/sympy/unify/tests/__init__.pyc
${PYSITELIB}/sympy/unify/tests/__init__.pyo
${PYSITELIB}/sympy/unify/tests/test_rewrite.py
${PYSITELIB}/sympy/unify/tests/test_rewrite.pyc
${PYSITELIB}/sympy/unify/tests/test_rewrite.pyo
${PYSITELIB}/sympy/unify/tests/test_sympy.py
${PYSITELIB}/sympy/unify/tests/test_sympy.pyc
${PYSITELIB}/sympy/unify/tests/test_sympy.pyo
${PYSITELIB}/sympy/unify/tests/test_unify.py
${PYSITELIB}/sympy/unify/tests/test_unify.pyc
${PYSITELIB}/sympy/unify/tests/test_unify.pyo
${PYSITELIB}/sympy/unify/usympy.py
${PYSITELIB}/sympy/unify/usympy.pyc
${PYSITELIB}/sympy/unify/usympy.pyo
${PYSITELIB}/sympy/utilities/__init__.py
${PYSITELIB}/sympy/utilities/__init__.pyc
${PYSITELIB}/sympy/utilities/__init__.pyo
${PYSITELIB}/sympy/utilities/_compilation/__init__.py
${PYSITELIB}/sympy/utilities/_compilation/__init__.pyc
${PYSITELIB}/sympy/utilities/_compilation/__init__.pyo
${PYSITELIB}/sympy/utilities/_compilation/availability.py
${PYSITELIB}/sympy/utilities/_compilation/availability.pyc
${PYSITELIB}/sympy/utilities/_compilation/availability.pyo
${PYSITELIB}/sympy/utilities/_compilation/compilation.py
${PYSITELIB}/sympy/utilities/_compilation/compilation.pyc
${PYSITELIB}/sympy/utilities/_compilation/compilation.pyo
${PYSITELIB}/sympy/utilities/_compilation/runners.py
${PYSITELIB}/sympy/utilities/_compilation/runners.pyc
${PYSITELIB}/sympy/utilities/_compilation/runners.pyo
${PYSITELIB}/sympy/utilities/_compilation/tests/__init__.py
${PYSITELIB}/sympy/utilities/_compilation/tests/__init__.pyc
${PYSITELIB}/sympy/utilities/_compilation/tests/__init__.pyo
${PYSITELIB}/sympy/utilities/_compilation/tests/test_compilation.py
${PYSITELIB}/sympy/utilities/_compilation/tests/test_compilation.pyc
${PYSITELIB}/sympy/utilities/_compilation/tests/test_compilation.pyo
${PYSITELIB}/sympy/utilities/_compilation/util.py
${PYSITELIB}/sympy/utilities/_compilation/util.pyc
${PYSITELIB}/sympy/utilities/_compilation/util.pyo
${PYSITELIB}/sympy/utilities/autowrap.py
${PYSITELIB}/sympy/utilities/autowrap.pyc
${PYSITELIB}/sympy/utilities/autowrap.pyo
${PYSITELIB}/sympy/utilities/benchmarking.py
${PYSITELIB}/sympy/utilities/benchmarking.pyc
${PYSITELIB}/sympy/utilities/benchmarking.pyo
${PYSITELIB}/sympy/utilities/codegen.py
${PYSITELIB}/sympy/utilities/codegen.pyc
${PYSITELIB}/sympy/utilities/codegen.pyo
${PYSITELIB}/sympy/utilities/decorator.py
${PYSITELIB}/sympy/utilities/decorator.pyc
${PYSITELIB}/sympy/utilities/decorator.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/utilities/enumerative.py
${PYSITELIB}/sympy/utilities/enumerative.pyc
${PYSITELIB}/sympy/utilities/enumerative.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/utilities/exceptions.py
${PYSITELIB}/sympy/utilities/exceptions.pyc
${PYSITELIB}/sympy/utilities/exceptions.pyo
${PYSITELIB}/sympy/utilities/iterables.py
${PYSITELIB}/sympy/utilities/iterables.pyc
${PYSITELIB}/sympy/utilities/iterables.pyo
${PYSITELIB}/sympy/utilities/lambdify.py
${PYSITELIB}/sympy/utilities/lambdify.pyc
${PYSITELIB}/sympy/utilities/lambdify.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/utilities/magic.py
${PYSITELIB}/sympy/utilities/magic.pyc
${PYSITELIB}/sympy/utilities/magic.pyo
${PYSITELIB}/sympy/utilities/mathml/__init__.py
${PYSITELIB}/sympy/utilities/mathml/__init__.pyc
${PYSITELIB}/sympy/utilities/mathml/__init__.pyo
${PYSITELIB}/sympy/utilities/mathml/data/mmlctop.xsl
${PYSITELIB}/sympy/utilities/mathml/data/mmltex.xsl
${PYSITELIB}/sympy/utilities/mathml/data/simple_mmlctop.xsl
${PYSITELIB}/sympy/utilities/memoization.py
${PYSITELIB}/sympy/utilities/memoization.pyc
${PYSITELIB}/sympy/utilities/memoization.pyo
${PYSITELIB}/sympy/utilities/misc.py
${PYSITELIB}/sympy/utilities/misc.pyc
${PYSITELIB}/sympy/utilities/misc.pyo
${PYSITELIB}/sympy/utilities/pkgdata.py
${PYSITELIB}/sympy/utilities/pkgdata.pyc
${PYSITELIB}/sympy/utilities/pkgdata.pyo
${PYSITELIB}/sympy/utilities/pytest.py
${PYSITELIB}/sympy/utilities/pytest.pyc
${PYSITELIB}/sympy/utilities/pytest.pyo
${PYSITELIB}/sympy/utilities/randtest.py
${PYSITELIB}/sympy/utilities/randtest.pyc
${PYSITELIB}/sympy/utilities/randtest.pyo
${PYSITELIB}/sympy/utilities/runtests.py
${PYSITELIB}/sympy/utilities/runtests.pyc
${PYSITELIB}/sympy/utilities/runtests.pyo
${PYSITELIB}/sympy/utilities/source.py
${PYSITELIB}/sympy/utilities/source.pyc
${PYSITELIB}/sympy/utilities/source.pyo
Update to 0.7.2 Upstream changes: Release Notes for 0.7.2New Page Edit Page Page History These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012. Major Changes Python 3 support SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more PyPy support All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9. Combinatorics A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes. In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties. Definite Integration A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well. Random Variables A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions. Matrix Expressions A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions. Sets A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets. Classical Mechanics A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided. Quantum Mechanics Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators. To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects. The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012 Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved. Commutative Algebra A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc.... Plotting Module A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following: 2D line plots 2D parametric plots. 2D implicit and region plots. 3D surface plots. 3D parametric surface plots. 3D parametric line plots. Differential Geometry Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
2012-12-02 13:33:23 +01:00
${PYSITELIB}/sympy/utilities/tests/__init__.py
${PYSITELIB}/sympy/utilities/tests/__init__.pyc
${PYSITELIB}/sympy/utilities/tests/__init__.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/utilities/tests/diagnose_imports.py
${PYSITELIB}/sympy/utilities/tests/diagnose_imports.pyc
${PYSITELIB}/sympy/utilities/tests/diagnose_imports.pyo
${PYSITELIB}/sympy/utilities/tests/test_autowrap.py
${PYSITELIB}/sympy/utilities/tests/test_autowrap.pyc
${PYSITELIB}/sympy/utilities/tests/test_autowrap.pyo
${PYSITELIB}/sympy/utilities/tests/test_code_quality.py
${PYSITELIB}/sympy/utilities/tests/test_code_quality.pyc
${PYSITELIB}/sympy/utilities/tests/test_code_quality.pyo
${PYSITELIB}/sympy/utilities/tests/test_codegen.py
${PYSITELIB}/sympy/utilities/tests/test_codegen.pyc
${PYSITELIB}/sympy/utilities/tests/test_codegen.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/utilities/tests/test_codegen_julia.py
${PYSITELIB}/sympy/utilities/tests/test_codegen_julia.pyc
${PYSITELIB}/sympy/utilities/tests/test_codegen_julia.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/utilities/tests/test_codegen_octave.py
${PYSITELIB}/sympy/utilities/tests/test_codegen_octave.pyc
${PYSITELIB}/sympy/utilities/tests/test_codegen_octave.pyo
${PYSITELIB}/sympy/utilities/tests/test_codegen_rust.py
${PYSITELIB}/sympy/utilities/tests/test_codegen_rust.pyc
${PYSITELIB}/sympy/utilities/tests/test_codegen_rust.pyo
${PYSITELIB}/sympy/utilities/tests/test_decorator.py
${PYSITELIB}/sympy/utilities/tests/test_decorator.pyc
${PYSITELIB}/sympy/utilities/tests/test_decorator.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/utilities/tests/test_enumerative.py
${PYSITELIB}/sympy/utilities/tests/test_enumerative.pyc
${PYSITELIB}/sympy/utilities/tests/test_enumerative.pyo
${PYSITELIB}/sympy/utilities/tests/test_iterables.py
${PYSITELIB}/sympy/utilities/tests/test_iterables.pyc
${PYSITELIB}/sympy/utilities/tests/test_iterables.pyo
${PYSITELIB}/sympy/utilities/tests/test_lambdify.py
${PYSITELIB}/sympy/utilities/tests/test_lambdify.pyc
${PYSITELIB}/sympy/utilities/tests/test_lambdify.pyo
Update py-sympy to 1.0 Release Notes for 1.0 Major changes As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below. mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath. The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra. The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve. This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life. Backwards compatibility breaks and deprecations In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals(). The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this. This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy. The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046. ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0. sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C. Q.bounded has been deprecated. Use Q.finite instead. Q.infinity has been deprecated. Use Q.infinite instead. Q.infinitesimal has been deprecated. Use Q.zero instead. ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)). x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero). isprime(Float) now returns False. ask(Q.integer(Float)) now returns False. ask(Q.prime(Float)) now returns False. ask(Q.composite(Float)) now returns False. ask(Q.even(Float)) now returns False. ask(Q.odd(Float)) now returns False. New features The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262 New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435] The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')". not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779] A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775 In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10) 100 loops, best of 3: 5.59 ms per loop In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10) 1 loops, best of 3: 997 ms per loop Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463 GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)). New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523] Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438 New assumption system is now able to read the assumptions set over Symbol object. For e.g.: In [7]: x = Symbol('x', positive=True) In [8]: ask(Q.positive(x)) Out[8]: True A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask. For e.g. Earlier >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) >>> ask(Implies(Q.zero(x), Q.zero(x*y))) >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) Now >>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y)) True >>> ask(Implies(Q.zero(x), Q.zero(x*y))) True >>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y)) False New module sympy.series.formal for computing formal power series. [PR #9639] New set class ConditionSet was implemented. [PR #9696] Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820] New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836] New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374] Minor changes limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051]. Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0]) roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead. Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same. Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python). boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions. Polynomials created using ring now accept negative and fractional exponents. For e.g, In [1]: R, x, y = ring('x, y', QQ) In [2]: x**(-2) + y**Rational(2,3) Out[2]: y**(2/3) + x**(-2) The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real. Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821 The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False). ask(Q.finite(x), Q.infinite(x)) now returns False. You can now read the definition of assumption predicates in the docs. ask(Q.composite(1)) now returns False. exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification. Idx objects can now be summation variables of Sum and Product. The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors. RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class. The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#) Update by K.I.A.Derouiche in PR pkg/51270
2016-08-16 06:08:31 +02:00
${PYSITELIB}/sympy/utilities/tests/test_misc.py
${PYSITELIB}/sympy/utilities/tests/test_misc.pyc
${PYSITELIB}/sympy/utilities/tests/test_misc.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/utilities/tests/test_module_imports.py
${PYSITELIB}/sympy/utilities/tests/test_module_imports.pyc
${PYSITELIB}/sympy/utilities/tests/test_module_imports.pyo
${PYSITELIB}/sympy/utilities/tests/test_pickling.py
${PYSITELIB}/sympy/utilities/tests/test_pickling.pyc
${PYSITELIB}/sympy/utilities/tests/test_pickling.pyo
${PYSITELIB}/sympy/utilities/tests/test_pytest.py
${PYSITELIB}/sympy/utilities/tests/test_pytest.pyc
${PYSITELIB}/sympy/utilities/tests/test_pytest.pyo
${PYSITELIB}/sympy/utilities/tests/test_source.py
${PYSITELIB}/sympy/utilities/tests/test_source.pyc
${PYSITELIB}/sympy/utilities/tests/test_source.pyo
Update to 0.7.4.1: 0.7.4.1 These are the release notes for SymPy 0.7.4.1, which was released on December 15, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. This was a small bugfix release to fix an import issue on Windows (https://github.com/sympy/sympy/issues/2681). 0.7.4 These are the release notes for SymPy 0.7.4, which was released on December 9, 2013. This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Python 3 SymPy now uses a single code-base for Python 2 and Python 3. Geometric Algebra The internal representation of a multivector has been changes to more fully use the inherent capabilities of SymPy. A multivector is now represented by a linear combination of real commutative SymPy expressions and a collection of non-commutative SymPy symbols. Each non-commutative symbol represents a base in the geometric algebra of an N-dimensional vector space. The total number of non-commutative bases is 2**N - 1 (N of which are a basis for the vector space) which when including scalars give a dimension for the geometric algebra of 2**N. The different products of geometric algebra are implemented as functions that take pairs of bases symbols and return a multivector for each pair of bases. The LaTeX printing module for multivectors has been rewritten to simply extend the existing sympy LaTeX printing module and the sympy LaTeX module is now used to print the bases coefficients in the multivector representation instead of writing an entire LaTeX printing module from scratch. The main change in the geometric algebra module from the viewpoint of the user is the inteface for the gradient operator and the implementation of vector manifolds: The gradient operator is now implemented as a special vector (the user can name it grad if they wish) so the if F is a multivector field all the operations of grad on F can be written grad*F, F*grad, grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad where **, ^, |, <, and > are the geometric product, outer product, inner product, left contraction, and right contraction, respectively. The vector manifold is defined as a parametric vector field in an embedding vector space. For example a surface in a 3-dimensional space would be a vector field as a function of two parameters. Then multivector fields can be defined on the manifold. The operations available to be performed on these fields are directional derivative, gradient, and projection. The weak point of the current manifold representation is that all fields on the manifold are represented in terms of the bases of the embedding vector space. Classical Cryptography Implements: Affine ciphers Vigenere ciphers Bifid ciphers Hill ciphers RSA and "kid RSA" linear feedback shift registers. Common Subexpression Elimination (CSE) Major changes have been done in cse internals resulting in a big speedup for larger expressions. Some changes reflect on the user side: Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z] ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z]) CSE is now not performed on the non-commutative parts of multiplications (it avoids some bugs). Pre and post optimizations are not performed by default anymore. The optimizations parameter still exists and optimizations='basic' can be used to apply previous default optimizations. These optimizations could really slow down cse on larger expressions and are no guarantee of better results. An order parameter has been introduced to control whether Adds and Muls terms are ordered independently of hashing implementation. The default order='canonical' will independently order the terms. order='none' will not do any ordering (hashes order is used) and will represent a major performance improvement for really huge expressions. In general, the output of cse will be slightly different from the previous implementation. Diophantine Equation Module This is a new addition to SymPy as a result of a GSoC project. With the current release, following five types of equations are supported. Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . . + a_{n}x_{n} = b General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey + f = 0 Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 + dxy + eyz + fzx = 0 Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 + . . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2 General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 = k Unification of Sum, Product, and Integral classes A new superclass has been introduced to unify the treatments of indexed expressions, such as Sum, Product, and Integral. This enforced common behavior accross the objects, and provides more robust support for a number of operations. For example, Sums and Integrals can now be factored or expanded. S.subs() can be used to substitute for expressions inside a Sum/Integral/Product that are independent of the index variables, including unknown functions, for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while Sum.change_index() or Integral.transform are now used for other changes of summation or integration variables. Support for finite and infinite sequence products has also been restored. In addition there were a number of fixes to the evaluation of nested sums and sums involving Kronecker delta functions, see issue 3924 and issue 3987. Series The Order object used to represent the growth of a function in series expansions as a variable tend to zero can now also represent growth as a variable tend to infinity. This also fixed a number of issues with limits. See issue 234 and issue 2670. Division by Order is disallowed, see issue 1756. Addition of Order object is now commutative, see issue 1180. Physics Initial work on gamma matrices, depending on the tensor module. Logic New objects true and false which are Basic versions of the Python builtins True and False. Other Arbitrary comparisons between expressions (like x < y) no longer have a boolean truth value. This means code like if x < y or sorted(exprs) will raise TypeError if x < y is symbolic. A typical fix of the former is if (x < y) is True (assuming the if block should be skipped if x < y is symbolic), and of the latter is sorted(exprs, key=default_sort_key), which will order the expressions in an arbitrary, but consistent way, even across platforms and Python versions. See issue 2832. Arbitrary comparisons between complex numbers (for example, I > 1) now raise TypeError as well (see PR #2510). minpoly now works with algebraic functions, like minpoly(sqrt(x) + sqrt(x + 1), y). exp can now act on any matrix, even those which are not diagonalizable. It is also more comfortable to call it, exp(m) instead of just m.exp(), as was required previously. sympify now has an option evaluate=False that will not automatically simplify expressions like x+x. Deep processing of cancel and simplify functions. simplify is now recursive through the expression tree. See e.g. issue 3923. Improved the modularity of the codebase for potential subclasses, see issue 3652. The SymPy cheatsheet was cleaned up. Backwards compatibility breaks and deprecations Removed deprecated Real class and is_Real property of Basic, see issue 1721. Removed deprecated 'each_char' option for symbols(), see issue 1919. The viewer="StringIO" option to preview() has been deprecated. Use viewer="BytesIO" instead. See issue 3984. TransformationSet has been renamed to ImageSet. Added public facing imageset function. 0.7.3 These are the release notes for SymPy 0.7.3, which was released on July 13, 2013. It can be downloaded from https://github.com/sympy/sympy/releases/tag/sympy-0.7.3. This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2, 3.3, and PyPy. Major changes Integration This release includes Risch integration algorithm from Aaron Meurer's 2010 Google Summer of Code project. This makes integrate much more powerful and much faster for the supported functions. The algorithm is called automatically from integrate(). For now, only transcendental elementary functions containing exp or log are supported. To access the algorithm directly, use integrate(expr, x, risch=True). The algorithm has the ability to prove that integrals are nonelementary. To determine if a function is nonelementary, integrate using risch=True. If the resulting Integral class is an instance of NonElementaryIntegral, then it is not elementary (otherwise, that part of the algorithm has just not been implemented yet). Here is an example integral that could not be computed before: >>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x + 1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x + 1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2 >>> integrate(f, x) x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) - log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) + log(x + 1)/x)/2 ODE Built basic infrastructure of the PDE module (PR #1970) Theano Interaction SymPy expressions can now be translated into Theano expressions for numeric evaluation. This includes most standard scalar operations (e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This system generally outperforms lambdify and autowrap but does require Theano to be installed. Matrix Expressions Assumptions Matrix expressions now support inference using the new assumptions system. New predicates include invertible, symmetric, positive_definite, orthogonal, .... New Operators New operators include Adjoint, HadamardProduct, Determinant, MatrixSlice, DFT. Also, preliminary support exists for factorizations like SVD and LU. Context manager for New Assumptions Added the with assuming(*facts) context manager for new assumptions. See blogpost Backwards compatibility breaks and deprecations This is the last version of SymPy to support Python 2.5. The IPython extension, i.e., %load_ext sympy.interactive.ipythonprinting is deprecated. Use from sympy import init_printing; init_printing() instead. See issue 3914. The viewer='file' option to preview without a file name is deprecated. Use filename='name' in addition to viewer='file'. See issue 3919. The deprecated syntax Symbol('x', dummy=True), which had been deprecated since 0.7.0, has been removed. Use Dummy('x') or symbols('x', cls=Dummy) instead. See issue 3378. The deprecated Expr methods as_coeff_terms and as_coeff_factors, which have been deprecated in favor of as_coeff_mul and as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add), were removed. The methods had been deprecated since SymPy 0.7.0. See issue 3377. The spherical harmonics have been completely rewritten. See PR #1510. Minor changes Solvers Added enhancements and improved the methods of solving exact differential equation ((PR #1955)) and ((PR #1823)) Support for differential equations with linear coefficients and those that can be reduced to separable and linear form ((PR #1940), (PR #1864), (PR #1883)) Support for first order linear general PDE's with constant coefficients ((PR #2109)) Return all found independent solutions for underdetermined systems. Handle recursive problems for which y(0) = 0. Handle matrix equations. Integration integrate will split out integrals into Piecewise expressions when conditions must hold for the answer to be true. For example, integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1), (x**(n + 1)/(n + 1), True)) (previously it just gave x**(n + 1)/(n + 1)) Calculate Gauss-Legendre and Gauss-Laguerre points and weights (PR #1497) Various new error and inverse error functions (PR #1703) Use in heurisch for more symmetric and nicer results Gruntz for expintegrals and all new erf* Li, li logarithmic integrals (PR #1708) Integration of li/Li by heurisch (PR #1712) elliptic integrals, complete and incomplete Integration of complete elliptic integrals by meijerg Integration of Piecewise with symbolic conditions. Fixed many wrong results of DiracDelta integrals. Logic Addition of SOPform and POSform functions to sympy.logic to generate boolean expressions from truth tables. Addition of simplify_logic function and enabling simplify() to reduce logic expressions to their simplest forms. Addition of bool_equals function to check equality of boolean expressions and return a mapping of variables from one expr to other that leads to the equality. Addition of disjunctive normal form methods - to_dnf, is_dnf Others gmpy version 2 is now supported Added is_algebraic_expr() method (PR #2176) Many improvements to the handling of noncommutative symbols: Better support in simplification functions, e.g. factor, trigsimp Better integration with Order() Better pattern matching Improved pattern matching including matching the identity. normalizes Jacobi polynomials Quadrature rules for orthogonal polynomials in arbitrary precision (hermite, laguerre, legendre, gen_legendre, jacobi) summation of harmonic numbers Many improvements of the polygamma functions evaluation at special arguments Connections to harmonic numbers structured full partial fraction decomposition (mainly interesting for developers) besselsimp improvements Karr summation convention New spherical harmonics improved minimal_polynomial using composition of algebraic numbers (PR #2038) faster integer polynomial factorization (PR #2148) Euler-Descartes method for quartic equations (PR #1947) algebraic operations on tensors (PR #1700) tensor canonicalization (PR #1644) Handle the simplification of summations and products over a KroneckerDelta. Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta and LeviCivita, also many Matrix expressions. Improved LaTeX printing of fractions, Mul in general. IPython integration and printing issues have been ironed out. Stats now supports discrete distributions (e.g. Poisson) by relying on Summation objects Added DOT printing for visualization of expression trees Added information about solvability and nilpotency of named groups.
2014-01-21 09:38:04 +01:00
${PYSITELIB}/sympy/utilities/tests/test_timeutils.py
${PYSITELIB}/sympy/utilities/tests/test_timeutils.pyc
${PYSITELIB}/sympy/utilities/tests/test_timeutils.pyo
${PYSITELIB}/sympy/utilities/tests/test_wester.py
${PYSITELIB}/sympy/utilities/tests/test_wester.pyc
${PYSITELIB}/sympy/utilities/tests/test_wester.pyo
${PYSITELIB}/sympy/utilities/timeutils.py
${PYSITELIB}/sympy/utilities/timeutils.pyc
${PYSITELIB}/sympy/utilities/timeutils.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/vector/__init__.py
${PYSITELIB}/sympy/vector/__init__.pyc
${PYSITELIB}/sympy/vector/__init__.pyo
${PYSITELIB}/sympy/vector/basisdependent.py
${PYSITELIB}/sympy/vector/basisdependent.pyc
${PYSITELIB}/sympy/vector/basisdependent.pyo
${PYSITELIB}/sympy/vector/coordsysrect.py
${PYSITELIB}/sympy/vector/coordsysrect.pyc
${PYSITELIB}/sympy/vector/coordsysrect.pyo
${PYSITELIB}/sympy/vector/deloperator.py
${PYSITELIB}/sympy/vector/deloperator.pyc
${PYSITELIB}/sympy/vector/deloperator.pyo
${PYSITELIB}/sympy/vector/dyadic.py
${PYSITELIB}/sympy/vector/dyadic.pyc
${PYSITELIB}/sympy/vector/dyadic.pyo
${PYSITELIB}/sympy/vector/functions.py
${PYSITELIB}/sympy/vector/functions.pyc
${PYSITELIB}/sympy/vector/functions.pyo
${PYSITELIB}/sympy/vector/operators.py
${PYSITELIB}/sympy/vector/operators.pyc
${PYSITELIB}/sympy/vector/operators.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/vector/orienters.py
${PYSITELIB}/sympy/vector/orienters.pyc
${PYSITELIB}/sympy/vector/orienters.pyo
${PYSITELIB}/sympy/vector/point.py
${PYSITELIB}/sympy/vector/point.pyc
${PYSITELIB}/sympy/vector/point.pyo
${PYSITELIB}/sympy/vector/scalar.py
${PYSITELIB}/sympy/vector/scalar.pyc
${PYSITELIB}/sympy/vector/scalar.pyo
${PYSITELIB}/sympy/vector/tests/__init__.py
${PYSITELIB}/sympy/vector/tests/__init__.pyc
${PYSITELIB}/sympy/vector/tests/__init__.pyo
${PYSITELIB}/sympy/vector/tests/test_coordsysrect.py
${PYSITELIB}/sympy/vector/tests/test_coordsysrect.pyc
${PYSITELIB}/sympy/vector/tests/test_coordsysrect.pyo
${PYSITELIB}/sympy/vector/tests/test_dyadic.py
${PYSITELIB}/sympy/vector/tests/test_dyadic.pyc
${PYSITELIB}/sympy/vector/tests/test_dyadic.pyo
${PYSITELIB}/sympy/vector/tests/test_field_functions.py
${PYSITELIB}/sympy/vector/tests/test_field_functions.pyc
${PYSITELIB}/sympy/vector/tests/test_field_functions.pyo
${PYSITELIB}/sympy/vector/tests/test_functions.py
${PYSITELIB}/sympy/vector/tests/test_functions.pyc
${PYSITELIB}/sympy/vector/tests/test_functions.pyo
${PYSITELIB}/sympy/vector/tests/test_operators.py
${PYSITELIB}/sympy/vector/tests/test_operators.pyc
${PYSITELIB}/sympy/vector/tests/test_operators.pyo
Update to 0.7.6.1, based on PR 50382 by derouiche. 0.7.6.1 This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook. Changes Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0. The deprecated linearization method in the mechanics module no longer fails to execute. 0.7.6 Major changes New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids. New module physics.optics for symbolic computations related to optics. geometry module now supports 3D geometry. Support for series expansions at a point other then 0 or oo. See PR #2427. Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅ dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations. New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational. Support for Egyptian fraction expansions, using several different algorithms. Addition of generalized linearization methods to physics.mechanics. Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache. Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737. New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628. New Complement class to represent relative complements of two sets. See Pr #7462. New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500). New Contains class to represent the relation "is an element of" (see PR #7989). The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements. ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg. CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)]. New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points. Backwards compatibility breaks and deprecations All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here. The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used. Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427. In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information. physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning. This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site. Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string. Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set. Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions. is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947). Removed is_infinitesimal assumption (see #7995). Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996). For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861. CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082. FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622. Minor changes Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent. Lambdify can now use numexpr by specifying modules='numexpr' Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x IndexedBase and Indexed are changed to be commutative by default sympy.core.sets moved to sympy.sets Changes in sympy.sets: Infinite Range is now allowed. See PR #7741 is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self. is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other. is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively. is_disjoint(): A new method for checking if two sets are disjoint. powerset(): A new method powerset() has been added to find the power set of a set. The cardinality of a ProductSet can be found using the len() function. Changes in sympy.plot.plot_implicit: The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted. The plot_implicit function also allows axes labels for the plot to be specified. rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ} coth(0) now returns Complex Infinity. See #7634 dioptre is added to physics.units #7782 replace now respects commutativity #7752 The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199 limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213 0.7.5 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. (PRs #2732 #2862 #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 (PR #2431). 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. (PR #2686). Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894) Functions with LaTeX symbols now print correct LaTeX. (PR #2772) init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894). improvements in evaluation of imageset for Intervals (PR #2723). Set properties to determine boundary and interior (PR #2744). input to a function created by lambdify no longer needs to be flattened. Backwards compatibility breaks and deprecations 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 (PR #2813). zoo.is_number is True (PR #2823). oo < I raises TypeError, just as for finite numbers (PR #2734). 1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
2015-11-01 10:54:11 +01:00
${PYSITELIB}/sympy/vector/tests/test_printing.py
${PYSITELIB}/sympy/vector/tests/test_printing.pyc
${PYSITELIB}/sympy/vector/tests/test_printing.pyo
${PYSITELIB}/sympy/vector/tests/test_vector.py
${PYSITELIB}/sympy/vector/tests/test_vector.pyc
${PYSITELIB}/sympy/vector/tests/test_vector.pyo
${PYSITELIB}/sympy/vector/vector.py
${PYSITELIB}/sympy/vector/vector.pyc
${PYSITELIB}/sympy/vector/vector.pyo
man/man1/isympy${PYVERSSUFFIX}.1