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:
RevisionActionfile
1.26modifypkgsrc/math/py-sympy/Makefile
1.19modifypkgsrc/math/py-sympy/PLIST
1.17modifypkgsrc/math/py-sympy/distinfo