Phase 3 of the GSoC coding period is traversong smoothly. !! I and Sartaj had a meeting on the 05th of August, about the timeline of the next 2 weeks. Here are the deliverables that have been completed in this week, including the minutes of the meeting.
- The second
aseriesPR #17303 has been implemented. I have implemented the
eval_aseries()functions for several special functions. Here are the list of those functions.
erf: gauss error function erfc: complementary error function erfi: imaginary error function Ei: exponential integral expint: generalised exponential integral li: logarithmic integral Li: offset logarithmic integral Si: sine integral Ci: cosine integral bessely besselj lerchphi function Riemann zeta function
To show you some glimpses of the implementation, I have written the
_eval_aseries() function for
erfc functions. They are as follows -
def _eval_aseries(self, n, args0, x, logx): from sympy.series.order import Order point = args0 if point is S.Infinity: z = self.args s = [(-1)**k * factorial2(2*k - 1) / (z**(2*k + 1) * 2**k) for k in range(0, n)] + [Order(1/z**n, x)] return S.One - (exp(-z**2)/sqrt(pi)) * Add(*s) return super(erf, self)._eval_aseries(n, args0, x, logx)
def _eval_nseries(self, x, n, logx): nu, z = self.args if z.limit(x, 0) is S.Zero: s = [(-1)**k * z**(2 * k) / (factorial(k) * factorial(nu + k) * 2**(2 * k)) for k in range(0, n)] + [Order(z**n)] return (z/2)**nu * Add(*s) # removeO fails return super(besselj, self)._eval_nseries(x, n, logx)
This PR is now open for reviews. Once the first PR gets mereged, the tests for these PRs can pass then.
aseriesPR #17167 is ready for merging. Sartaj had requested some changes regarding the
aseriesfunction, and some other changes. All those changes have already been integrated.
There have been changes requested in the
classPR #17134 as well. They have also been changed.
That’s it for this week. See you in the next week and the last phase. Till then, Adios!!