-
-
Notifications
You must be signed in to change notification settings - Fork 657
Description
Seen in this ask.sagemath question:
sage: Ex=(1-2*x^(1/3))^(3/4)/x
sage: integrate(Ex, x, algorithm="giac")
---------------------------------------------------------------------------
SyntaxError Traceback (most recent call last)
/usr/local/sage-P3-2/local/lib/python3.7/site-packages/sage/interfaces/giac.py in _sage_(self, locals)
1100 return symbolic_expression_from_string(result, lsymbols,
-> 1101 accept_sequence=True)
1102
/usr/local/sage-P3-2/local/lib/python3.7/site-packages/sage/calculus/calculus.py in symbolic_expression_from_string(s, syms, accept_sequence)
2384 _augmented_syms = syms
-> 2385 return parse_func(s)
2386 finally:
/usr/local/sage-P3-2/local/lib/python3.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.parse_sequence (build/cythonized/sage/misc/parser.c:5479)()
538
--> 539 cpdef parse_sequence(self, s):
540 """
/usr/local/sage-P3-2/local/lib/python3.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.parse_sequence (build/cythonized/sage/misc/parser.c:5369)()
556 if tokens.next() != EOS:
--> 557 self.parse_error(tokens)
558 if len(all) == 1 and isinstance(all, list):
/usr/local/sage-P3-2/local/lib/python3.7/site-packages/sage/misc/parser.pyx in sage.misc.parser.Parser.parse_error (build/cythonized/sage/misc/parser.c:9742)()
1007 cdef parse_error(self, Tokenizer tokens, msg="Malformed expression"):
-> 1008 raise SyntaxError(msg, tokens.s, tokens.pos)
1009
SyntaxError: Malformed expression
During handling of the above exception, another exception occurred:
NotImplementedError Traceback (most recent call last)
<ipython-input-22-617e71e52902> in <module>()
----> 1 integrate(Ex, x, algorithm="giac")
/usr/local/sage-P3-2/local/lib/python3.7/site-packages/sage/misc/functional.py in integral(x, *args, **kwds)
751 """
752 if hasattr(x, 'integral'):
--> 753 return x.integral(*args, **kwds)
754 else:
755 from sage.symbolic.ring import SR
/usr/local/sage-P3-2/local/lib/python3.7/site-packages/sage/symbolic/expression.pyx in sage.symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:64575)()
12389 R = ring.SR
12390 return R(integral(f, v, a, b, **kwds))
> 12391 return integral(self, *args, **kwds)
12392
12393 integrate = integral
/usr/local/sage-P3-2/local/lib/python3.7/site-packages/sage/symbolic/integration/integral.py in integrate(expression, v, a, b, algorithm, hold)
925 if not integrator:
926 raise ValueError("Unknown algorithm: %s" % algorithm)
--> 927 return integrator(expression, v, a, b)
928 if a is None:
929 return indefinite_integral(expression, v, hold=hold)
/usr/local/sage-P3-2/local/lib/python3.7/site-packages/sage/symbolic/integration/external.py in giac_integrator(expression, v, a, b)
430 return expression.integrate(v, a, b, hold=True)
431 else:
--> 432 return result._sage_()
/usr/local/sage-P3-2/local/lib/python3.7/site-packages/sage/interfaces/giac.py in _sage_(self, locals)
1102
1103 except Exception:
-> 1104 raise NotImplementedError("Unable to parse Giac output: %s" % result)
1105 else:
1106 return [entry.sage() for entry in self]
NotImplementedError: Unable to parse Giac output: Evaluation time: 2.82
12*(1/4*ln(abs((-2*x^(1/3)+1)^(1/4)-1))-1/4*ln((-2*x^(1/3)+1)^(1/4)+1)+1/2*atan((-2*x^(1/3)+1)^(1/4))+1/3*((-2*x^(1/3)+1)^(1/4))^3)
However, the following workaround works:
sage: from giacpy_sage import *
// Giac share root-directory:/usr/local/sage-P3-2/local/share/giac/
// Giac share root-directory:/usr/local/sage-P3-2/local/share/giac/
Help file /usr/local/sage-P3-2/local/share/giac/doc/fr/aide_cas not found
Added 0 synonyms
sage: libgiac.integrate(Ex,x).sage()
4*(-2*x^(1/3) + 1)^(3/4) + 6*arctan((-2*x^(1/3) + 1)^(1/4)) - 3*log((-2*x^(1/3) + 1)^(1/4) + 1) + 3*log(abs((-2*x^(1/3) + 1)^(1/4) - 1))
This seems to point to the (unwelcome) timing information added by Giac before its results... It's probably more of a booboo than a (real|hard) bug, but might defeat a whole problem if this error is raised before other algorithms has had a chance to report their results.
I'm not sure that this should be reported upstream (it should if there is no way to cleanly suppress the timing information).
Cc
ing the participants to #27958, which introduced this particular wolf in the general Sage integration sheepshed...
CC: @fchapoton @mwageringel @sagetrac-jakobkroeker @kcrisman @pjbruin @rwst @seblabbe @slel @sagetrac-tmonteil @videlec @vinklein @zimmermann6 @mforets @mezzarobba
Component: calculus
Keywords: symbolics giac integration
Author: Frédéric Chapoton
Branch: 297033a
Reviewer: Thierry Monteil
Issue created by migration from https://trac.sagemath.org/ticket/28913