Sumith : Optimized Awesomeness

Gearing up for GSoC


Greetings! The community bonding is officially closed now. It's time for the coding period. I had promised myself a post every sunday from the 24th of May 2015 but seems like the first post is a bit late.

Community bonding

I had discussions with Ondřej and Shivam about the big tasks in hand and how to go about handling the work. In the first discussion, we also assigned ourselves the first task that needs to be completed.
I have to:
* Clean up the necessary in the PR Shivam had sent during his proposal period.
* Implement sub_poly() and mul_poly() with Kronecker substitution in a clean fashion.
Shivam agreed to finish ring_series in SymPy which he has already started working on.
Also together we decided to work on a faster hashtable implementation.
I also discussed with Sushant about the structure of the current SymEngine and cleared my doubts there.

As a part of community bonding, I looked to some tools that I'll be using. Certain C++11 constructs, visitor pattern, etc. Even though I am not thorough with it, I think learning it as I progress with the work is the best thing to do.

Regarding the work I undertook in this period, is minimal, but here they are:
Issues
#443: Documentation of SymEngine.
Pull requests
As I read through the code I felt some clean ups necesarry which were done in
#444 and #438: Pending
#451, #442, #441 and #440: Merged

In my proposal, I had promised Piranha audit but it didn't happen in such a short period due to complex code. Best way to go forward was to start work for Polynomial.
The work regarding Polynomial class has already begun here. I thank the whole SymEngine community for actively participating there and giving their inputs.

Targets for Week 1

Complete the Polynomial class, need to implement:
* basic functions __hash__, __eq__, compare, from_dict like other SymEngine classes.
* Implement printer and tests for that.
* Implement add_poly(), neg_poly(), sub_poly(), mul_poly(), eval() and respective tests.
If possible, time permits
* Start working on the hashtable along with Shivam.

I am really excited as the coding period has officially started. The whole SymEngine community has been active on Gitter as well as PR discussion, looking forward to awesome learning experience with them.

That's all for now. Catch you next week.
Freilos(German)