#13181: _limit_latex_ cannot handle direction argument
---------------------------------+------------------------------------------
Reporter: JoalHeagney | Owner: burcin
Type: defect | Status: needs_review
Priority: minor | Milestone: sage-5.6
Component: calculus | Resolution:
Keywords: limit latex | Work issues:
Report Upstream: N/A | Reviewers:
Authors: Burcin Erocal | Merged in:
Dependencies: | Stopgaps:
---------------------------------+------------------------------------------
Changes (by {'newvalue': u'Burcin Erocal', 'oldvalue': ''}):
* keywords: limits latex integrals => limit latex
* status: new => needs_review
* author: => Burcin Erocal
Old description:
> Here's my code and it's results (in italics):
>
> {{{
> sage: def fracintegral(func,xsub,n,a=0):
> ....: t = var('t')
> ....: assume(t > a)
> ....: assume(x > a)
> ....: return
> integrate((x-t)^(n-1)*func.subs({xsub:t}),t,a,x)/gamma(n)
> ....:
> sage: fracintegral(x,x,1/2)
> 4/3*x^(3/2)/sqrt(pi)
> }}}
>
> {{{
> sage: a = fracintegral(sin(x),x,1/2)
> sage: a
> -1/2*(sqrt(x)*sin(x)*expintegral_e(1/2, -I*x) +
> sqrt(x)*sin(x)*expintegral_e(1/2, I*x) +
> I*sqrt(x)*cos(x)*expintegral_e(1/2, -I*x) -
> I*sqrt(x)*cos(x)*expintegral_e(1/2, I*x) -
> 2*limit(-1/2*(I*expintegral_e(1/2, -I*t + I*x) - I*expintegral_e(1/2, I*t
> - I*x))*sqrt(-t + x)*cos(x) + 1/2*(expintegral_e(1/2, -I*t + I*x) +
> expintegral_e(1/2, I*t - I*x))*sqrt(-t + x)*sin(x), t, x,
> minus))/sqrt(pi)
> }}}
>
> This works if pretty printing (Typeset) is off, but the very last line
> (a) throws the following error if it is turned on.
>
> {{{
> Traceback (most recent call last):
>
> File "<stdin>", line 1, in <module>
>
> File "_sage_input_25.py", line 10, in <module> exec
> compile(u'open("!__ _code!__ _.py","w").write("# -*- coding: utf-8
> -*-\\n" +
> _support_.preparse_worksheet_cell(base64.b64decode("YQ=="),globals())+"\\n");
> execfile(os.path.abspath("!__ _code!__ _.py"))
>
> File "", line 1, in <module>
>
> File "/tmp/tmpdqa295/!__ _code!__ _.py", line 2, in
> <module> exec compile(u'a File "", line 1, in <module>
>
> File "/home/joal/bin/sage-5.0.1/local/lib/python2.7/site-
> packages/sage/misc/latex.py", line 2280, in pretty_print view(object)
>
> File "/home/joal/bin/sage-5.0.1/local/lib/python2.7/site-
> packages/sage/misc/latex.py", line 2006, in view s =
> _latex_file_(objects, title=title, sep=sep, tiny=tiny, debug=debug,
> !**latex_options)
>
> File "/home/joal/bin/sage-5.0.1/local/lib/python2.7/site-
> packages/sage/misc/latex.py", line 1661, in _latex_file_ L = latex(x)
>
> File "/home/joal/bin/sage-5.0.1/local/lib/python2.7/site-
> packages/sage/misc/latex.py", line 909, in !__ call!__ return
> !LatexExpr (x._latex_()) '' ''
>
> File "expression.pyx", line 667, in
> sage.symbolic.expression.Expression._latex_
> (sage/symbolic/!expression.cpp:4236 )
>
> File "ring.pyx", line 605, in sage.symbolic.ring.!SymbolicRing
> ._latex_element_ (sage/symbolic/!ring.cpp:6658 )
>
> File "pynac.pyx", line 433, in
> sage.symbolic.pynac.py_latex_function (sage/symbolic/!pynac.cpp:4817 )
>
> File "pynac.pyx", line 407, in
> sage.symbolic.pynac.py_latex_function_pystring
> (sage/symbolic/!pynac.cpp:4443 )
>
> !TypeError: _limit_latex_() takes exactly 4 arguments (5
> given)
> }}}
>
> Interestingly, if I evaluate the fractional integral of sine directly
> (outside the function), it doesn't pop up any errors at all, AND
> simplifies to a simpler expression.
>
> {{{
> sage: integrate(t^(-1/2)*sin(t),t,0,x)
> 1/4*((I - 1)*sqrt(2)*erf((1/2*I - 1/2)*sqrt(2)*sqrt(x)) + (I +
> 1)*sqrt(2)*erf((1/2*I + 1/2)*sqrt(2)*sqrt(x)))*sqrt(pi)
> }}}
New description:
Here's my code and it's results (in italics):
{{{
sage: def fracintegral(func,xsub,n,a=0):
....: t = var('t')
....: assume(t > a)
....: assume(x > a)
....: return integrate((x-t)^(n-1)*func.subs({xsub:t}),t,a,x)/gamma(n)
....:
sage: fracintegral(x,x,1/2)
4/3*x^(3/2)/sqrt(pi)
}}}
{{{
sage: a = fracintegral(sin(x),x,1/2)
sage: a
-1/2*(sqrt(x)*sin(x)*expintegral_e(1/2, -I*x) +
sqrt(x)*sin(x)*expintegral_e(1/2, I*x) +
I*sqrt(x)*cos(x)*expintegral_e(1/2, -I*x) -
I*sqrt(x)*cos(x)*expintegral_e(1/2, I*x) -
2*limit(-1/2*(I*expintegral_e(1/2, -I*t + I*x) - I*expintegral_e(1/2, I*t
- I*x))*sqrt(-t + x)*cos(x) + 1/2*(expintegral_e(1/2, -I*t + I*x) +
expintegral_e(1/2, I*t - I*x))*sqrt(-t + x)*sin(x), t, x, minus))/sqrt(pi)
}}}
This works if pretty printing (Typeset) is off, but the very last line (a)
throws the following error if it is turned on.
{{{
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "_sage_input_25.py", line 10, in <module> exec
compile(u'open("!__ _code!__ _.py","w").write("# -*- coding: utf-8
-*-\\n" +
_support_.preparse_worksheet_cell(base64.b64decode("YQ=="),globals())+"\\n");
execfile(os.path.abspath("!__ _code!__ _.py"))
File "", line 1, in <module>
File "/tmp/tmpdqa295/!__ _code!__ _.py", line 2, in
<module> exec compile(u'a File "", line 1, in <module>
File "/home/joal/bin/sage-5.0.1/local/lib/python2.7/site-
packages/sage/misc/latex.py", line 2280, in pretty_print view(object)
File "/home/joal/bin/sage-5.0.1/local/lib/python2.7/site-
packages/sage/misc/latex.py", line 2006, in view s =
_latex_file_(objects, title=title, sep=sep, tiny=tiny, debug=debug,
!**latex_options)
File "/home/joal/bin/sage-5.0.1/local/lib/python2.7/site-
packages/sage/misc/latex.py", line 1661, in _latex_file_ L = latex(x)
File "/home/joal/bin/sage-5.0.1/local/lib/python2.7/site-
packages/sage/misc/latex.py", line 909, in !__ call!__ return
!LatexExpr (x._latex_()) '' ''
File "expression.pyx", line 667, in
sage.symbolic.expression.Expression._latex_
(sage/symbolic/!expression.cpp:4236 )
File "ring.pyx", line 605, in sage.symbolic.ring.!SymbolicRing
._latex_element_ (sage/symbolic/!ring.cpp:6658 )
File "pynac.pyx", line 433, in
sage.symbolic.pynac.py_latex_function (sage/symbolic/!pynac.cpp:4817 )
File "pynac.pyx", line 407, in
sage.symbolic.pynac.py_latex_function_pystring
(sage/symbolic/!pynac.cpp:4443 )
!TypeError: _limit_latex_() takes exactly 4 arguments (5
given)
}}}
Interestingly, if I evaluate the fractional integral of sine directly
(outside the function), it doesn't pop up any errors at all, AND
simplifies to a simpler expression.
{{{
sage: integrate(t^(-1/2)*sin(t),t,0,x)
1/4*((I - 1)*sqrt(2)*erf((1/2*I - 1/2)*sqrt(2)*sqrt(x)) + (I +
1)*sqrt(2)*erf((1/2*I + 1/2)*sqrt(2)*sqrt(x)))*sqrt(pi)
}}}
Apply [attachment:trac_13181-limit_latex_direction.patch]
--
Comment:
Patch up, please review.
Apply [attachment:trac_13181-limit_latex_direction.patch]
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13181#comment:3>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.