Though I had resolved to update my blog posts by Friday every week, this one is quite late. This is mostly because this week was one of the most confusing yet, in terms of figuring out how to get things done within the existing code structure of Sympy. And that process is still on.
So Far
PR 9495 is under review. It took some time to decide how the precision/order of Puiseux series needs to be handled;
We had an interesting discussion on reverting a series here. Fredrik Johansson suggested a fast algorithm of his for it. I also got to know a very ingenuous way to expand trigonometric functions. For example, for exponential:
def exp_series(A, n): B = [exp(A[0])] for k in range(1, n): B.append(sum(j*A[j]*B[kj]/k for j in range(1,min(len(A),k+1)))) return B
Possibly the most confusing part of the project is to get ring_series
working
over an Expression
domain, i.e, the coefficients can be any SymPy symbolic
expression. Multivariate series need to have multiple gens, implying that in a
multivariate series, the coefficients can be symbolic functions of PolyElement
objects. However, PolyElement
class is of type CantSympify
, which means I
can't use it in SymPy functions. I had quite a few discussions with my mentors
over it and I know now what the issues are. I need to solve them next week.
Next Week

Finalise how to handle symbolic coefficients and finish it

Read Fredrik's paper and try to implement it.
Cheers!