Diofant 0.11

22 Apr 2020

New features

  • Added discrete_log() to compute discrete logarithms, see #785. Thanks to Gabriel Orisaka.

  • Support inhomogenous case for systems of linear ODEs with constant coefficients, see #919.

  • Support domains pickling, see #972.

Major changes

  • Poly now use sparse polynomial representation (via PolyElement) internally, see #795.

  • rsolve() now return list of dict’s, see #940.

  • solve() now return all solutions for equations, involving surds, see #910.

  • Module galoistools was adapted to use FiniteField’s and usual conventions for low-level methods of the polys module, see #957, #971 and #964. Polynomial factorization now works for univariate polynomials over any FiniteField’s domain.

  • Module euclidtools was ported to use sparse polynomial representation, see #994.

Compatibility breaks

  • Removed support for Python 3.5 and 3.6, see #775.

  • is_monomial attribute of Poly renamed to is_term, see #780.

  • Removed log() helper from RationalField, see #787.

  • Removed seterr() function, see #794.

  • Removed DMP class, see #795.

  • Removed ring_series module, see #820.

  • Equality doesn’t support single-argument call, see #828.

  • Removed is_nonnegative(), is_nonpositive() and is_positive() methods of Domain subclasses, see #834 and #975.

  • Change order of keyword arguments for integrate(), see #834.

  • Removed support for dps='' in Float. Significant digits automatically counted for int and str inputs, see #797.

  • Removed numer/denom properties of FracElement, see #851.

  • Removed is_hermitian/is_antihermitian core properties, see #873.

  • Removed print_python() and print_ccode() functions, see #891.

  • Reorder output for jordan_form() and jordan_cells(), the last one is now optional, see #896.

  • Removed generate_oriented_forest(), kbins() and ibin() functions, see #903.

  • Removed support for numexpr module in lambdify() and NumExprPrinter printer class, see #903.

  • Removed DeferredVector class, see #905.

  • Don’t export too much from solvers to the default namespace, keep only solve(), rsolve() and dsolve() functions, see #921.

  • Make rsolve()’s init parameter more compatible with dsolve()’s one, e.g. drop accepting init=[1, 2, 3] and init={0: 1, 1: 2, 2: 3} forms, see #921.

  • Removed dict_merge(), generate_bell() and reshape() functions, see #921.

  • Removed subs() methods from PolyElement and FracElement, see #967.

  • is_negative() method of Domain refactored to the is_normal(), see #977.

  • Removed algebraic_field() method of IntegerRing, see #977.

  • Removed has_assoc_Field property, is_SymbolicDomain property renamed to is_ExpressionDomain of Domain, see #977.

  • drop_to_ground() method of PolynomialRing renamed to eject(), see #977.

  • Renamed option misspeled option bareis to bareiss in det() and wronskian(), see #866.

  • Removed nth_power_roots_poly(), ground_roots(), refine_root(), intervals() and sturm() functions and nth_power_roots_poly(), ltrim(), ground_roots(), refine_root(), intervals(), max_norm(), l1_norm() and sturm() methods of Poly, see #996.

Minor changes

  • Support truncation for elements of RealAlgebraicField to int, see #788.

  • Matrix’s and Array’s support symbolic indexes, see #785. Thanks to Francesco Bonazzi.

  • Added AA_FACTOR_METHOD configuration option to specify factorization algorithm for polynomials with algebraic coefficients, see #844.

  • CCodeGen got support for common subexpression replacement, see #893. Thanks to James Cotton.

  • 100% test coverage for utilities module.

  • rsolve() got simplify option to control default output simplification, see #921.

  • Function rsolve() got initial support for systems of equations, see #921.

  • minimal_polynomial() got support for RootOf instances over algebraic number fields, see #927.

  • The CommutativeRing and all derived classes got characteristic property, see #968.

  • Correct wrong implementations of factorization algorithms over finite fields, see #968 and #964. Thanks to Kalevi Suominen for help with review.

Developer changes

Issues closed

See the release milestone for complete list of issues and pull requests involved in this release.

These Sympy issues also were addressed: