GSoC Week 1
I managed to finish the work I had planned and opened a PR. While I did not implement zeta function leading term method, I implemented erfi leading term method instead.
It turned out that determining when series should call aseries is not as
straightforward as I had thought. The first step is determining whether a power
series exists or not, which means all low level _eval_nseries should behave
similarly in the cases where they raise errors. If a series expansion
about x0 does not exist, then PoleError should be thrown. Once this is unified
and all low level series methods agree, it should be possible to just catch this
error when thrown and call aseries instead.
I also debugged #19453 - the root cause is this
block of code. There is a rounding error
and the sum of -0.33 and 0.33 returns -5.55111512312578e-17, instead of 0.
This is something which cannot be fixed directly, so an alternative is calling
the example in the issue with exact SymPy numbers like S.Half instead of 0.5.
Next, I will try to make some ammendments to the limits code. is_meromorphic
does not catch all meromorphic functions, so such functions can probably be handled
in a similar way using a try-catch block. This is the plan for next week, and if it
finishes earlier, I will try fixing some more limits related issues.