Inspired by this ask.sagemath.org question 
<https://ask.sagemath.org/question/78686/taylor-expansion-in-sagemath-returns-error/>
.

Compare this Maxima standalone execution :
(%i1) display2d:false; (%o1) false (%i2) g: 1/4*((w1^2*w3^2*x1^4*x2^6*x3^8 
+ 2*(w1^2*w3^2*x1^4*x2^6 + w1^2*w3*x1^3*x2^5)*x3^7 + (w1^2*w3^2*x1^4*x2^6 + 
2*w1^2*w3*x1^3*x2^5 + 2*w1^2*x1^2*x2^4)*x3^6)*x4^6 + 
2*((w1^2*w3^2*x1^4*x2^6 + (w1^2*w3^2*x1^4 + (2*w1^2*w3 + 
w1*w3^2)*x1^3)*x2^5)*x3^7 + 2*(w1^2*w3^2*x1^4*x2^6 + (w1^2*w3^2*x1^4 + 
(3*w1^2*w3 + w1*w3^2)*x1^3)*x2^5 + (w1^2*w3*x1^3 + (w1^2 + 
w1*w3)*x1^2)*x2^4)*x3^6 + (w1^2*w3^2*x1^4*x2^6 + (w1^2*w3^2*x1^4 + 
(4*w1^2*w3 + w1*w3^2)*x1^3)*x2^5 + 2*(w1^2*w3*x1^3 + (2*w1^2 + 
w1*w3)*x1^2)*x2^4 + 2*(w1^2*x1^2 + w1*x1)*x2^3)*x3^5)*x4^5 + 
((w1^2*w3^2*x1^4*x2^6 + 2*(w1^2*w3^2*x1^4 + (3*w1^2*w3 + 
2*w1*w3^2)*x1^3)*x2^5 + (w1^2*w3^2*x1^4 + 2*(3*w1^2*w3 + 2*w1*w3^2)*x1^3 + 
2*(3*w1^2 + 6*w1*w3 + w3^2)*x1^2)*x2^4)*x3^6 + 2*(w1^2*w3^2*x1^4*x2^6 + 
(2*w1^2*w3^2*x1^4 + (7*w1^2*w3 + 4*w1*w3^2)*x1^3)*x2^5 + (w1^2*w3^2*x1^4 + 
4*(2*w1^2*w3 + w1*w3^2)*x1^3 + (9*w1^2 + 16*w1*w3 + 2*w3^2)*x1^2)*x2^4 + 
(w1^2*w3*x1^3 + (3*w1^2 + 4*w1*w3)*x1^2 + 2*(3*w1 + w3)*x1)*x2^3)*x3^5 + 
(w1^2*w3^2*x1^4*x2^6 + 2*(w1^2*w3^2*x1^4 + 2*(2*w1^2*w3 + 
w1*w3^2)*x1^3)*x2^5 + (w1^2*w3^2*x1^4 + 2*(5*w1^2*w3 + 2*w1*w3^2)*x1^3 + 
2*(7*w1^2 + 10*w1*w3 + w3^2)*x1^2)*x2^4 + 2*(w1^2*w3*x1^3 + (5*w1^2 + 
4*w1*w3)*x1^2 + 2*(5*w1 + w3)*x1)*x2^3 + 2*(w1^2*x1^2 + 4*w1*x1 + 
2)*x2^2)*x3^4)*x4^4 + 2*(((w1^2*w3 + w1*w3^2)*x1^3*x2^5 + (2*(w1^2*w3 + 
w1*w3^2)*x1^3 + (3*w1^2 + 10*w1*w3 + 2*w3^2)*x1^2)*x2^4 + ((w1^2*w3 + 
w1*w3^2)*x1^3 + (3*w1^2 + 10*w1*w3 + 2*w3^2)*x1^2 + 4*(3*w1 + 
2*w3)*x1)*x2^3)*x3^5 + (2*(w1^2*w3 + w1*w3^2)*x1^3*x2^5 + (4*(w1^2*w3 + 
w1*w3^2)*x1^3 + (7*w1^2 + 22*w1*w3 + 4*w3^2)*x1^2)*x2^4 + 2*((w1^2*w3 + 
w1*w3^2)*x1^3 + 2*(2*w1^2 + 6*w1*w3 + w3^2)*x1^2 + (17*w1 + 10*w3)*x1)*x2^3 
+ ((w1^2 + 2*w1*w3)*x1^2 + 2*(5*w1 + 2*w3)*x1 + 8)*x2^2)*x3^4 + ((w1^2*w3 + 
w1*w3^2)*x1^3*x2^5 + 2*((w1^2*w3 + w1*w3^2)*x1^3 + (2*w1^2 + 6*w1*w3 + 
w3^2)*x1^2)*x2^4 + ((w1^2*w3 + w1*w3^2)*x1^3 + (5*w1^2 + 14*w1*w3 + 
2*w3^2)*x1^2 + 12*(2*w1 + w3)*x1)*x2^3 + ((w1^2 + 2*w1*w3)*x1^2 + 2*(7*w1 + 
2*w3)*x1 + 12)*x2^2 + 2*(w1*x1 + 2)*x2)*x3^3)*x4^3 + 24*(x2^2 + 2*x2 + 
1)*x3^2 + 2*(((w1^2 + 4*w1*w3 + w3^2)*x1^2*x2^4 + 2*((w1^2 + 4*w1*w3 + 
w3^2)*x1^2 + (8*w1 + 7*w3)*x1)*x2^3 + ((w1^2 + 4*w1*w3 + w3^2)*x1^2 + 
2*(8*w1 + 7*w3)*x1 + 20)*x2^2)*x3^4 + 2*((w1^2 + 4*w1*w3 + w3^2)*x1^2*x2^4 
+ (2*(w1^2 + 4*w1*w3 + w3^2)*x1^2 + 3*(6*w1 + 5*w3)*x1)*x2^3 + ((w1^2 + 
4*w1*w3 + w3^2)*x1^2 + 4*(5*w1 + 4*w3)*x1 + 27)*x2^2 + ((2*w1 + w3)*x1 + 
7)*x2)*x3^3 + ((w1^2 + 4*w1*w3 + w3^2)*x1^2*x2^4 + 2*((w1^2 + 4*w1*w3 + 
w3^2)*x1^2 + 2*(5*w1 + 4*w3)*x1)*x2^3 + ((w1^2 + 4*w1*w3 + w3^2)*x1^2 + 
6*(4*w1 + 3*w3)*x1 + 36)*x2^2 + 2*((2*w1 + w3)*x1 + 9)*x2 + 2)*x3^2)*x4^2 + 
24*x2^2 + 48*(x2^2 + 2*x2 + 1)*x3 + 12*(((w1 + w3)*x1*x2^3 + (2*(w1 + 
w3)*x1 + 5)*x2^2 + ((w1 + w3)*x1 + 5)*x2)*x3^3 + (2*(w1 + w3)*x1*x2^3 + 
(4*(w1 + w3)*x1 + 11)*x2^2 + 2*((w1 + w3)*x1 + 6)*x2 + 1)*x3^2 + ((w1 + 
w3)*x1*x2^3 + 2*((w1 + w3)*x1 + 3)*x2^2 + ((w1 + w3)*x1 + 7)*x2 + 1)*x3)*x4 
+ 48*x2 + 24)*e^(-w2*x1*x2*x3*x4)/((x2^3*x3^6*e^(w5*x1*x2) + 
3*x2^3*x3^5*e^(w5*x1*x2) + 3*x2^3*x3^4*e^(w5*x1*x2) + 
x2^3*x3^3*e^(w5*x1*x2))*x4^3*e^(w6*x1*x2*x3) + 3*((x2^3 + 
x2^2)*x3^5*e^(w5*x1*x2) + 3*(x2^3 + x2^2)*x3^4*e^(w5*x1*x2) + 3*(x2^3 + 
x2^2)*x3^3*e^(w5*x1*x2) + (x2^3 + 
x2^2)*x3^2*e^(w5*x1*x2))*x4^2*e^(w6*x1*x2*x3) + 3*((x2^3 + 2*x2^2 + 
x2)*x3^4*e^(w5*x1*x2) + 3*(x2^3 + 2*x2^2 + x2)*x3^3*e^(w5*x1*x2) + 3*(x2^3 
+ 2*x2^2 + x2)*x3^2*e^(w5*x1*x2) + (x2^3 + 2*x2^2 + 
x2)*x3*e^(w5*x1*x2))*x4*e^(w6*x1*x2*x3) + ((x2^3 + 3*x2^2 + 3*x2 + 
1)*x3^3*e^(w5*x1*x2) + 3*(x2^3 + 3*x2^2 + 3*x2 + 1)*x3^2*e^(w5*x1*x2) + 
3*(x2^3 + 3*x2^2 + 3*x2 + 1)*x3*e^(w5*x1*x2) + (x2^3 + 3*x2^2 + 3*x2 + 
1)*e^(w5*x1*x2))*e^(w6*x1*x2*x3))$ (%i3) foo:coeff(taylor(g, x4, 0, 8), 
x4^7)$ 

which works okay, with these Sage snippets :
sage: g.taylor(x4, 0, 7).coefficient(x4, 7) 
--------------------------------------------------------------------------- 
RuntimeError Traceback (most recent call last) File 
/usr/local/sage-10/src/sage/interfaces/interface.py:750, in 
InterfaceElement.__init__(self, parent, value, is_name, name) 749 try: --> 
750 self._name = parent._create(value, name=name) 751 except (TypeError, 
RuntimeError, ValueError) as x: File 
/usr/local/sage-10/src/sage/interfaces/maxima_lib.py:623, in 
MaximaLib._create(self, value, name) 622 else: --> 623 self.set(name, 
value) 624 except RuntimeError as error: File 
/usr/local/sage-10/src/sage/interfaces/maxima_lib.py:533, in 
MaximaLib.set(self, var, value) 532 cmd = '%s : %s$' % (var, 
value.rstrip(';')) --> 533 self.eval(cmd) File 
/usr/local/sage-10/src/sage/interfaces/maxima_lib.py:479, in 
MaximaLib._eval_line(self, line, locals, reformat, **kwds) 478 if 
statement: --> 479 maxima_eval("#$%s$" % statement) 480 if not reformat: 
File /usr/local/sage-10/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 /usr/local/sage-10/src/sage/libs/ecl.pyx:358, in 
sage.libs.ecl.ecl_safe_apply() 357 else: --> 358 raise RuntimeError("ECL 
says: {}".format(message)) 359 else: RuntimeError: ECL says: THROW: The 
catch RAT-ERR is undefined. During handling of the above exception, another 
exception occurred: TypeError Traceback (most recent call last) Cell 
In[161], line 1 ----> 1 g.taylor(x4, Integer(0), 
Integer(7)).coefficient(x4, Integer(7)) File 
/usr/local/sage-10/src/sage/symbolic/expression.pyx:5044, in 
sage.symbolic.expression.Expression.taylor() 5042 except Exception: 5043 
raise NotImplementedError("Wrong arguments passed to taylor. See taylor? 
for more details.") -> 5044 l = self._maxima_().taylor(B) 5045 return 
self.parent()(l) 5046 File 
/usr/local/sage-10/src/sage/interfaces/interface.py:698, in 
InterfaceFunctionElement.__call__(self, *args, **kwds) 697 def 
__call__(self, *args, **kwds): --> 698 return 
self._obj.parent().function_call(self._name, [self._obj] + list(args), 
kwds) File /usr/local/sage-10/src/sage/interfaces/interface.py:617, in 
Interface.function_call(self, function, args, kwds) 613 
self._check_valid_function_name(function) 614 s = 
self._function_call_string(function, 615 [s.name() for s in args], 616 
['%s=%s' % (key, value.name()) for key, value in kwds.items()]) --> 617 
return self.new(s) File 
/usr/local/sage-10/src/sage/interfaces/interface.py:386, in 
Interface.new(self, code) 385 def new(self, code): --> 386 return 
self(code) File /usr/local/sage-10/src/sage/interfaces/interface.py:299, in 
Interface.__call__(self, x, name) 296 pass 298 if isinstance(x, str): --> 
299 return cls(self, x, name=name) 300 try: 301 # Special methods do not 
and should not have an option to 302 # set the name directly, as the 
identifier assigned by the 303 # interface should stay consistent. An 
identifier with a 304 # user-assigned name might change its value, so we 
return a 305 # new element. 306 result = 
self._coerce_from_special_method(x) File 
/usr/local/sage-10/src/sage/interfaces/interface.py:752, in 
InterfaceElement.__init__(self, parent, value, is_name, name) 750 
self._name = parent._create(value, name=name) 751 except (TypeError, 
RuntimeError, ValueError) as x: --> 752 raise TypeError(x) TypeError: ECL 
says: THROW: The catch RAT-ERR is undefined. 

Furthermore,
sage: foo=maxima_calculus("coeff(taylor(%s, %s, %s, %s), 
%s);"%tuple(map(lambda u:u._maxima_lib_init_(), (g, x4, 0, 8, x4^7)))) 
--------------------------------------------------------------------------- 
RuntimeError Traceback (most recent call last) File 
/usr/local/sage-10/src/sage/interfaces/interface.py:750, in 
InterfaceElement.__init__(self, parent, value, is_name, name) 749 try: --> 
750 self._name = parent._create(value, name=name) 751 except (TypeError, 
RuntimeError, ValueError) as x: File 
/usr/local/sage-10/src/sage/interfaces/maxima_lib.py:623, in 
MaximaLib._create(self, value, name) 622 else: --> 623 self.set(name, 
value) 624 except RuntimeError as error: File 
/usr/local/sage-10/src/sage/interfaces/maxima_lib.py:533, in 
MaximaLib.set(self, var, value) 532 cmd = '%s : %s$' % (var, 
value.rstrip(';')) --> 533 self.eval(cmd) File 
/usr/local/sage-10/src/sage/interfaces/maxima_lib.py:479, in 
MaximaLib._eval_line(self, line, locals, reformat, **kwds) 478 if 
statement: --> 479 maxima_eval("#$%s$" % statement) 480 if not reformat: 
File /usr/local/sage-10/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 /usr/local/sage-10/src/sage/libs/ecl.pyx:358, in 
sage.libs.ecl.ecl_safe_apply() 357 else: --> 358 raise RuntimeError("ECL 
says: {}".format(message)) 359 else: RuntimeError: ECL says: THROW: The 
catch RAT-ERR is undefined. During handling of the above exception, another 
exception occurred: TypeError Traceback (most recent call last) Cell 
In[165], line 1 ----> 1 foo=maxima_calculus("coeff(taylor(%s, %s, %s, %s), 
%s);"%tuple(map(lambda u:u._maxima_lib_init_(), (g, x4, Integer(0), 
Integer(8), x4**Integer(7))))) File 
/usr/local/sage-10/src/sage/interfaces/interface.py:299, in 
Interface.__call__(self, x, name) 296 pass 298 if isinstance(x, str): --> 
299 return cls(self, x, name=name) 300 try: 301 # Special methods do not 
and should not have an option to 302 # set the name directly, as the 
identifier assigned by the 303 # interface should stay consistent. An 
identifier with a 304 # user-assigned name might change its value, so we 
return a 305 # new element. 306 result = 
self._coerce_from_special_method(x) File 
/usr/local/sage-10/src/sage/interfaces/interface.py:752, in 
InterfaceElement.__init__(self, parent, value, is_name, name) 750 
self._name = parent._create(value, name=name) 751 except (TypeError, 
RuntimeError, ValueError) as x: --> 752 raise TypeError(x) TypeError: ECL 
says: THROW: The catch RAT-ERR is undefined. 

Here, the maxima_lib interface does not hint at the source of problem.
sage: foo=maxima("coeff(taylor(%s, %s, %s, %s), %s);"%tuple(map(lambda 
u:u._maxima_init_(), (g, x4, 0, 8, x4^7)))) 
--------------------------------------------------------------------------- 
TypeError Traceback (most recent call last) Cell In[168], line 1 ----> 1 
foo=maxima("coeff(taylor(%s, %s, %s, %s), %s);"%tuple(map(lambda 
u:u._maxima_init_(), (g, x4, Integer(0), Integer(8), x4**Integer(7))))) 
File /usr/local/sage-10/src/sage/interfaces/interface.py:299, in 
Interface.__call__(self, x, name) 296 pass 298 if isinstance(x, str): --> 
299 return cls(self, x, name=name) 300 try: 301 # Special methods do not 
and should not have an option to 302 # set the name directly, as the 
identifier assigned by the 303 # interface should stay consistent. An 
identifier with a 304 # user-assigned name might change its value, so we 
return a 305 # new element. 306 result = 
self._coerce_from_special_method(x) File 
/usr/local/sage-10/src/sage/interfaces/maxima.py:1176, in 
MaximaElement.__init__(self, parent, value, is_name, name) 1155 def 
__init__(self, parent, value, is_name=False, name=None): 1156 """ 1157 
Create a Maxima element. 1158 See ``MaximaElement`` for full documentation. 
(...) 1174 True 1175 """ -> 1176 ExpectElement.__init__(self, parent, 
value, is_name=False, name=None) File 
/usr/local/sage-10/src/sage/interfaces/expect.py:1518, in 
ExpectElement.__init__(self, parent, value, is_name, name) 1516 else: 1517 
try: -> 1518 self._name = parent._create(value, name=name) 1519 # Convert 
ValueError and RuntimeError to TypeError for 1520 # coercion to work 
properly. 1521 except (RuntimeError, ValueError) as x: File 
/usr/local/sage-10/src/sage/interfaces/interface.py:517, in 
Interface._create(self, value, name) 515 def _create(self, value, 
name=None): 516 name = self._next_var_name() if name is None else name --> 
517 self.set(name, value) 518 return name File 
/usr/local/sage-10/src/sage/interfaces/maxima.py:1015, in Maxima.set(self, 
var, value) 1013 cmd = '%s : %s$' % (var, value.rstrip(';')) 1014 if 
len(cmd) > self.__eval_using_file_cutoff: -> 1015 self._batch(cmd, 
batchload=True) 1016 else: 1017 self._eval_line(cmd) File 
/usr/local/sage-10/src/sage/interfaces/maxima.py:905, in 
Maxima._batch(self, s, batchload) 903 self._expect_expr(s) 904 out = 
self._before() --> 905 self._error_check(cmd, out) 906 os.unlink(filename) 
907 return out File /usr/local/sage-10/src/sage/interfaces/maxima.py:949, 
in Maxima._error_check(self, cmd, out) 947 m = r.search(out) 948 if m is 
not None: --> 949 self._error_msg(cmd, out) File 
/usr/local/sage-10/src/sage/interfaces/maxima.py:966, in 
Maxima._error_msg(self, cmd, out) 951 def _error_msg(self, cmd, out): 952 
""" 953 Raise error with formatted description. 954 (...) 964 Principal 
Value 965 """ --> 966 raise TypeError("Error executing code in 
Maxima\nCODE:\n\t%s\nMaxima ERROR:\n\t%s" % (cmd, out.replace('-- an error. 
To debug this try debugmode(true);', ''))) TypeError: Error executing code 
in Maxima CODE: batchload("/tmp/tmp2d0k4lw6.input-1538064300");1+915520876; 
Maxima ERROR: 
kill(sage6)$batchload("/tmp/tmp2d0k4lw6.input-1538064300");1+915520876; 
PQUOTIENT: Quotient by a polynomial of higher degree (case 2a) -- an error. 
To debug this try: debugmode(true); (%o47) 

Here, an external maxima process, *launched by Sage*, gives us an hint to 
the error.

However, *as initialized by Sage,* this process triggers an error *not 
occurring in a “standalone” `maxima process.*

I did not find a relevant ticket in Github. Suggestions for filing a new 
issue ?

HTH,
​

-- 
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/77865450-18bf-4fba-9761-22e0355d5920n%40googlegroups.com.

Reply via email to