From 29f686c2276def4a781d875762c80fcc0eb24132 Mon Sep 17 00:00:00 2001 From: rrodenbusch Date: Tue, 30 Apr 2024 08:21:41 -0500 Subject: [PATCH 1/5] Prevent RecursionError in nc_simplify for floating point coefficients --- sympy/simplify/simplify.py | 2 +- sympy/simplify/tests/test_simplify.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/sympy/simplify/simplify.py b/sympy/simplify/simplify.py index c86eb1500131..7c0d157706dc 100644 --- a/sympy/simplify/simplify.py +++ b/sympy/simplify/simplify.py @@ -1758,7 +1758,7 @@ def compare(s, alt_s): # get the non-commutative part c_args, args = expr.args_cnc() com_coeff = Mul(*c_args) - if com_coeff != 1: + if com_coeff != 1 and com_coeff != 1.0: return com_coeff*nc_simplify(expr/com_coeff, deep=deep) inv_tot, args = _reduce_inverses(args) diff --git a/sympy/simplify/tests/test_simplify.py b/sympy/simplify/tests/test_simplify.py index a26e8e33a2eb..f4392b669375 100644 --- a/sympy/simplify/tests/test_simplify.py +++ b/sympy/simplify/tests/test_simplify.py @@ -1080,3 +1080,8 @@ def test_reduce_inverses_nc_pow(): x, y = symbols("x y", positive=True) assert expand((x*y)**Z) == x**Z * y**Z assert simplify(x**Z * y**Z) == expand((x*y)**Z) + +def test_nc_recursion_coeff(): + X = symbols("X", commutative = False) + assert (2 * cos(pi/3) * X).simplify() == X + assert (2.0 * cos(pi/3) * X).simplify() == X From 93baa1fd8b4dc5c7eb785e69c5b78712fea70494 Mon Sep 17 00:00:00 2001 From: rrodenbusch Date: Tue, 30 Apr 2024 08:59:11 -0500 Subject: [PATCH 2/5] First time contributor --- .mailmap | 1 + 1 file changed, 1 insertion(+) diff --git a/.mailmap b/.mailmap index 4c0988c98177..b6ce8120ceeb 100644 --- a/.mailmap +++ b/.mailmap @@ -1654,3 +1654,4 @@ zzj <29055749+zjzh@users.noreply.github.com> Łukasz Pankowski 彭于斌 <1931127624@qq.com> 袁野 (Yuan Ye) +rrodenbusch From 14f3199296e8acd830c2ea02e8907ab75209c68b Mon Sep 17 00:00:00 2001 From: rrodenbusch Date: Tue, 30 Apr 2024 09:17:10 -0500 Subject: [PATCH 3/5] Use sympy.core.number.equal_valued for coefficient test --- sympy/simplify/simplify.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sympy/simplify/simplify.py b/sympy/simplify/simplify.py index 7c0d157706dc..af351a3c8478 100644 --- a/sympy/simplify/simplify.py +++ b/sympy/simplify/simplify.py @@ -9,7 +9,7 @@ from sympy.core.parameters import global_parameters from sympy.core.function import (expand_log, count_ops, _mexpand, nfloat, expand_mul, expand) -from sympy.core.numbers import Float, I, pi, Rational +from sympy.core.numbers import Float, I, pi, Rational, equal_valued from sympy.core.relational import Relational from sympy.core.rules import Transform from sympy.core.sorting import ordered @@ -1758,7 +1758,7 @@ def compare(s, alt_s): # get the non-commutative part c_args, args = expr.args_cnc() com_coeff = Mul(*c_args) - if com_coeff != 1 and com_coeff != 1.0: + if not equal_valued(com_coeff, 1): return com_coeff*nc_simplify(expr/com_coeff, deep=deep) inv_tot, args = _reduce_inverses(args) From 07f5e42677c5b753f2d61e9fc4cfe2464e9e0b75 Mon Sep 17 00:00:00 2001 From: rrodenbusch Date: Tue, 30 Apr 2024 09:23:40 -0500 Subject: [PATCH 4/5] Add name to mailmap file --- .mailmap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mailmap b/.mailmap index b6ce8120ceeb..0303e3b9fb17 100644 --- a/.mailmap +++ b/.mailmap @@ -1616,6 +1616,7 @@ richierichrawr rimibis <33387803+rimibis@users.noreply.github.com> risubaba ritikBhandari +rrodenbusch rushyam sachinSingh16-09 samithkavishke <55777141+samithkavishke@users.noreply.github.com> @@ -1654,4 +1655,3 @@ zzj <29055749+zjzh@users.noreply.github.com> Łukasz Pankowski 彭于斌 <1931127624@qq.com> 袁野 (Yuan Ye) -rrodenbusch From e3c8666ce5748cb284e84b418087e59d21de6675 Mon Sep 17 00:00:00 2001 From: rrodenbusch Date: Tue, 30 Apr 2024 10:48:19 -0500 Subject: [PATCH 5/5] author: add Richard Rodenbusch to .mailmap --- .mailmap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mailmap b/.mailmap index 0303e3b9fb17..aac350bcc3c5 100644 --- a/.mailmap +++ b/.mailmap @@ -1188,6 +1188,7 @@ Riccardo Magliocchetti Rich LaSota Richard Otis Richard Otis +Richard Rodenbusch rrodenbusch Richard Samuel <98638849+samuelard7@users.noreply.github.com> Richard Samuel Rick Muller @@ -1616,7 +1617,6 @@ richierichrawr rimibis <33387803+rimibis@users.noreply.github.com> risubaba ritikBhandari -rrodenbusch rushyam sachinSingh16-09 samithkavishke <55777141+samithkavishke@users.noreply.github.com>