Sushant Hiray's Webspace

Sushant Hiray's Webspace

Profile Picture

Sushant Hiray

This Week in CSymPy: #4

Week 4 for GSoC just ended and this week I completed implementing the Exponential Module.


I started the week by implementing ATan2 which was not implemented in the PR of Trignometric Module.

Pull 189 looked into implementing the ATan2 functionality. Since to implement ATan2 we needed to find whether the signs of numerator and denominators. In case of complex symbolic expressions, we are yet to implement numeric-eval in CSymPy, so in those cases we just return the object, in cases where we find the arg in lookup table we simplify and give out the result.
A more detailed version of the assumptions can be found in this comment in PR. It is also documented in the code.

After implementing ATan2, I worked on the Exponential module. Aaron gave some insights regarding the implementation of the exponential module, specifically he mentioned the fact that

It's better to special case E in one place `(pow)` 
than to special case exp everywhere in the code 
that tries to deal with pow objects 

So discussing this with Ondrej we decided to keep exp only as a function which just calls pow(E, x) underneath.

The logarithm class was similar to the current implementation of SymPy barring the part involving complex numbers. The exponential module as a whole was implemented in pull request which has been merged into master.

I have also decided to implement the LambertW function. It wasn’t a part of my original proposal but it seems pretty trivial to implement! Once this is merged into master, the exponential module will cover all major functions implemented by SymPy.


As usual most of the actual discussions happened on PR, Aaron also gave some insights on gitter! So its good to hangout there as well.

Week Highlights!

  • This week @isuruf started helping us out in the Number Theory module which was originally added by Thilina.
  • Also I’ve noticed extra traffic in CSymPy gitter. A lot of people have started following the conversations there! That is good to see :)

The Week Ahead

  • Add the LambertW class.
  • Implement the Hyperbolic Module.

Thats all for now :) Will get back next week!

Separator line
Separator line
Sushant Hiray - Foodie. Coder. Reader. Binge Watching.
Open Source Evangelist