The first week of the Coding period is now almost over. Though this post is quite late, I’ll try to post updates at the start of each week from now.

What makes my project so interesting (and challenging!) is that I need to work on two separate code bases- SymPy and Symengine. After discussing with Ondrej, I have started the part of my project related to SymPy.

Following are the goals of Phase I:

  • Complete ring_series : There is already a partial implementation of ring_series in SymPy. I will add more elementary and user functions, so that it has similar capabilities as the series function.
  • Write a class structure on top of ring_series so that the user need not bother about calling separate functions for each function.

So far

My main task, this week, was to port PR 609 into ring_series . I have, hence been working on PR 9262. I am done porting most elementary functions and writing their tests, with the exception of rs_nth_root and rs_cot.

A major issue that cropped up while writing tests is concerning Laurent series. As of now, polys do not accept negative exponents. I will either need to rewrite poly rings to accept negative exponents or modify operations so that they can use the present poly structure to handle negative exponents.

Next Week

My targets for the next week are:

  • Make ring_series handle Laurent series.
  • Polish PR 9262 and get it merged. It has already grown big. I will probably need to send another PR.
  • Discuss a class structure for series expansion and send a PR for it.
  • Start working on the hashtable for Symengine with Sumith

Looking forward to another exciting week.