Diofant 0.12
18 Jan 2021
New features
Support modular exponentiation of
PolyElement
’s, see #1032.reduce_inequalities()
support solving linear inequalities with Fourier-Motzkin elimination algorithm, see #1063.Added class
FiniteRing
for modular integers, see #876.Implemented
compose()
for functional composition in the fields of fractions, see #1100.
Major changes
Module
sqfreetools
was ported to use sparse polynomial representation, see #1009.Module
factortools
was ported to use sparse polynomial representation, see #1015, #1018, #1019, #1020 and #1021.Module
rootisolation
was ported to use sparse polynomial representation, finally the dense representation is used nowhere, see #1030, #1031 and #1035.reduce_inequalities()
usesExtendedReals
subsets to solve inequalities, see #1067 and #1092.Added new algorithm for factorization of multivariate polynomials over
AlgebraicField
’s (uses Hensel lifting), see #876. Thanks to Katja Sophie Hotz. Thanks to Kalevi Suominen for help with review.
Compatibility breaks
Removed
vring()
andvfield()
functions, see #1016.Drop support for
from_list()
initialization for multivariate polynomials, see #1035.Drop
to_dense()
,tail_degrees()
,almosteq()
anddegree_list()
methods andis_monic
,is_primitive
attributes ofPolyElement
, see #1035, #1036 and #1051.Drop
is_monic
,is_primitive
,zero
,one
andunit
attributes anddegree_list()
method ofPoly
, see #1036, #1039 and #1051.Drop
sring()
,poly_from_expr()
,gcd_list()
andlcm_list()
functions, see #1037, #1057 and #1086.Functions and classes of the
polytools
module do not support anymore iterables as polynomial generator, see #1039.Drop unused functions
dispersion()
,dispersionset()
anddegree_list()
, see #1051 and #1053.Drop rich comparison methods from the
FracElement
, see #1101.from_list()
support now ascending order of coefficients (i.e., the leading coefficient of univariate polynomial is coming last), see #1103.Removed support for 3D geometry in the
geometry
module andPoint.__getitem__()
method, see #1105.Drop
coeff()
,coeffs()
,monoms()
,terms()
anddeflate()
methods ofPolyElement
, use dictionary indexing, see #1108.
Minor changes
Special case univariate polynomials with
UnivarPolynomialRing
andUnivarPolyElement
, see #1024.Implement
is_primitive
, see #1035.Add
ExtendedReals
singleton, see #1067.100% test coverage for
geometry
module, see #1105. Overall test coverage is around 98%.
Developer changes
Depend on flake8-sfs, see #983.
Drop dependency on strategies, see #1074.
Issues closed
See the release milestone for complete list of issues and pull requests involved in this release.
These Sympy issues also were addressed:
sympy/sympy#19630
rsolve
gives None for linear homogeneous recurrence relationsympy/sympy#19076 modular exponentiation of poly
sympy/sympy#19670 Poly(E**100000000) is slow to create
sympy/sympy#19755 poly gives coercion error when integers and rationals are mixed
sympy/sympy#19760 minimal_polynomial using Groebner basis can give wrong result
sympy/sympy#19770 Limit involving cosine
sympy/sympy#19766 Incorrect limit
sympy/sympy#19774 evalf() doesn’t evaluate terms in an exponential
sympy/sympy#19988 Float loses precision after being pickled
sympy/sympy#14874 Limit x –> oo for besselk
sympy/sympy#19991 Wrong result from floor().evalf()
sympy/sympy#10666 resultant misses the sign
sympy/sympy#20163 Apart hangs with extension=[sqrt(3), I]
sympy/sympy#9479 Cannot solve multivariate inequalities
sympy/sympy#20365 Limit Bug
sympy/sympy#20360 Incorrect definite integration of simple exponential involving pi
sympy/sympy#20389 TypeError: Argument of Integer should be of numeric type, got -oo
sympy/sympy#20391 Linear programming with simplex method
sympy/sympy#19161 When applying simplify on a Poly it fails
sympy/sympy#20397 bug in dividing polynomials by module
sympy/sympy#19196 Slow f.factor_list
sympy/sympy#20491 Inconsistencies in pretty printing in a notebook
sympy/sympy#20490 LaTeX printing of negative constant PolyElement
sympy/sympy#20484 Need more utility for polynomial substitution
sympy/sympy#20485 Rational powers for non-monomial PolyElement
sympy/sympy#20487 LaTeX printing errors for puiseux polynomial
sympy/sympy#20610 Solve: GeneratorsNeeded with system involving constant equation
sympy/sympy#20617 Complex exponentials are not recognized by domains
sympy/sympy#20640 Multivariate polynomial division
sympy/sympy#20704 Limit not terminating