This is new in 10.5.beta6, and seems serious : sage: var("x, y, rho, theta", domain="real") (x, y, rho, theta) sage: Sys=[tan(theta)==y/x, x^2+y^2==rho^2] sage: solve(Sys, (rho, theta)) --------------------------------------------------------------------------- SyntaxError Traceback (most recent call last) File /usr/local/sage-10/src/sage/calculus/calculus.py:2409, in symbolic_expression_from_maxima_string(x, equals_sub, maxima) 2408 SRM_parser._callable_constructor().set_names(function_syms) -> 2409 return SRM_parser.parse_sequence(s) 2410 except SyntaxError: File /usr/local/sage-10/src/sage/misc/parser.pyx:573, in sage.misc.parser.Parser.parse_sequence() 572 --> 573 cpdef parse_sequence(self, s): 574 """ File /usr/local/sage-10/src/sage/misc/parser.pyx:590, in sage.misc.parser.Parser.parse_sequence() 589 cdef Tokenizer tokens = Tokenizer(s) --> 590 all = self.p_sequence(tokens) 591 if tokens.next() != EOS: File /usr/local/sage-10/src/sage/misc/parser.pyx:654, in sage.misc.parser.Parser.p_sequence() 653 elif token == c'[': --> 654 obj = self.p_list(tokens) 655 elif token == c'(': File /usr/local/sage-10/src/sage/misc/parser.pyx:686, in sage.misc.parser.Parser.p_list() 685 self.parse_error(tokens, "Malformed list") --> 686 all = self.p_sequence(tokens) 687 token = tokens.next() File /usr/local/sage-10/src/sage/misc/parser.pyx:663, in sage.misc.parser.Parser.p_sequence() 662 else: --> 663 obj = self.p_eqn(tokens) 664 PyList_Append(all, obj) File /usr/local/sage-10/src/sage/misc/parser.pyx:754, in sage.misc.parser.Parser.p_eqn() 753 """ --> 754 lhs = self.p_expr(tokens) 755 cdef int op = tokens.next() File /usr/local/sage-10/src/sage/misc/parser.pyx:795, in sage.misc.parser.Parser.p_expr() 794 cdef int op --> 795 operand1 = self.p_term(tokens) 796 op = tokens.next() File /usr/local/sage-10/src/sage/misc/parser.pyx:830, in sage.misc.parser.Parser.p_term() 829 cdef int op --> 830 operand1 = self.p_factor(tokens) 831 op = tokens.next() File /usr/local/sage-10/src/sage/misc/parser.pyx:873, in sage.misc.parser.Parser.p_factor() 872 tokens.backtrack() --> 873 return self.p_power(tokens) 874 File /usr/local/sage-10/src/sage/misc/parser.pyx:901, in sage.misc.parser.Parser.p_power() 900 """ --> 901 operand1 = self.p_atom(tokens) 902 cdef int token = tokens.next() File /usr/local/sage-10/src/sage/misc/parser.pyx:958, in sage.misc.parser.Parser.p_atom() 957 func = self.callable_constructor(name) --> 958 args, kwds = self.p_args(tokens) 959 token = tokens.next() File /usr/local/sage-10/src/sage/misc/parser.pyx:995, in sage.misc.parser.Parser.p_args() 994 while token == c',': --> 995 arg = self.p_arg(tokens) 996 if isinstance(arg, tuple): File /usr/local/sage-10/src/sage/misc/parser.pyx:1044, in sage.misc.parser.Parser.p_arg() 1043 tokens.backtrack() -> 1044 return self.p_expr(tokens) 1045 File /usr/local/sage-10/src/sage/misc/parser.pyx:795, in sage.misc.parser.Parser.p_expr() 794 cdef int op --> 795 operand1 = self.p_term(tokens) 796 op = tokens.next() File /usr/local/sage-10/src/sage/misc/parser.pyx:830, in sage.misc.parser.Parser.p_term() 829 cdef int op --> 830 operand1 = self.p_factor(tokens) 831 op = tokens.next() File /usr/local/sage-10/src/sage/misc/parser.pyx:873, in sage.misc.parser.Parser.p_factor() 872 tokens.backtrack() --> 873 return self.p_power(tokens) 874 File /usr/local/sage-10/src/sage/misc/parser.pyx:901, in sage.misc.parser.Parser.p_power() 900 """ --> 901 operand1 = self.p_atom(tokens) 902 cdef int token = tokens.next() File /usr/local/sage-10/src/sage/misc/parser.pyx:970, in sage.misc.parser.Parser.p_atom() 969 if token != c')': --> 970 self.parse_error(tokens, "Mismatched parentheses") 971 return expr File /usr/local/sage-10/src/sage/misc/parser.pyx:1047, in sage.misc.parser.Parser.parse_error() 1046 cdef parse_error(self, Tokenizer tokens, msg="Malformed expression"): -> 1047 raise SyntaxError(msg, tokens.s, tokens.pos) 1048 SyntaxError: Mismatched parentheses During handling of the above exception, another exception occurred: TypeError Traceback (most recent call last) Cell In[9], line 1 ----> 1 solve(Sys, (rho, theta)) File /usr/local/sage-10/src/sage/symbolic/relation.py:1157, in solve(f, *args, **kwds) 1154 except Exception: # if that gives an error, stick with no solutions 1155 s = [] -> 1157 sol_list = string_to_list_of_solutions(repr(s)) 1159 # Relaxed form suggested by Mike Hansen (#8553): 1160 if kwds.get('solution_dict', None): File /usr/local/sage-10/src/sage/symbolic/relation.py:576, in string_to_list_of_solutions(s) 574 from sage.structure.sequence import Sequence 575 from sage.calculus.calculus import symbolic_expression_from_maxima_string --> 576 v = symbolic_expression_from_maxima_string(s, equals_sub=True) 577 return Sequence(v, universe=Objects(), cr_str=True) File /usr/local/sage-10/src/sage/calculus/calculus.py:2411, in symbolic_expression_from_maxima_string(x, equals_sub, maxima) 2409 return SRM_parser.parse_sequence(s) 2410 except SyntaxError: -> 2411 raise TypeError("unable to make sense of Maxima expression '%s' in Sage" % s) 2412 finally: 2413 is_simplified = False TypeError: unable to make sense of Maxima expression '[if((_SAGE_VAR_x != 0) and (1-(_SAGE_VAR_y-I*_SAGE_VAR_x)/(_SAGE_VAR_y+I*_SAGE_VAR_x) != 0),[_SAGE_VAR_rho == -sqrt(_SAGE_VAR_y^2+_SAGE_VAR_x^2),_SAGE_VAR_theta == -((I*log(-((_SAGE_VAR_y^2+_SAGE_VAR_x^2)/(_SAGE_VAR_y^2+2*I*_SAGE_VAR_x*_SAGE_VAR_y-_SAGE_VAR_x^2)))-2*pi*z2067)/2)],union()),if((_SAGE_VAR_x != 0) and (1-(_SAGE_VAR_y-I*_SAGE_VAR_x)/(_SAGE_VAR_y+I*_SAGE_VAR_x) != 0),[_SAGE_VAR_rho == sqrt(_SAGE_VAR_y^2+_SAGE_VAR_x^2),_SAGE_VAR_theta == -((I*log(-((_SAGE_VAR_y^2+_SAGE_VAR_x^2)/(_SAGE_VAR_y^2+2*I*_SAGE_VAR_x*_SAGE_VAR_y-_SAGE_VAR_x^2)))-2*pi*z2675)/2)],union())]' in Sage
However : sage: solve(Sys, (rho, theta), algorithm="sympy") [{rho: -sqrt(x^2 + y^2), theta: arctan(y/x)}, {rho: sqrt(x^2 + y^2), theta: arctan(y/x)}] as expected. By the way, giac is also problematic : sage: solve(Sys, (rho, theta), algorithm="giac") --------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) Cell In[19], line 1 ----> 1 solve(Sys, (rho, theta), algorithm="giac") File /usr/local/sage-10/src/sage/symbolic/relation.py:1129, in solve(f, *args, **kwds) 1126 return sympy_set_to_list(ret, sympy_vars) 1128 if algorithm == 'giac': -> 1129 return _giac_solver(f, x, solution_dict) 1131 from sage.calculus.calculus import maxima 1132 m = maxima(f) File /usr/local/sage-10/src/sage/symbolic/relation.py:1455, in _giac_solver(f, x, solution_dict) 1453 giac_f = libgiac(f) 1454 giac_vars = libgiac(x) -> 1455 ret = giac_f.solve(giac_vars) 1456 sols = ret.sage() 1457 if solution_dict: File /usr/local/sage-10/src/sage/libs/giac/auto-methods.pxi:14802, in sage.libs.giac.giac.GiacMethods_base.solve() 14800 Ex4:solve([x^2-y^2=0,x^2-z^2=0],[x,y,z]) 14801 ''' > 14802 return GiacMethods['solve'](self,*args) 14803 14804 def somme(self,*args): File /usr/local/sage-10/src/sage/libs/giac/giac.pyx:1934, in sage.libs.giac.giac.GiacFunction.__call__() 1932 if n == 1: 1933 args = (Pygen(args[0]).eval(),) -> 1934 return Pygen.__call__(self, *args) 1935 1936 File /usr/local/sage-10/src/sage/libs/giac/giac.pyx:1109, in sage.libs.giac.giac.Pygen.__call__() 1107 pari_unlock_result = GIAC_eval(pari_unlock.gptr[0], <int> 1, context_ptr) 1108 tmp = _wrap_gen(result) -> 1109 raise 1110 else: 1111 result = GIAC_eval(right.gptr[0], <int> 1, context_ptr) File /usr/local/sage-10/src/sage/libs/giac/giac.pyx:1099, in sage.libs.giac.giac.Pygen.__call__() 1097 sig_on() 1098 try: -> 1099 result = self.gptr[0](right.gptr[0], context_ptr) 1100 except RuntimeError: 1101 # The previous computation might have failed due to a pari_lock RuntimeError: Error: Invalid dimension As far as I can remember, I didn’t (yet) see this. It is reproducible in Maxima 5.47.0 : Maxima 5.47.0 https://maxima.sourceforge.io using Lisp GNU Common Lisp (GCL) GCL 2.6.14 git tag Version_2_6_15pre8 Distributed under the GNU Public License. See the file COPYING. Dedicated to the memory of William Schelter. The function bug_report() provides bug reporting information. (%i1) declare(x, real, y, real, rho, real, theta, real); (%o1) done (%i2) solve([tan(theta)=y/x, rho^2=x^2+y^2], [rho, theta]); (%o2) [] (%i3) load("to_poly_solve"); (%o3) /usr/share/maxima/5.47.0/share/to_poly_solve/to_poly_solve.mac (%i4) %solve([tan(theta)=y/x, rho^2=x^2+y^2], [rho, theta]); y - %i x (%o4) %union(%if((x # 0) %and (1 - -------- # 0), y + %i x 2 2 [rho = - sqrt(y + x ), theta = 2 2 y + x %i log(- ------------------) - 2 %pi %z21938 2 2 y + 2 %i x y - x - --------------------------------------------], %union()), 2 y - %i x 2 2 %if((x # 0) %and (1 - -------- # 0), [rho = sqrt(y + x ), y + %i x 2 2 y + x %i log(- ------------------) - 2 %pi %z27138 2 2 y + 2 %i x y - x theta = - --------------------------------------------], %union())) 2 and is also reproducible in Sagecell <https://sagecell.sagemath.org/?z=eJxFzEEKxCAMQNF9Ye4QXEUaWnCfk5QKgREqVB1SEb19Szezf___NOaKSXpMsrSgVywZrf1MTRRNJxgEehSCeoQqhuBbksTMRoOc5nFXOVvArUrGl1jmsfY38o65ezcP73aC7b_Z7Q0yWCaq&lang=sage&interacts=eJyLjgUAARUAuQ==>, which still uses Maxima 5.46.0. -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-support/7b504480-e5a3-4072-ae13-d3a867af1cd8n%40googlegroups.com.