GSoC Week 9: Complexions in Complex Module
Week 9 for GSoC ended a couple of days back. I’m still working on the Complex Module.
Progress
I started of the week continuing the work on pull 248.
Initially I started working on the add and mul functions and integrating the complex module with them. This part was pretty easy as Complex addition and Complex multiplication was completely implemented. Intially I just added special cases for the case of Complex in pow. But this quickly ran into issues as is_canonical failed in some testcases.
Next I simplified the complex power for the following cases:
- When
expis 1 or -1 - When the
baseis purely imaginary andexpis integer.
Following this I made appropriate changes to is_canonical for pow
Meanwhile @certik sent a couple of PR’s sushant-hiray/csympy/#1 and sushant-hiray/csympy/#2 for implementing the Python wrappers for Complex Module.
I spent some time trying to sync the wrappers and make sure they work as intended.
One important fix needed was to improve the printing. Over the entire PR, the printing has been changed multiple times to match the SymPy output. With this PR I’ve updated the current existing printing for add, mul as well as pow
The expand function is also updated to handle the case of Complex Numbers. Currently it doesn’t expand terms like: (2 + 3I)^n. Apart from this all the issues which were found have been fixed.
The Week Ahead
Merge the current PR and send a new PR for handling the cases like (2 + 3I)^n in expand
Thats all for now :) Will get back next week!