Comment #12 on issue 2010 by asmeurer: Integration with the full Risch Algorithm
http://code.google.com/p/sympy/issues/detail?id=2010
Unfortunately, not for some time. There are a few major things that this is blocked on that will need to be completed before this can go in. To list them:
- Mateusz's polys11 is not ready to go in. Since my branch is based directly off of his, his will have to pass review before or at the same time as mine. But there are a few problems with his branch currently, like test failures in certain ground types/python's (he hasn't finished re-ordering some modules), problems with polys with floating point coefficients, and the docs don't build (see issue 1949).
- My exact substitution hack, which I mentioned above, will need to be fixed correctly. This is issue 2026.
- I am not completely finished with the algorithm. This is not necessarily blocking the merge, but it would be really nice to have it finished. In that case, you can guarantee that integrating any transcendental function will either produce an antiderivative or else prove that elementary antiderivative exists.
- I want to create a nice class to hold the non-elementary integrals that have been proven to be so (see comments 1-3 above). This technically isn't also blocking the merge, but it definitely blocks the next bullet point.
- It needs to be merged with the old integrator (i.e., made so that integrate() just calls risch_integrate()). I do not plan on doing this until I complete the last four bullet points.
- It needs to be tested more. It seems that every time I use the algorithm, I find some bug in it, which indicates to me that it should definitely go through some intense testing before any merging happens (this is one place where you can help, by the way).
If you read the source code of risch.py, rde.py, and prde.py, you will find that it is littered with TODOs and NotImplementedErrors. In the end, I want to get rid of all of these. But completing everything is a long way off. For example, I still have a good headway to make in the code required for integrating trigonometric functions.
Unfortunately, I am in classes right now, so I have only been able to do a small bit of work on the algorithm since August. Based on what I have seen of Mateusz's updates to polys11, I would say that he is probably the same.
-- You received this message because you are subscribed to the Google Groups "sympy-issues" 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/sympy-issues?hl=en.
