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.
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)] for k in range(1, n): B.append(sum(j*A[j]*B[k-j]/k for j in range(1,min(len(A),k+1)))) return B
Possibly the most confusing part of the project is to get
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 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.
Finalise how to handle symbolic coefficients and finish it
Read Fredrik's paper and try to implement it.