" I cannot reproduce the AttributeError integrals - on my computer they eventually fail with an ECL memory limit error."
Yes, you are right, it is "ECL says: Memory limit reached." I have to find out why Python exception in my program printed "Exception raised: AttributeError" I just verified one of these: sqlite> select rowid from main where fricas_pass=-2 and fricas_anti LIKE '%AttributeError%'; 73702 73703 74212 74213 74293 74294 74966 74967 sqlite> select fricas_anti from main where rowid=73702; Exception raised: AttributeError sqlite> select command_in_fricas from main where rowid=73702; integrate(1/(x-(a*x+b)^(1/2)*(c+(a*x+b)^(1/2))^(1/2)),x, algorithm="fricas") sqlite> select command_in_fricas from main where rowid=73703; integrate(1/(x-(a*x+b)^(1/2)*(c+(a*x+b)^(1/2))^(1/2)),x, algorithm="fricas") sqlite> >sage ┌────────────────────────────────────────────────────────────────────┐ │ SageMath version 10.1, Release Date: 2023-08-20 │ │ Using Python 3.11.3. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ sage: var('x a b c') (x, a, b, c) sage: integrate(1/(x-(a*x+b)^(1/2)*(c+(a*x+b)^(1/2))^(1/2)),x, algorithm="fricas") --------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) File ~/TMP/sage-10.1/src/sage/interfaces/interface.py:748, in InterfaceElement.__init__(self, parent, value, is_name, name) 747 try: --> 748 self._name = parent._create(value, name=name) 749 except (TypeError, RuntimeError, ValueError) as x: File ~/TMP/sage-10.1/src/sage/interfaces/maxima_lib.py:621, in MaximaLib._create(self, value, name) 620 else: --> 621 self.set(name, value) 622 except RuntimeError as error: File ~/TMP/sage-10.1/src/sage/interfaces/maxima_lib.py:529, in MaximaLib.set(self, var, value) 528 cmd = '%s : %s$'%(var, value.rstrip(';')) --> 529 self.eval(cmd) File ~/TMP/sage-10.1/src/sage/interfaces/maxima_lib.py:475, in MaximaLib._eval_line(self, line, locals, reformat, **kwds) 474 if statement: --> 475 maxima_eval("#$%s$" % statement) 476 if not reformat: File ~/TMP/sage-10.1/src/sage/libs/ecl.pyx:830, in sage.libs.ecl.EclObject.__call__() 829 lispargs = EclObject(list(args)) --> 830 return ecl_wrap(ecl_safe_apply(self.obj,(<EclObject>lispargs).obj)) 831 File ~/TMP/sage-10.1/src/sage/libs/ecl.pyx:353, in sage.libs.ecl.ecl_safe_apply() 352 else: --> 353 raise RuntimeError("ECL says: {}".format(message)) 354 else: RuntimeError: ECL says: Memory limit reached. Please jump to an outer pointer, quit program and enlarge the memory limits before executing the program again. During handling of the above exception, another exception occurred: TypeError Traceback (most recent call last) Cell In [2], line 1 ----> 1 integrate(Integer(1)/(x-(a*x+b)**(Integer(1)/Integer(2))*(c+(a*x+b)**(Integer(1)/Integer(2)))**(Integer(1)/Integer(2))),x, algorithm="fricas") File ~/TMP/sage-10.1/src/sage/misc/functional.py:773, in integral(x, *args, **kwds) 648 """ 649 Return an indefinite or definite integral of an object ``x``. 650 (...) 770 771 """ 772 if hasattr(x, 'integral'): --> 773 return x.integral(*args, **kwds) 774 else: 775 from sage.symbolic.ring import SR File ~/TMP/sage-10.1/src/sage/symbolic/expression.pyx:13283, in sage.symbolic.expression.Expression.integral() 13281 R = SR 13282 return R(integral(f, v, a, b, **kwds)) > 13283 return integral(self, *args, **kwds) 13284 13285 integrate = integral File ~/TMP/sage-10.1/src/sage/symbolic/integration/integral.py:1062, in integrate(expression, v, a, b, algorithm, hold) 1060 if not integrator: 1061 raise ValueError("Unknown algorithm: %s" % algorithm) -> 1062 return integrator(expression, v, a, b) 1063 if a is None: 1064 return indefinite_integral(expression, v, hold=hold) File ~/TMP/sage-10.1/src/sage/symbolic/integration/external.py:206, in fricas_integrator(expression, v, a, b, noPole) 203 else: 204 result = e_fricas.integrate(seg) --> 206 result = result.sage() 208 if result == "failed": 209 result = expression.integrate(v, a, b, hold=True) File ~/TMP/sage-10.1/src/sage/interfaces/interface.py:1121, in InterfaceElement.sage(self, *args, **kwds) 1102 def sage(self, *args, **kwds): 1103 """ 1104 Attempt to return a Sage version of this object. 1105 (...) 1119 [0 0] 1120 """ -> 1121 return self._sage_(*args, **kwds) File ~/TMP/sage-10.1/src/sage/interfaces/fricas.py:2051, in FriCASElement._sage_(self) 2046 return FriCASElement._sage_expression(P.get_InputForm(self._name)) 2048 if head == "Expression" or head == "Pi": 2049 # we treat Expression Integer and Expression Complex 2050 # Integer just the same -> 2051 return FriCASElement._sage_expression(P.get_InputForm(self._name)) 2053 if head == 'DistributedMultivariatePolynomial': 2054 base_ring = self._get_sage_type(domain[2]) File ~/TMP/sage-10.1/src/sage/interfaces/fricas.py:1754, in FriCASElement._sage_expression(fricas_InputForm) 1749 del rootOf[var] 1750 if evars: 1751 # we just need any root per FriCAS specification - 1752 # however, if there are extra variables, we cannot 1753 # use QQbar.any_root -> 1754 rootOf_ev[var] = poly.roots(var, multiplicities=False)[0] 1755 else: 1756 R = PolynomialRing(QQbar, "x") File ~/TMP/sage-10.1/src/sage/symbolic/expression.pyx:12332, in sage.symbolic.expression.Expression.roots() 12330 return p.roots(ring=ring, multiplicities=multiplicities) 12331 > 12332 S, mul = self.solve(x, multiplicities=True, explicit_solutions=explicit_solutions) 12333 if len(mul) == 0 and explicit_solutions: 12334 raise RuntimeError("no explicit roots found") File ~/TMP/sage-10.1/src/sage/symbolic/expression.pyx:12399, in sage.symbolic.expression.Expression.solve() 12397 """ 12398 from sage.symbolic.relation import solve > 12399 return solve(self, x, multiplicities=multiplicities, 12400 solution_dict=solution_dict, 12401 explicit_solutions=explicit_solutions, File ~/TMP/sage-10.1/src/sage/symbolic/relation.py:1068, in solve(f, *args, **kwds) 1063 raise TypeError("The first argument to solve() should be a " 1064 "symbolic expression or a list of symbolic " 1065 "expressions.") 1067 if isinstance(f, Expression): # f is a single expression -> 1068 return _solve_expression(f, x, explicit_solutions, multiplicities, to_poly_solve, solution_dict, algorithm, domain) 1070 if not isinstance(f, (list, tuple)): 1071 raise TypeError("The first argument must be a symbolic expression or a list of symbolic expressions.") File ~/TMP/sage-10.1/src/sage/symbolic/relation.py:1338, in _solve_expression(f, x, explicit_solutions, multiplicities, to_poly_solve, solution_dict, algorithm, domain) 1336 try: 1337 if to_poly_solve != 'force': -> 1338 s = m.solve(x).str() 1339 else: # omit Maxima's solve command 1340 s = str([]) File ~/TMP/sage-10.1/src/sage/interfaces/interface.py:696, in InterfaceFunctionElement.__call__(self, *args, **kwds) 695 def __call__(self, *args, **kwds): --> 696 return self._obj.parent().function_call(self._name, [self._obj] + list(args), kwds) File ~/TMP/sage-10.1/src/sage/interfaces/interface.py:616, in Interface.function_call(self, function, args, kwds) 612 self._check_valid_function_name(function) 613 s = self._function_call_string(function, 614 [s.name() for s in args], 615 ['%s=%s'%(key,value.name()) for key, value in kwds.items()]) --> 616 return self.new(s) File ~/TMP/sage-10.1/src/sage/interfaces/interface.py:385, in Interface.new(self, code) 384 def new(self, code): --> 385 return self(code) File ~/TMP/sage-10.1/src/sage/interfaces/interface.py:298, in Interface.__call__(self, x, name) 295 pass 297 if isinstance(x, str): --> 298 return cls(self, x, name=name) 299 try: 300 # Special methods do not and should not have an option to 301 # set the name directly, as the identifier assigned by the 302 # interface should stay consistent. An identifier with a 303 # user-assigned name might change its value, so we return a 304 # new element. 305 result = self._coerce_from_special_method(x) File ~/TMP/sage-10.1/src/sage/interfaces/interface.py:750, in InterfaceElement.__init__(self, parent, value, is_name, name) 748 self._name = parent._create(value, name=name) 749 except (TypeError, RuntimeError, ValueError) as x: --> 750 raise TypeError(x) TypeError: ECL says: Memory limit reached. Please jump to an outer pointer, quit program and enlarge the memory limits before executing the program again. sage: --------------------------------------------- As for the " no explicit roots" errors, you are right, it it is duplicate of #32143 as you noticed. Please free free to close the one I just opened in this case on this. Thanks --Nasser On Friday, September 8, 2023 at 4:24:08 AM UTC-5 axio...@yahoo.de wrote: > Hi Nasser! > > I cannot reproduce the AttributeError integrals - on my computer they > eventually fail with an ECL memory limit error. > > I'm quite sure that the problem is the same as with the explicit roots - > there is no sagemath equivalent for fricas' implicit roots, which is > https://github.com/sagemath/sage/issues/32143. > > Best wishes, > > Martin > On Friday, 8 September 2023 at 04:45:00 UTC+2 Nasser M. Abbasi wrote: > >> >> >> Yes, these are sagemath API errors. I've submitted bug report on these >> ones ( no explicit roots found ) >> https://github.com/sagemath/sage/issues/36211 >> >> There are 17 such failures >> >> sqlite> select COUNT(*) from main where fricas_pass=-2 and fricas_anti >> LIKE '%no explicit roots found%'; >> 17 >> >> sqlite> select rowid from main where fricas_pass=-2 and fricas_anti LIKE >> '%no explicit roots found%'; >> 11675 >> 11679 >> 26634 >> 26635 >> 26637 >> 26638 >> 26639 >> 37499 >> 37502 >> 42249 >> 42252 >> 56590 >> 56591 >> 60472 >> 61525 >> 61528 >> 73949 >> >> sqlite> select command_in_fricas from main where rowid=11675; >> integrate(1/(b*x^7+a),x, algorithm="fricas") >> >> >> The "AttributeError" is also sagemath error. And there are 8 of these >> >> sqlite> select rowid from main where fricas_pass=-2 and fricas_anti LIKE >> '%AttributeError%'; >> 73702 >> 73703 >> 74212 >> 74213 >> 74293 >> 74294 >> 74966 >> 74967 >> >> --Nasser >> >> >> >> On Thursday, September 7, 2023 at 1:05:40 PM UTC-5 Waldek Hebisch wrote: >> >>> Dnia Thu, Sep 07, 2023 at 02:03:54AM -0700, 'Nasser M. Abbasi' via >>> FriCAS - computer algebra system napisał(a): >>> > >>> > fyi, summer 2023 edition of CAS integration tests is now completed >>> after 7 >>> > months running. >>> > >>> > There is now a new chapter that shows internal exceptions generated by >>> > different CAS systems. >>> > >>> > These are the Fricas ones (DISTINCT ones, not the full list as there >>> are >>> > over 2.000) >>> >>> Thanks for info,. >>> > >>> > RuntimeError >> no explicit roots found >>> >>> AFAICS this is Sage error. >>> >>> > >>> > AttributeError >>> >>> That one also looks like Sage error. >>> >>> >>> -- >>> Waldek Hebisch >>> >> -- You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group. To unsubscribe from this group and stop receiving emails from it, send an email to fricas-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/fricas-devel/1d38d105-8e4f-4687-8fe8-d05af7af4525n%40googlegroups.com.