Hi, If you had read my rant on my previous post and the posts before that too, you would have realized my frustration with the Maple Paper. Thankfully Raoul gave me a series of research papers, which gave a more logical way of calculating the infinitesimals. Also, I had been on a “vacation” for four days and hence did nothing those four days. Rejuvenated (I think) after my “vacation”, I plan to speed up work the coming days. However this is what I managed to do, the previous weekend, and yesterday.
1. Improve the documentation : I had written the documentation, using normal English. I rewrote the maths part using sphinx, (which is a tool that helps neat rendering of mathematical stuff) . I had some trouble with the technical mathematical definitions, but thanks to Sean, this PR is finally merged. https://github.com/sympy/sympy/pull/2282
2. Refactor the existing code: I also found out I would be needing to rewrite most of my heuristic code, due to the new research paper, I optimized it a bit, meaning it would break if it found the first infinitesimals, instead of looping through to find out all infinitesimals. There is still work to be done, but atleast I got it in. https://github.com/sympy/sympy/pull/2286
3. Rewrite the second heuristic: In one of my previous posts https://manojbits.wordpress.com/2013/06/18/algebraicity-dsolve-and-core-sympy/ , I described the second heuristic. However in one of the papers, there seems to a better way to find out if either or is of the form when the other is zero. Before going into further details, one would have to know what an inverse ode is. An inverse ode is when you replace by and vice versa in the ODE, For example, the inverse ODE of would be . So the paper says that, if is separable in and , then would be of the form and would be zero. Now the factors containing when is separated, gives , and can be found out by integrating with respect to . If you need to know the condition for which, is of the form and is zero, then one has to apply the same algorithm to the inverse ODE, and reverse the coordinates at the end. I neither know how this works out, nor did I try to find out why, however it works well and that is good enough for me right now.
I guess that’s all.