{"issue":{"created_at":"2011-08-14T15:40:43Z","state":"open","updated_at":"2011-12-14T21:14:36Z","user":{"gravatar_id":"19a106c007b937829625d57470b0c19c","id":687933,"url":"https://api.github.com/users/ness01","login":"ness01","avatar_url":"https://secure.gravatar.com/avatar/19a106c007b937829625d57470b0c19c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"comments":32,"body":"This is my final pull request of GSOC code. I understand that the gsoc-2 pull request is still being reviewed (which makes this one look quite monstrous, with >80 commits..), but as suggested elsewhere I'm trying to submit all pull requests (i.e. this one) before the soft pencils down deadline. Also submitting this pull request is my pledge not to rebase the branch more often than absolutely necessary.\r\n\r\nThe commits in this pull request can be separated roughly into three categories (and in principle I could submit separate pull requests for each of these, although I'm not sure if this is helpful):\r\n\r\n- new special functions (polylog, lerchphi, exponential integrals; with varying degree of support for integration)\r\n- general improvements to integration (neater output, more clever heurstics)\r\n- performance improvements\r\n\r\nOver the next few days I will go through and label all the commits (according to a consistent scheme to be come up with...) in order to make reviewing easier (which will of course mean rebasing...)","assignee":null,"id":1403365,"number":543,"pull_request":{"patch_url":"https://github.com/sympy/sympy/pull/543.patch","html_url":"https://github.com/sympy/sympy/pull/543","diff_url":"https://github.com/sympy/sympy/pull/543.diff"},"labels":[],"title":"Gsoc 3","html_url":"https://github.com/sympy/sympy/issues/543","closed_at":null,"url":"https://api.github.com/repos/sympy/sympy/issues/543","milestone":null},"action":"created","comment":{"created_at":"2011-12-14T21:14:35Z","updated_at":"2011-12-14T21:14:35Z","user":{"gravatar_id":"19a106c007b937829625d57470b0c19c","id":687933,"url":"https://api.github.com/users/ness01","login":"ness01","avatar_url":"https://secure.gravatar.com/avatar/19a106c007b937829625d57470b0c19c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"body":"Ah. So there was a bug in combsimp, good to point this out. The \nfollowing works:\n\n```\nsimplify(expand_complex(unpolarify(integrate(cos(a*x)/(x**4 + 1), (x, 0, \noo), \nconds='none').rewrite(besselj).expand(func=True)).subs(gamma(S(5)/4), \nS(1)/4*gamma(S(1)/4)))).replace(sinh, lambda x: \nsinh(x).rewrite(exp)).replace(cosh, lambda x: cosh(x).rewrite(exp))\n\nOut[62]:\n                                           ___\n                                        -╲╱ 2 ⋅a\n         ⎛   ⎛  ___  ⎞      ⎛  ___  ⎞⎞  ────────\n   ___   ⎜   ⎜╲╱ 2 ⋅a⎟      ⎜╲╱ 2 ⋅a⎟⎟     2\n╲╱ 2 ⋅π⋅⎜sin⎜───────⎟ + cos⎜───────⎟⎟⋅ℯ\n         ⎝   ⎝   2   ⎠      ⎝   2   ⎠⎠\n───────────────────────────────────────────────\n                        4\n\n```\n\nWhile this looks horiffic, it's actually fairly sensible: the \nrewrite(besselj) is necessary because besseli does not have expand_func \nimplemented [I'll open a bug report for this]. Then unpolarify, \nexpand_complex, simplify do what we want. The two replace's in the end \nare because I don't know a better way to do this.\n\nOn 13.12.2011 02:52, Aaron Meurer wrote:\n> Actually, I'm not sure if the answer for that is correct.  The correct answer is at http://www.wolframalpha.com/input/?_=1323744636517&i=integrate(cos(a*x)%2f(x**4+%2b+1)%2c+x%3d0..oo)&fp=1&incTime=true.  I compared it with some values of a, and they don't seem to agree.\n>\n> ---\n> Reply to this email directly or view it on GitHub:\n> https://github.com/sympy/sympy/pull/543#issuecomment-3118036\n>","id":3149931,"url":"https://api.github.com/repos/sympy/sympy/issues/comments/3149931"}}