This was the last week of my Google Summer of Code project on fast series expansions for SymPy and SymEngine. It has thoroughly been an amazing experience, challenging and rewarding in more ways than I had imagined. I was extremely lucky to have such awesome mentors as Ondrej and Thilina.
Though I couldn't achieve all that I had planned in my proposal, it taught me what I think is my biggest take away from the experience- things seldom work the way you want them to. In fact, I faced maximum difficulties in that part of my project which I had assumed to be trivial- ring series in SymPy. And as it turned out, it was the corner stone of what I had set out to do, and it needed to be done well.
Fortunately, things turned out rather well there and now most of the difficult
questions with regard to ring series have been answered.
ring series now has
a general purpose
rs_series function that expands an arbitrary SymPy
expression really fast. Most of the important internal functions are also
implemented now. I think as a module
ring series has reached a stage where it
can be helpful to people and others can help with improving and expanding it. Of
course, a crazy amount of work still needs to be done and for that we need a lot
of helping hands.
I have been writing a guide as well as documenting the internals in PR 9839. The importance of good documentation is another lesson I learnt during my project.
The most important thing is that people use these new capabilities. I hope more
people will get involved. If all goes well, it is a potential replacement of the
series method of SymPy.
Other than that, I had a very fruitful discussion with Ondrej about how to implement polynomials and then series expansion in SymEngine. You can read the summary here. I am already excited about writing all this new stuff.
The end of GSoC is not really an end; it is a beginning, of more interesting times :)