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 aseries PR #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
lerchphi function
Riemann zeta function

To show you some glimpses of the implementation, I have written the _eval_aseries() function for erf and erfc functions. They are as follows -

     def _eval_aseries(self, n, args0, x, logx):
        from sympy.series.order import Order
        point = args0[0]

        if point is S.Infinity:
            z = self.args[0]
            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.

  • The first aseries PR #17167 is ready for merging. Sartaj had requested some changes regarding the docstring of the aseries function, and some other changes. All those changes have already been integrated.

  • There have been changes requested in the class PR #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!!