Skip to content

Commit

Permalink
Merge pull request #615 from skirpichev/0.9
Browse files Browse the repository at this point in the history
0.9
  • Loading branch information
skirpichev committed Feb 23, 2018
2 parents 12a422e + 40ef5e8 commit 501e687
Show file tree
Hide file tree
Showing 8 changed files with 45 additions and 46 deletions.
2 changes: 1 addition & 1 deletion diofant/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""Diofant is a Python library for symbolic mathematics. """

__version__ = "0.9.0b1"
__version__ = "0.9.0"

import os
DIOFANT_DEBUG = os.getenv('DIOFANT_DEBUG', 'False') != 'False'
Expand Down
1 change: 1 addition & 0 deletions diofant/tests/test_wester.py
Original file line number Diff line number Diff line change
Expand Up @@ -2207,6 +2207,7 @@ def test_W24():
assert (r1 - (sqrt(2) + asinh(1))/3).simplify() == 0


@pytest.mark.slow
def test_W26():
x, y = symbols('x y', real=True)
assert integrate(integrate(abs(y - x**2), (y, 0, 2)),
Expand Down
8 changes: 7 additions & 1 deletion docs/CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,17 @@ All work should be submitted via `Pull Requests (PR)`_.
mind, doctests are not tests. Think of them as examples that
happen to be tested.

6. Usually, it's good idea to be sure that all existing tests
6. It's good idea to be sure that **all** existing tests
pass and you don't break anything, so please run::

$ python setup.py test

7. If your change affects documentation, please build it by::

$ python setup.py build_sphinx -W

and check that it looks as expected.

License
-------

Expand Down
10 changes: 0 additions & 10 deletions docs/README.rst

This file was deleted.

2 changes: 0 additions & 2 deletions docs/guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -105,5 +105,3 @@ Following table lists meanings of labels, including
+------------------+----------------------------------------------------+
| wontfix | indicates that work won't continue on this issue |
+------------------+----------------------------------------------------+

.. include:: README.rst
2 changes: 2 additions & 0 deletions docs/modules/parsing.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
Parsing
=======

.. module:: diofant.parsing

Parsing Functions Reference
---------------------------

Expand Down
2 changes: 2 additions & 0 deletions docs/modules/printing.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
Printing
========

.. module:: diofant.printing

See the :ref:`tutorial-printing` section in Tutorial for introduction into
printing.

Expand Down
64 changes: 32 additions & 32 deletions docs/release/notes-0.9.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,96 +2,96 @@
Diofant 0.9
===========

Not Released Yet
23 Feb 2018

New features
============

* Polynomial solvers now express all available solutions with :class:`~diofant.polys.rootoftools.RootOf`, see :pull:`400`.
* Added :func:`~diofant.core.numbers.mod_inverse` and :meth:`~diofant.core.expr.Expr.invert`, see :pull:`390`. Thanks to Chris Smith.
* Support solving linear programming problems, see :pull:`283` and :pull:`461`.
* Compute independent sets and dimension of the ideal, generated by Gröbner basis, provide :attr:`~diofant.polys.polytools.GroebnerBasis.independent_sets` property, see :pull:`573`.
* Added :attr:`~diofant.polys.rootoftools.RootOf.interval` property for :class:`~diofant.polys.rootoftools.RootOf`, see :pull:`508`.
* Added AST transformation :class:`~diofant.interactive.session.IntegerDivisionWrapper` to wrap integer division, see :pull:`519`.
* Added AST transformation :class:`~diofant.interactive.session.FloatRationalizer` to wrap :class:`float`'s, see :pull:`538`.
* Compute :attr:`~diofant.polys.polytools.GroebnerBasis.independent_sets` and dimension of the ideal, generated by Gröbner basis, see :pull:`573`.
* Added :func:`~diofant.tensor.array.permutedims` and :func:`~diofant.tensor.array.derive_by_array`, see :pull:`567`. Thanks to Francesco Bonazzi.
* Added :func:`~diofant.ntheory.primetest.is_square`, :func:`~diofant.utilities.iterables.ordered_partitions`, :func:`~diofant.utilities.iterables.permute_signs` and :func:`~diofant.utilities.iterables.signed_permutations`, see :pull:`578`. Thanks to Chris Smith.

Major changes
=============

* Assumptions (old) moved from :class:`~diofant.core.basic.Basic` to :class:`~diofant.core.expr.Expr`, see :pull:`311`.
* :func:`~diofant.solvers.solvers.solve` now return :class:`list` of :class:`dict`'s, see :pull:`473`.
* ``diofant.polys.domains`` module is now top-level module :mod:`~diofant.domains`, see :pull:`487`.
* Support canonicalization of :class:`~diofant.polys.rootoftools.RootOf` instances, construct polynomial with integer coefficients, see :pull:`430`.
* Optionally reduce :class:`~diofant.polys.rootoftools.RootOf` instances to have polynomials with integer coefficients, see :pull:`430`.
* :func:`~diofant.solvers.polysys.solve_poly_system` now able to solve positive-dimensional systems, see :pull:`448` and :pull:`573`.
* Big update of the :mod:`~diofant.solvers.diophantine` module with a lot of bugfixes, see :pull:`578`. Thanks to Chris Smith.

Compatibility breaks
====================

* Removed ``assumption0`` property, see :pull:`382`.
* :func:`~diofant.core.assumptions.check_assumptions` was moved to :mod:`~diofant.core.assumptions`, see :pull:`387`.
* ``nsolve()`` function was removed, see :pull:`387`.
* :func:`~diofant.core.assumptions.check_assumptions` moved to :mod:`~diofant.core.assumptions`, see :pull:`387`.
* Removed ``nsolve()`` function, see :pull:`387`.
* :attr:`~diofant.core.expr.Expr.is_comparable` and :meth:`~diofant.core.expr.Expr.is_hypergeometric` moved to :class:`~diofant.core.expr.Expr`, see :pull:`391`.
* Removed ``solve_triangulated()`` and ``solve_biquadratic()`` functions, :func:`~diofant.solvers.polysys.solve_poly_system` now use :class:`dict` as output, see :pull:`389` and :pull:`448`.
* Dropped support for solving undetermined coefficients in :func:`~diofant.solvers.solvers.solve`, see :pull:`389`.
* Drop ``intersect()`` alias for :meth:`~diofant.sets.sets.Set.intersection`, see :pull:`396`.
* Drop ``interactive_traversal()``, see :pull:`395`.
* Drop ``xring()`` and ``xfield()``, see :pull:`403`.
* Drop ``jscode`` submodule, see :pull:`403`.
* Drop JS printer and ``TableForm`` class, see :pull:`403`.
* Removed support for solving undetermined coefficients in :func:`~diofant.solvers.solvers.solve`, see :pull:`389`.
* Removed ``intersect()`` alias for :meth:`~diofant.sets.sets.Set.intersection`, see :pull:`396`.
* Removed ``interactive_traversal()``, see :pull:`395`.
* Removed ``xring()`` and ``xfield()``, see :pull:`403`.
* Removed ``jscode`` submodule and ``TableForm`` class, see :pull:`403`.
* Removed ``agca`` submodule of :mod:`~diofant.polys`, see :pull:`404`.
* Removed ``pager_print()`` and ``print_fcode()``, see :pull:`411`.
* "Increase" precision of Floats with :meth:`~diofant.core.evalf.EvalfMixin.evalf` now disallowed, see :pull:`380`.
* Disallow "increase" precision of :class:`~diofant.core.numbers.Float`'s with :meth:`~diofant.core.evalf.EvalfMixin.evalf`, see :pull:`380`.
* Removed ``experimental_lambdify()`` and ``intervalmath`` module from plotting package, see :pull:`384`.
* Removed :func:`~diofant.solvers.solvers.solve` flags ``set``, ``manual``, ``minimal``, ``implicit``, ``particular``, ``quick``, ``exclude``, ``force`` and ``numerical`` see :pull:`426`, :pull:`554` and :pull:`549`.
* Removed support for inequalities in :func:`~diofant.solvers.solvers.solve`, please use :func:`~diofant.solvers.inequalities.reduce_inequalities` instead, see :pull:`426`.
* Removed ``get_domain()`` method of :class:`~diofant.polys.polytools.Poly`, use :attr:`~diofant.polys.polytools.Poly.domain` property instead, see :pull:`479`.
* Renamed 'prec' argument of Float to 'dps', see :pull:`510`.
* Drop ``as_content_primitive()`` method of :class:`~diofant.core.basic.Basic`, see :pull:`529`.
* Move ``canonical_variables()`` property to :meth:`~diofant.core.expr.Expr.canonical_variables`, see :pull:`534`.
* Removed 'group' option of :meth:`~diofant.core.basic.Basic.find`, which now return a :class:`dict`, see :pull:`529`.
* Support for Python 3.4 was removed, see :pull:`543`.
* Renamed ``prec`` argument of :class:`~diofant.core.numbers.Float` to ``dps``, see :pull:`510`.
* Removed ``as_content_primitive()`` method of :class:`~diofant.core.basic.Basic`, see :pull:`529`.
* Removed ``canonical_variables()`` property to :meth:`~diofant.core.expr.Expr.canonical_variables`, see :pull:`534`.
* Removed ``group`` option of :meth:`~diofant.core.basic.Basic.find`, which now return a :class:`dict`, see :pull:`529`.
* Removed support for Python 3.4, see :pull:`543`.
* Second argument of :func:`~diofant.solvers.solvers.checksol` must be a :class:`dict`. See :pull:`549`.
* Removed ``solve_undetermined_coeffs()`` function, see :pull:`554`.
* Make ``matches()`` method for :class:`~diofant.core.basic.Basic` - private, see :pull:`557`.
* Removed :meth:`~diofant.core.basic.Basic.replace` flags ``simultaneous`` and ``map``, see :pull:`557`.
* Make ``strict`` flag - default for :meth:`~diofant.core.evalf.EvalfMixin.evalf`, see :pull:`537`.
* Make ``strict=True`` - default for :meth:`~diofant.core.evalf.EvalfMixin.evalf`, see :pull:`537`.
* Removed ``I`` property of the :class:`~diofant.matrices.expressions.MatrixExpr`, see :pull:`577`.
* Removed ``isolate()`` function, see :pull:`585`.
* :func:`~diofant.polys.polytools.gcd` and :func:`~diofant.polys.polytools.lcm` now are two-arg functions, see :pull:`585`.
* Removed ``is_zero_dimensional()`` function and :class:`~diofant.polys.polytools.GroebnerBasis`'s property of the same name, use :attr:`~diofant.polys.polytools.GroebnerBasis.dimension` instead, see :pull:`573`.
* Drop ``MonomialOps`` class, see :pull:`586`.
* Renamed 'n' argiment of :meth:`~diofant.core.evalf.EvalfMixin.evalf` to 'dps', see :pull:`596`.
* Make ``ex=True`` - default format for :func:`~diofant.polys.numberfields.primitive_element`, see :pull:`597`.
* Removed ``MonomialOps`` class, see :pull:`586`.
* Renamed ``n`` argiment of :meth:`~diofant.core.evalf.EvalfMixin.evalf` to ``dps``, see :pull:`596`.
* Return representation of elements via primitive in :func:`~diofant.polys.numberfields.primitive_element` (former ``ex=True`` format), see :pull:`597`.
* Removed ``pprint_try_use_unicode()`` function, see :pull:`605`.

Minor changes
=============

* New integration heuristics for integrals with :class:`~diofant.functions.elementary.complexes.Abs`, see :pull:`321`.
* Added :func:`~diofant.core.numbers.mod_inverse` and :meth:`~diofant.core.expr.Expr.invert`, see :pull:`390`.
* Support unevaluated :class:`~diofant.polys.rootoftools.RootOf`, see :pull:`400`.
* Sorting of symbolic quadratic roots now same as in :class:`~diofant.polys.rootoftools.RootOf` for numerical coefficients, see :pull:`400`.
* Improve printing of Mathematica code, see :pull:`400`, :pull:`433`, :pull:`438`, :pull:`519`, :pull:`553` and :pull:`571`.
* Support simple first-order DAE with :func:`~diofant.solvers.ode.dsolve` helper :func:`~diofant.solvers.ode.ode_lie_group`, see :pull:`413`.
* Add support for limits of relational expressions, see :pull:`414`.
* Added support for limits of relational expressions, see :pull:`414`.
* Make :class:`~diofant.matrices.expressions.MatrixSymbol` truly atomic, see :pull:`415`.
* Support rewriting :class:`~diofant.functions.elementary.miscellaneous.Min` and :class:`~diofant.functions.elementary.miscellaneous.Max` as :class:`~diofant.functions.elementary.piecewise.Piecewise`, this allow solving more piecewise equations, see :pull:`426`.
* Support rewriting :class:`~diofant.functions.elementary.miscellaneous.Min` and :class:`~diofant.functions.elementary.miscellaneous.Max` as :class:`~diofant.functions.elementary.piecewise.Piecewise`, see :pull:`426`.
* :func:`~diofant.polys.numberfields.minimal_polynomial` fixed to support generic :class:`~diofant.core.numbers.AlgebraicNumber`'s, see :pull:`433` and :pull:`438`.
* :class:`~diofant.core.numbers.AlgebraicNumber` now support arithmetic operations and exponentiation with integer exponents, see :pull:`428` and :pull:`485`.
* Added :attr:`~diofant.polys.rootoftools.RootOf.interval` property for :class:`~diofant.polys.rootoftools.RootOf`, see :pull:`508`.
* Add AST transformation :class:`~diofant.interactive.session.IntegerDivisionWrapper` to wrap integer division, see :pull:`519`.
* Add AST transformation :class:`~diofant.interactive.session.FloatRationalizer` to wrap :class:`float`'s, see :pull:`538`.
* :class:`~diofant.core.numbers.AlgebraicNumber` now support arithmetic operations, see :pull:`428` and :pull:`485`.
* Support rewrite :class:`~diofant.polys.rootoftools.RootOf` via radicals, see :pull:`563`.
* Added :func:`~diofant.tensor.array.permutedims` and :func:`~diofant.tensor.array.derive_by_array`, see :pull:`567`. Thanks to Francesco Bonazzi.
* Export set singletons, see :pull:`577`.
* Added :func:`~diofant.ntheory.primetest.is_square`, :func:`~diofant.utilities.iterables.ordered_partitions`, :func:`~diofant.utilities.iterables.permute_signs` and :func:`~diofant.utilities.iterables.signed_permutations`, see :pull:`578`.
* Correct implementation of the trial method (uses Gröbner bases) in :func:`~diofant.polys.numberfields.primitive_element`, see :pull:`608` and :pull:`609`.
* Internal (not in :class:`~diofant.polys.rootoftools.RootOf` yet) support of root isolation for polynomials over Gaussian rationals, see :pull:`606`.
* Support (not in :class:`~diofant.polys.rootoftools.RootOf` yet) of root isolation for polynomials over Gaussian rationals, see :pull:`606`.
* 100% test coverage for :mod:`~diofant.matrices`, :mod:`~diofant.domains`, :mod:`~diofant.logic`, :mod:`~diofant.parsing` and :mod:`~diofant.printing` modules. Overall test coverage is 96%.

Developer changes
=================

* Enabled docstring testing with flake8, see :pull:`408`.
* Use only relative imports in the codebase, see :pull:`421`.
* Enabled flake8-comprehensions plugin, see :pull:`420`.
* Sort imports with `isort <https://github.com/timothycrosley/isort>`_, see :pull:`520`.
* Imports are sorted with `isort <https://github.com/timothycrosley/isort>`_, see :pull:`520`.
* Depend on `hypothesis <https://hypothesis.readthedocs.io/en/latest/>`_, see :pull:`547`.
* Depend on `pytest-xdist <https://github.com/pytest-dev/pytest-xdist>`_, see :pull:`551`.
* Depend on `pytest-timeout <https://bitbucket.org/pytest-dev/pytest-timeout>`_, see :pull:`608`.
Expand Down

0 comments on commit 501e687

Please sign in to comment.