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 theeval_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 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 thedocstring
of theaseries
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!!