GSoC 2017: Week 4

Jul 4, 2017 • Gaurav Dhingra

This week we completed PR #12850]() on adding/removing variable in DifferentialExtension class for later introduction of creating extensions of \(\tan\), \(\atan\), and probably algebraic extensions as well. Lists like E_K, L_K and the new ones have been combined in a single list one, and the variables to record that information are exts and extargs. exts will store str instances having value in {‘exp’, ‘log’, ‘atan’, ‘tan’, ‘alg’}, so whenever we at each ‘level’ earlier we discovered the extension to be exponential we appended level - 1 to the list E_K (i.e. index) or to L_K when the extension is primitive but now we will append to just a single list and i.e. to exts either exp or log/atan accordingly (Note: \(\atan\) is also a primitive until now, the only ‘primitive’ has been ‘log’). First argument of both of lists (exts and extargs) is currently kept as None(owing to keep the code clean).

While extargs as is clear from the name stores the argument of extension. Well, it seems odd what the meaing of args will be for the algebraic case, I am guessing a tuple (base, exp), but we needn’t worry about that for now.

We also have an open pull request on some re-organising of __init__ of DifferentialExtension #12849. It isn’t blocking anything. I think that PR is done.

Key points

What seems important to me is that I can list some of the discussion key points here, since I need to those issues to be solved in my mind, in particular I often go back and look at the archives of gitter discussion.

  1. Aaron mention about the issue in is_deriv_k (also present in is_log_deriv_k_t_radical), which prevent integrals of the form \(\int {\exp(ax) \exp(bx)} dx\), and it raises NotImplementedError: Cannot work with non-rational coefficients in this case.. Now this problem can be solved with the use of Risch structure Theorem (yes, with capital R, small s and capital T, it comes to my mind whenever I see the name in the text, IIRC last time summers I was corrected Kalevi regarding Todd Coxeter, may be someone else).

  2. Using the paper on “Simplification of Real Elementary Functions” (already mentioned in last blog post).


Now coming to what I am currently doing is reading the text for parametric_log_deriv (there isn’t pseudo code of this). I think it would take me about 2 weeks to complete this task, by that time my next semester in university will start as well (on 15th July)

This time I am late for my blog post, damn!. Aaron had to mail me for the post, SymPy has a Code Generation workshop in the upcoming SciPy conference (probably 9th of this month), and also we are going to have a release of SymPy 1.1 coming out soon, I guess that is handling quite a bit.

Oh, I forgot to mention, I passed the first evaluation as well.