Path to this page:
Subject: CVS commit: pkgsrc/math/py-sympy
From: Ryo ONODERA
Date: 2020-09-20 16:30:01
Message id: 20200920143001.3B105FB28@cvs.NetBSD.org
Log Message:
py-sympy: Update to 1.6.2
Changelog:
1.6.2
Changes
matrices
Fixed a bug that made matrix operations fail in a multithreaded \
application. (#19812 by @pd0wm)
polys
Using factor with the extension argument no longer hangs in some cases. \
(#19847 by @jksuom and @rainwoodman)
printing
Calling preview with viewer="file" no longer looks for a file \
executable (a regression in 1.6.0) (#19904 by @eric-wieser)
The deprecation of calling preview with viewer="StringIO" is \
now expired instead of forgotten (a regression in 1.6.0) (#19904 by \
@eric-wieser)
other
intersphinx links to :mod:`sympy` no longer point to the documentation \
for Immutable Matrices (#19881 by @eric-wieser and @oscarbenjamin)
1.6.1
Changes
functions
Fixes AttributeError in limit evaluation (#19604 by @sachin-4099)
matrices
Disabled default matrix intermediate product simplification and changed \
it to enable via context manager. (#19612 by @oscarbenjamin and @Pristine-Cat)
simplify
Fixes a bug in collect when collected symbols appear in the factorized \
expression. (#19601 by @mloubout and @oscarbenjamin)
solvers
Fixed exception handling in solveset's secondary trigonometric solver. \
(#19602 by @gschintgen and @oscarbenjamin)
other
SymPy is importable again in Python 3.5.1 (imports of typing.Type are \
removed) (#19620 by @oscarbenjamin)
Fix the sphinx docs build for sphinx 3.1.1 (#19598 by @oscarbenjamin)
1.6
Backwards compatibility breaks and deprecations
Please manually add any backwards compatibility breaks or deprecations here, in \
addition to the automatic listing below.
assumptions
Removed deprecated Q.bounded (use Q.finite instead). Deprecated since \
version 1.0 (issue: #9425) (#18390 by @Smit-create)
Removed deprecated Q.infinitesimal (use Q.zero instead). Deprecated \
since version 1.0 (issue: #9675) (#18390 by @Smit-create)
Removed deprecated Q.infinity (use Q.infinte instead). Deprecated since \
version 1.0 (issue: #9426) (#18390 by @Smit-create)
calculus
Deprecated evaluate argument in differentiate_finite for making \
non-conservative finite differences. (#17881 by @vezeli)
combinatorics
Using Permutation.print_cyclic will raise deprecation warnings (#18033 \
by @oscarbenjamin, @souravgl0, and @sylee957)
core
Deprecated sympify automatically converting custom objects with __str__ \
or __repr__ implemented. (#19006 by @sylee957)
BREAKING CHANGE: Basic.has no longer accepts strings as input. For \
example in SymPy 1.5 you could do Symbol('x').has('x') and the string 'x' passed \
to has would be sympified to a symbol so that the result would be True. In SymPy \
1.6 this will raise an error because the string 'x' can not be sympified using \
strict sympification. (#19251 by @oscarbenjamin)
Remove deprecated bounded, unbounded and infinitesimal. Deprecated since \
version 0.7.6 (issue #8071) (#18503 by @Smit-create)
Relational is no longer a subclass of Expr and does not produce \
nonsensical results in arithmetic operations. This affects all Relational \
subclasses (Eq, Ne, Gt, Ge, Lt, Le). It is no longer possible to call \
meaningless Expr methods like as_coeff_Mul on Relational instances. (#18053 by \
@oscarbenjamin)
Expr now uses cooperative dispatch for binary operations so it is \
possible for non-Expr Basic subclasses to override the behaviour of e.g. a + b \
where one of a or b is an instance of Expr. This also means that any non-Expr \
Basic subclasses can not depend on Expr.__add__ to create Add(a, b): if a class \
is not a subclass of Expr and wants to define binary operations with Expr it \
must do so explicitly in its own __add__ method. For classes depending on this \
this is not a backward compatible change. (#18116 by @oscarbenjamin)
matrices
The Matrix.is_zero property has been renamed to Matrix.is_zero_matrix.
Matrix.is_zero is now always False. This is because in general is_zero \
means the number zero so a matrix can never be zero.
To get the old behavior of M.is_zero in both old and new versions of sympy \
use from sympy.core.logic import fuzzy_and; fuzzy_and(m.is_zero for m in M). \
(#18464 by @sylee957)
polys
BREAKING CHANGE: Poly and PurePoly now subclass Basic rather than Expr. \
This means that they no longer have various Expr methods such as expand that do \
not make sense for Poly. Use as_expr to convert the Poly to an Expr before using \
Expr methods. (#18613 by @oscarbenjamin)
BREAKING CHANGE: Poly instances with different domains now always \
compare unequal with p1 == p2 and p1.eq(p2). Previously Poly instances that had \
the same expression and generators would compare equal even if the domains were \
different. In some cases it might be necessary to specify the domain when \
comparing e.g. if p == Poly(x, x, domain='QQ'). (#18613 by @oscarbenjamin)
DEPRECATION: Mixing Poly with non-polynomial Expr in binary operations \
is now deprecated. For example Poly(x, x) * exp(x) will give a deprecation \
warning but still return the Expr x*exp(x) as before. If the Expr can be \
converted to Poly (e.g. Poly(x, x) * x) then a Poly will be returned. To get an \
Expr always use the as_expr method first to convert the Poly to an Expr. To get \
a Poly always use as_poly to convert the Expr to a Poly. (#18613 by \
@oscarbenjamin)
DEPRECATION: Passing Poly as the integrand to the integrate function or \
Integral class is now deprecated. Use the integrate method instead e.g. Poly(x, \
x).integrate(x) (#18613 by @oscarbenjamin)
printing
Removed deprecated Ccodeprinter (Use C89Printer or C99Printer instead). \
Deprecated since version 1.1 (Issue : #12220). (#18392 by @risubaba)
Removed deprecated file viewer option in preview. Deprecated since \
version 0.7.3(Issue: #7018) (#18392 by @risubaba)
Removed deprecated StringIO viewer option in preview. Deprecated since \
version 0.7.2(Issue: #7083) (#18392 by @risubaba)
sets
Set now uses cooperative dispatch for binary operations so it is \
possible for non-Set Basic subclasses to override the behaviour of e.g. a + b \
where one of a or b is an instance of Set. This also means that any non-Set \
Basic subclasses can not depend on e.g. Set.__add__ to create Union(a, b): if a \
class is not a subclass of Set and wants to define binary operations with Set it \
must do so explicitly in its own __add__ method. For classes depending on this \
this is not a backward compatible change. (#18116 by @oscarbenjamin)
other
Submodule names are no longer imported with from sympy import *. They \
can still be imported directly like from sympy import core or accessed like \
sympy.core, or like sys.modules['sympy.simplify'] for modules that share names \
with SymPy functions. (#18245 by @oscarbenjamve the T/F assumptions of a symbol \
or expression (#19155 by @smichr)
common_assumptions returns the T/F assumptions in common amongst the \
given expressions (#19155 by @smichr)
Added a refine_matrixelement function (#18681 by @Saanidhyavaeprecated \
Q.bounded (use Q.finite instead). Deprecated since version 1.0 (issue: #9425) \
(#18390 by @Smit-create)
Removed deprecated Q.infinitesimal (use Q.zero instead). Deprecated \
since version 1.0 (issue: #9675) (#18390 by @Smit-create)
ask(Q.antihermitian()) which earlier generated incorrect results. (#18303 \
by @czgdp1807)
Improved code in ask function using constructs from cnf module. (#18204 \
by @JSS95 and @mcpl-sympy)
Fixed bug in ask function: In case of user-defineus_domain now finds \
singularities in nested fractions (#19047 by @smichr and @ThomasHickman)
singularities has been upgraded to handle more than rational functions \
(#19047 by @smichr and @ThomasHickman)
fixes operations of AccumBounds (#18803 by @Ryand1234)
periodicity of exponential functions with a non-zero phase component is \
now calculated. (#18746 by @mohitacecode)
Correct the solution of differentiate_finite for expressions that \
contain embedded derivatives. (#17881 by @vezeli)
Deprecated evaluate argument in differentiate_finite for making \
non-conservative finite differences. (#17881 by @vezeli)
Updated docstrings of maximum, minimum, stationary_points and \
AccumBounds.intersection (#18581 by @mijo2)
Fixes Recursion Error in AccumulationBounds.__pow__ by adding a check on \
denominator (#18450 by @Smit-create)
combinatorics
Permutation * PermutationGroup and PermutationGroup * Permutation return \
Coset. (#19139 by @mohitacecode)
Added Coset Class. (#19077 by @mohitacecode and @sylee957)
Added SymmetricPermutationGroup Class. (#19077 by @mohitacecode and \
@sylee957)
Added schur number utilities in combinatorics (#18667 by @mijo2 and \
@slacker404)
Raise exception with wrong size in Permutation. (#18587 by @Smit-create)
Added Permutation.conjugacy_class and Permutation.conjugacy_classes for \
computing conjugacy classes in permutation groups. (#18354 by @lucjon and \
@sachin-4099)
Fixed Permutation applying for negative integers. (#18032 by @mrocklin \
and @sylee957)
Added Permutation.apply to use permutation as a symbolic function. \
(#18032 by @mrocklin and @sylee957)
Using Permutation.print_cyclic will raise deprecation warnings (#18033 \
by @oscarbenjamin, @souravgl0, and @sylee957)
Cycle class is no longer mutable and can be regarded as a sparse \
representation of a permutation (#17973 by @sachin-4099)
core
BREAKING CHANGE: Basic.has no longer accepts strings as input. For \
example in SymPy 1.5 you could do Symbol('x').has('x') and the string 'x' passed \
to has would be sympified to a symbol so that the result would be True. In SymPy \
1.6 this will raise an error because the string 'x' can not be sympified using \
strict sympification. (#19251 by @oscarbenjamin)
Mul.is_integer no longer rebuilds arguments into Mul (#19182 by \
@iammosespaulr)
Mul with odd numerator and even denominator is recognized as rational \
but not integer (#19155 by @smichr)
Deprecated sympify automatically converting custom objects with __str__ \
or __repr__ implemented. (#19006 by @sylee957)
when strict=True, as_int will not convert True to 1 (#19054 by @smichr)
Support mpmath.matrix in sympify. (#18911 by @smichr and @sylee957)
Adds simplification to Pow._eval_nseries resolving incorrect limit \
evaluation (#18962 by @sachin-4099)
doit(deep=False) now evaluates Add and Mul. (#18829 by @JSS95 and \
@mcpl-sympy)
Reduces sensitivity of computation of order terms in Pow._eval_nseries \
(#18785 by @sachin-4099)
Pow.is_zero is fixed for some cases involving infinite (or possibly \
infinite) expressions. (#18728 by @oscarbenjamin)
Now finite and infinite are logical opposites in the old assumptions \
system so e.g. a Symbol declared with finite=False will have infinite=True. \
(#18726 by @oscarbenjamin)
sympify no longer converts numpy arrays with size to scalars (#18651 by \
@mijo2 and @NeilGirdhar)
__getnewargs__() added to Zero, One, NegativeOne, Half. (#18675 by \
@mohitacecode)
simplification of powers with numerical products in the base is improved \
(#18650 by @sachin-4099)
sqrt(x).is_negative is False when x is real (#18597 by @Smit-create)
Add,_eval_as_leading_term() has been fixed (#18340 by @sachin-4099)
Updated the definition of atoms method of class Basic (#18532 by @mijo2)
basic - sorting in subs is improved so unsorted arguments will prefer \
replacing more complicated patterns first (e.g. the second derivative before the \
first derivative). (#18043 by @Psycho-Pirate)
Remove deprecated bounded, unbounded and infinitesimal. Deprecated since \
version 0.7.6 (issue #8071) (#18503 by @Smit-create)
Added check for AccumBounds. (#18478 by @smichr and @Smit-create)
Adding gmpy in integer_nthroot ( It works only for n < 2**63) (#18380 \
by @Smit-create)
Added new test case for relational (#18416 by @mijo2)
Pow._eval_nseries fixed to accept all real exponents. (#18406 by \
@Smit-create)
integer_ntroot and igcd now use gmpy when it is installed (#18276 by \
@Smit-create)
Changed some partial derivatives like diff(f(g(x), h(x)), x) not to have \
dummy symbols. (#18326 by @sachin-4099)
subs now works correctly with partial derivatives. (#18326 by @sachin-4099)
Subclass of Function can inherit its nargs attribute to its subclasses. \
(#18258 by @JSS95 and @mcpl-sympy)
Added try-except block in sympy/core/relational.py to handle \
NotImplementedError and return ConditionSet (#18211 by @Smit-create)
Renamed core/evaluate to core/parameters (#18198 by @JSS95, @mcpl-sympy, \
and @oscarbenjamin)
Added global_parameters, which is a thread-local storage for global \
parameters such as evaluate, distribute, etc. (#18198 by @JSS95, @mcpl-sympy, \
and @oscarbenjamin)
Relational is no longer a subclass of Expr and does not produce \
nonsensical results in arithmetic operations. This affects all Relational \
subclasses (Eq, Ne, Gt, Ge, Lt, Le). It is no longer possible to call \
meaningless Expr methods like as_coeff_Mul on Relational instances. (#18053 by \
@oscarbenjamin)
Expr now uses cooperative dispatch for binary operations so it is \
possible for non-Expr Basic subclasses to override the behaviour of e.g. a + b \
where one of a or b is an instance of Expr. This also means that any non-Expr \
Basic subclasses can not depend on Expr.__add__ to create Add(a, b): if a class \
is not a subclass of Expr and wants to define binary operations with Expr it \
must do so explicitly in its own __add__ method. For classes depending on this \
this is not a backward compatible change. (#18116 by @oscarbenjamin)
Added global_evaluate[0] condition in add, sub, mul, div functions in \
Infinity class. (#18109 by @namannimmo10)
Moved .as_poly() from Basic to Expr. (#18094 by @dhruvmendiratta6)
Fixed a bug in Factors().as_expr() that led to simplifications that are \
not generally valid for complex numbers. (Exponents were always multiplied in \
power-of-a-power situations.) (#18087 by @gschintgen)
Fix a regression in 1.5 that allowed expressions to compare equal to \
strings, and caused == to call str() on the other object. (#18057 by @asmeurer)
functions
Adjoint of exp and transpose of exp now work as expected. (#19151 by \
@akirakyle)
Adds substitution to _eval_nseries() function of Abs() class resolving \
incorrect limit evaluations (#19037 by @sachin-4099)
expand log term into its prime factors if the factor flag is True. \
(#18927 by @sbt4104)
Evaluate nested floor/ceiling. (#18903 by @sbt4104)
Update expand function for binomials. (#18802 by @sbt4104)
periodicity of trigonometric functions with a non-zero phase component \
is now calculated. (#18746 by @mohitacecode)
__getnewargs__() and args() added to IdentityFunction. (#18675 by \
@mohitacecode)
Added _eval_nseries() functionality to hyper (#18630 by @dhruvmendiratta6)
Fix number of terms in exp._eval_nseries. (#18598 by @mohitacecode)
Fixes TypeError while using simplify (#18640 by @Smit-create)
Added proportional tolerance for falling factorial test (#18456 by @mijo2)
polygamma(n, 1/2) with n a positive integer is automatically evaluated \
(#18451 by @ethankward)
floor and ceiling with float arguments now return Integers (#18424 by \
@mohitacecode)
Sympified output numbers for factorial and binomial used with Mod. \
(#18339 by @namannimmo10)
Maximum recursion depth is no longer exceeded when subfactorial is \
called on large numbers (#17983 by @sachin-4099)
Copy edited the Special submodule to reflect the style guide for Google \
Season of Docs. (#17844 by @lglattly)
geometry
Line.bisectors will return the two perpendicular lines, bisecting the \
angles at the intersection of two linear entities and laying in the same plane \
as them (#19094 by @Jaime02 and @smichr)
Added explicit optional parameters to Polygon and convex_hull (#15757 by \
@oscargus)
Added bisectors method for Polygon class. (#18335 by @namannimmo10)
Add __call__ method in Class Curve. (#18250 by @namannimmo10)
Point.coordinates was added as a meaningful alias for Point.args (#18213 \
by @Jaime02)
holonomic
A cache mismatch error was fixed. (#19248 by @iammosespaulr and @smichr)
integrals
Handling Float Integrals (#18434 by @Smit-create)
Added integration over summation (#18491 by @mijo2)
Added extra step to evaluate integral if heurisch() returns None in \
heurisch_wrapper() (#18153 by @risubaba)
Catch ValueError from meijerg() in _inverse_mellin_transform(). (#18141 \
by @Smit-create)
logic
boolalg (#18912 by @smichr)
to_cnf/to_dnf (when simplify=True) require force=True` if there are more \
than 8 variables (#18912 by @smichr)
simplify_logic recognizes trivial simplified cases (#18912 by @smichr)
is_literal can treat Not as literal or not by using the literal_Not flag \
(#18912 by @smichr)
Opposing Relationals are now detected correctly in nested Ands allowing \
evaluation to False in more cases. (#18811 by @oscarbenjamin)
Added a new normal form - ANFform. Function ANFform converts a list of \
truth values to an expression in Algebraic Normal Form (ANF). (#13686 by \
@KonstantinTogoi)
Added a new method BooleanFunction.to_anf that converts an expression to \
ANF by equivalent transformations. (#13686 by @KonstantinTogoi)
Added a new function is_anf that checks if an expression is ANF. (#13686 \
by @KonstantinTogoi)
Added a new function to_anf that converts an expression to ANF if it is \
not ANF. (#13686 by @KonstantinTogoi)
Added a new function distribute_xor_over_and. Given a sentence s \
consisting of conjunction and exclusive disjunctions of literals, it returns an \
equivalent exclusive disjunction. (#13686 by @KonstantinTogoi)
Added a new function bool_minterm that returns the k-th minterm of a \
fixed ordered set of binary variables. (#13686 by @KonstantinTogoi)
Added a new function bool_maxterm that returns the k-th maxterm of a \
fixed ordered set of binary variables. (#13686 by @KonstantinTogoi)
Added a new function bool_monomial that returns the k-th monomial of a \
fixed ordered set of binary variables. (#13686 by @KonstantinTogoi)
matrices
Fixed matrix creation from the list containg numpy ndarray. (e.g. \
Matrix([np.array([1, 2]), np.array([1, 2])])) (#19229 by @sylee957)
Added is_strongly_diagonally_dominant and is_weakly_diagonally_dominant \
properties for Matrix. (#19205 by @sylee957)
Powers of non-square matrices now always raise an error, even when \
constructed using MatPow(...). (#19104 by @jlherren)
ZeroMatrix will not be logically False. (#19110 by @sbt4104)
Added connected_components and connected_components_decomposition for \
matrix which decomposes a matrix into a block diagonal form. (#19045 by \
@sylee957)
Added todok function to find dictionary of keys format from any dense or \
sparse matrices. (#19045 by @sylee957)
Added BlockDiagMatrix.get_diag_blocks to provide an user API to get \
diagonal blocks from the matrix. (#19045 by @sylee957)
Fixed bug of mpmath.matrix transforming into wrong shape if used to \
create Matrix. (#18911 by @smichr and @sylee957)
Improved eigenvals and eigenvects for floating point matrices using \
mpmath. (#18911 by @smichr and @sylee957)
Some expressions involving OneMatrix are now simplified. (#19009 by \
@jlherren)
Indexing BlockMatrix now more often produces correct results and remains \
unevaluated if a correct simplification is not possible. (#19007 by @jlherren)
Added a function that rotates matrices by 90 degrees (#18953 by \
@iammosespaulr and @sylee957)
sparsetools - _doktocsr now returns a MutableSparseMatrix (#18940 by @smichr)
Added Golub Kahan Bidiagonalization with Householder Reflections (#18797 \
by @sudoWin)
Added test_solvers.py file which contains all the solvers-related tests. \
(#18793 by @guptabhaskar)
Added evaluate option to MatAdd and MatMul (#18765 by @JSS95 and @mcpl-sympy)
non-square matrices now raise NonSquareMatrixError if inversion is \
attempted (#18647 by @abhinav28071999)
Added test_subspaces.py file which contain all the reductions-related \
tests. (#18713 by @mohitacecode)
Added test_reductions.py file which contain all the reductions-related \
tests. (#18705 by @mohitacecode)
Added test_eigen.py file which contain all the eigen-related tests. \
(#18690 by @mohitacecode)
Added test_decomposition.py file which contain all the \
decomposition-related tests. (#18685 by @mohitacecode)
Added test_determinant.py file which contain all the determinant-related \
tests. (#18668 by @mohitacecode)
Faster Matrix Inverse using Block Matrix (#18608 by @abhinav28071999)
Faster Matrix exponentiation using Cayley Hamilton Theorem (#18595 by \
@abhinav28071999)
Fixed BlockDiagMatrix(A).blocks giving a non-block matrix. (#18621 by \
@abhinav28071999)
Added dotprodsimp keyword to MatrixArithmetic.pow (#18600 by @Pristine-Cat)
Implemented General Matrix Analytic functions (#18565 by @abhinav28071999)
Enabled intermediate matrix product simplification to control expression \
blowup during certain matrix operations. (#18572 by @Pristine-Cat) (#18147 by \
@Pristine-Cat) (#18049 by @Pristine-Cat)
Added environment variable check SYMPY_DOTPRODSIMP=0 to turn off the new \
dotprodsimp simplification in case the structure of the new results breaks user \
code. Should be removed after next live release. (#18572 by @Pristine-Cat)
Pulled out and cleaned up many matrix function implementations from \
matrices.py into individual matrix source files determinant.py, reductions.py, \
subspaces.py, eigen.py, decompositions.py, solvers.py and inverse.py. (#18564 by \
@Pristine-Cat) (#18519 by @Pristine-Cat) (#18425 by @Pristine-Cat) (#18420 by \
@Pristine-Cat) (#18342 by @Pristine-Cat)
Immutable matrices return themselves on call to as_immutable(). (#18441 \
by @Pristine-Cat)
Fixed wrapper for NumPy matrices so SymPy iteration and indexing works \
correctly. (#18160 by @Pristine-Cat)
Not backwards compatible: The Matrix.is_zero property has been renamed \
to Matrix.is_zero_matrix. Matrix.is_zero is now always False. This is because in \
general is_zero means the number zero so a matrix can never be zero. To get the \
old behavior of M.is_zero in both old and new versions of sympy use from \
sympy.core.logic import fuzzy_and; fuzzy_and(m.is_zero for m in M). (#18464 by \
@sylee957)
Added PermutationMatrix and MatrixPermute for matrix permutations. \
(#18032 by @mrocklin and @sylee957)
Fixed FunctionMatrix.replace raising TypeError: 'property' object is not \
iterable when the function is not a Lambda instance. (#17998 by @sylee957)
FunctionMatrix and ElementwiseApplyFunction will always wrap the \
function inside Lambda. (#17998 by @sylee957)
Cleaned up unnecessary slowdown for MatMul.doit when it contains \
explicit matrices. (#17872 by @sylee957)
Fixed MatPow(Inverse(A), 3) and Inverse(MatPow(A, 3)) canonicalized into \
different objects. (#17872 by @sylee957)
Improved inversion of block matrices by selecting an appropriate \
formula. (#19215 by @jlherren)
ntheory
the number of digits (like bit length) can now be specified for digits \
(#18961 by @Arpan612 and @smichr)
Corrects the condition for "Extra strong" Lucas pseudoprime \
(#18946 by @Arpan612 and @sylee957)
count_digits works only with numbers (not strings) (#18807 by @smichr)
digits is now located in digits instead of factor_ (#18807 by @smichr)
implemented elliptic curve (#18682 by @abhinav28071999 and @shikil)
added new ntheory module digits.py containing methods related to \
arithmetic properties of integers (currently, frequency counters for digits of \
integers, palindromic numbers) (#18659 by @sr-murthy)
Made divisor_sigma() symbolically recognize the case: \
divisor_sigma(a**j*b**k) (#18688 by @sachin-4099)
Added multiplicty_in_factorial(p, n) to find the multiplicity of p in n! \
without calculating the factorial. (#18671 by @sachin-4099)
implemented gaussian prime test (#18673 by @abhinav28071999)
is_nthpow_residue no longer raises ValueError when a < 0 (#18398 by \
@abhinav28071999)
polynomial_congruence recognizes x**n + a = 0 mod m as a special case \
(#18398 by @abhinav28071999)
Added polynomial_congruence(expr, m) to find values congruent (mod m) to \
a polynomial (#18294 by @abhinav28071999)
is_nthpow_residue handles numbers that are not powers of a primitive \
root. (#18337 by @abhinav28071999)
Fixes nthroot_mod for prime powers (#18274 by @abhinav28071999)
nthroot_mod now supports composite moduli (#18199 by @abhinav28071999)
Added dra and drm to calculate digital root via addition and \
multiplication (#16496 by @abhinav28071999 and @smichrinav28071999)
Make nthroot_mod , primitive_root and _primitive_root_prime_iter \
incompatible with composite modulo. (#18194 by @risubaba)
In def _sqrt_mod_prime_power(a, p, k): it is assumed that p is a prime \
number. And this function caled check for zero in is_nthpow_residue. (#18129 by \
@erdOne)
Added proper_divisor and proper_divisor_count functions (#18085 by \
@adhoc-king and @czgdp1807)
Proper exception when accessing index 0 of sieve. (#18013 by @JulienPalard)
parsing
added support for unary operators: unary plus(+), unary minus(-), \
pre/post increment(++), pre/post decrement(--) and logical NOT(!) in C parser \
(#19140 by @smitgajjar)
added support for parenthesized expression in C parser (#19140 b as_expr \
method first to convert the Poly to an Expr. To get a Poly always use as_poly to \
convert the Expr to a Poly. (#18613 by @oscarbenjamin)
DEPRECATION: Passing Poly as the integrand to the integrate function or \
Integral class is now deprecated. Use the integrate method instead e.g. Poly(x, \
x).integrate(x) (#18613 by @oscarbenjamin)
add condition for f == 0 to Piecewise solution for symbolic quartic \
polynomials (#18571 by @harsh9200)
Fixed polynomial gcd bug (#18566 by @Smit-create)
Added check for expressions containing GoldenRatio and \
TribonacciConstant (#18535 by @Smit-create)
Added expand in simplify method of ExpressionDomain (#18472 by @Smit-create)
Fixed the issue of cancel not expanding the product of irrational \
conjugates and added Tests (#18448 by @iamabhishek0)
Prevent creation of CC from changing the context of RealElement. (#18312 \
by @V1krant)
Changes in Poly.__new__() to make it handle simplified Matrix (#18159 by \
@Smit-create)
interpolate will no longer return nan when x is a supplied coordinate \
(#18030 by @smichr)
interpolating_poly will raise an error if x is not symbolic (#18030 by \
@smichr)
interpolating_poly will raise an error if X or Y depend on x (#18030 by \
@smichr)
interpolating-poly will now use only the first n points in X and Y \
(#18030 by @smichr)
Added KSY_precondition() to test for the Kapur-Saxena-Yang precondition \
(#17974 by @ctsiagkalis)
Added get_KSY_Dixon_resultant() and auxiliary methods for computing the \
KSY approach to Dixon's Resultant (#17974 by @ctsiagkalis)
printing
the inverse hyperbolic functions now respect the inv_trig_style printer \
setting (#19235 by @eric-wieser)
Fixed numpy printer raising error for unevaluated numeric power. (#19170 \
by @sylee957)
Fixed IdentityFunction printing for LaTeX. (#19032 by @sylee957)
Added parenthesize_super option to LatexPrinter. (#18256 by @JSS95 and \
@mcpl-sympy)
Removing python2 support from PythonCodePrinter (#18381 by @Smit-create)
Added support for airy functions in the SciPyPrinter class. (#18908 by \
@OmarWagih1)
allowed ReprPrinter to maintain original expr order via turning ordering \
off (#18777 by @leerobert)
Fix lambdify with Min for arrays of more than one dimension (#18774 by \
@sbt4104)
Fixed MatMul with complex coefficients raising error when printed. \
(#18744 by @sylee957)
fixes incorrect parenthesizes in latex print of integral (#18772 by \
@Ryand1234)
fixes nested differentiation problem in latex format (#18740 by @Ryand1234)
added Python printer for KroneckerDelta (#18185 by @m93a)
Added min and max options for printers thod of undetermined \
coefficients. (#18410 by @Mohitbalwani26)
Fixed checkodesol for some cases when the solution returned by variation \
of parameters was correct but chekodesol couldn't simplify it. (#18376 by \
@Mohitbalwani26)
Fixed dsolve for some cases of linear non-homogeneous ODEs when using \
the method of undetermined coefficients. (#18309 by @Mohitbalwani26)
Changed return type from None to [], as in #18199 the return type of \
nth_root was changed when all_root = True and no root exists (#18285 by \
@abhinav28071999)
ode.py - solve function is used to express the equation in factorised \
form (#18214 by @Mohitbalwani26 and @smichr)
Fixed a bug in diophantine where negative coefficients could lead to \
incomplete sction with permute=True. (#18200 by @gschintgen)
The diophantine solver no longer raises for unsympified inputs. (#18201 \
by @oscarbenjamin)
fixed a bug in diophantine when using permute=True which caused \
incomplete permutations to be returned (#18189 by @abhinav28071999)
diophantine.py - fixed bug where AttributeError was raised in some \
cases. (#18167 by @Mohitbalwani26)
Solving of hyperbolic equations improved in solveset. (#14053 by \
@gschintgen, @ishanaj, @oscarbenjamin, and @oscargus)
Copy edited solvers.py to reflect the style guide for Google Season of \
Docs. (#17921 by @lglattly)
stats
Allowing the user to define custom distributions (#19123 by @Smit-create)
Added coskewness (#18935 by @Smit-create)
Added sampling methods for discrete random variables (#18289 by @Smit-create)
Added median function. (#18300 by @Smit-create)
Updated some documentation in NormalGamma and JointRV functions (#18589 \
by @akash9712 8336 by @Smit-create)
Fixed domain bug in probability method of ContinuousPspace in \
sympy/stats/crv.py (#18311 by @Smit-create)
Added Bernoulli Process in sympy/stats/stochastic_process_types.py \
(#18173 by @Smit-create)
Added Heger bound (#18605 by @Smit-create)
Implemented derivatives with respect to symbols in tensor expressions \
(#18093 by @joha2 and @Upabjojr)
Implemented derivatives with respect to tensors in tensor expressions \
(#18093 by @joha2 and @Upabjojr)
Added _eval_simplify method for class ImmutableDenseNDimArray (#18369 by \
@iamabhishek0)
Fixing bug in replacing indices in PartialDerivative tensor objects. \
(#18242 by @Upabjojr)
Tensor module: refactory to allow mixing PartialDerivative and TensAdd. \
(#18224 by @Upabjojr)
Fix PartialDerivative operator to correctly handle the valence \
(covariant/contravariant) of the deriving variable. (#18166 by @Upabjojr)
.dummy_fmt changed to .dummy_name (#17518 by @drybalka)
metric parameter for TensorIndexType is now split into 2 optional \
parameters metric_name and metric_symmetry (#17518 by @drybalka)
TensorIndexType.dim is now a symbol and not None (#17518 by @drybalka)
utilities
Overflow condition and negative argument for 'ibin' added (#18973 by \
@Arpan612)
iterables - uniq will now raise a RuntimeError if a size change of the \
sequence is detected (#18835 by @smichr)
iterables now includes is_palindromic to check if a sequence (or slice \
thereof) is palindromic (#18807 by @smichr)
iterables: generate_derangements now handles unsorted input correctly \
(#18810 by @smichr)
Code for the test runner is moved to a new sympy.testing package. \
(#18095 by @oscarbenjamin)
lambdify: avoid using scipy versions of numpy functions, which are \
deprecated, in lambdify. (#18080 by @sylee957)
other
Replace inspect.getargspec with getfullargspec (#18784 by @sethtroisi)
Updated README to include details about how to install SymPy using PyPI \
(#18518 by @mijo2)
Corrected an inconsistency in the "Advanced Expression \
Manipulation" section of the tutorial. (#18287 by @Smit-create)
Submodule names are no longer imported with from sympy import *. They \
can still be imported directly like from sympy import core or accessed like \
sympy.core, or like sys.modules['sympy.simplify'] for modules that share names \
with SymPy functions. (#18245 by @oscarbenjamin)
README.rst - Added the codecov Badge in readme.rst (#18266 by \
@Mohitbalwani26)
updated the README.rst and doc/README.rst with links to the SymPy \
Documentation Style Guide. (#17922 by @lglattly)
Files: