diff --git a/mathics/builtin/numbers/algebra.py b/mathics/builtin/numbers/algebra.py index be3288e59..4c693954f 100644 --- a/mathics/builtin/numbers/algebra.py +++ b/mathics/builtin/numbers/algebra.py @@ -402,8 +402,9 @@ def eval(self, expr, var, evaluation: Evaluation): expr_sympy = expr.to_sympy() var_sympy = var.to_sympy() + # If the expression cannot be handled by Sympy, just return it. if expr_sympy is None or var_sympy is None: - return None + return expr try: result = sympy.apart(expr_sympy, var_sympy) @@ -1393,8 +1394,9 @@ def eval(self, expr, evaluation): "Factor[expr_]" expr_sympy = expr.to_sympy() + # If the expression cannot be handled by Sympy, just return it. if expr_sympy is None: - return None + return expr try: return from_sympy(sympy_factor(expr_sympy)) diff --git a/mathics/eval/numbers/numbers.py b/mathics/eval/numbers/numbers.py index 52821e044..3352adda0 100644 --- a/mathics/eval/numbers/numbers.py +++ b/mathics/eval/numbers/numbers.py @@ -207,8 +207,9 @@ def cancel(expr): else: try: result = expr.to_sympy() + # If the expression cannot be handled by Sympy, just return it. if result is None: - return None + return expr # result = sympy.powsimp(result, deep=True) result = tracing.run_sympy(sympy.cancel, result)