Skip to content

Instantly share code, notes, and snippets.

@ranjithkumar007
Last active January 19, 2021 13:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ranjithkumar007/1511475bcc2079ef77844c693a179aca to your computer and use it in GitHub Desktop.
Save ranjithkumar007/1511475bcc2079ef77844c693a179aca to your computer and use it in GitHub Desktop.
Final Report for GSoC 2017 evaluations

This is a detailed report on how things went during Summers 2k17.

Goal of the project :

My proposal for GSoC 2017 was to Implement Solvers for SymEngine.

Community Bonding Period -

I added FLINT wrappers for factorisation during this period. Most of the time during this period was on getting more thorough with the code base, going through the FLINT documentation and understanding some design concepts like Visitor pattern which are required in later stages of the program.

Progress during First Phase -

Major focus during this phase was on Improving the Sets module. I added set_intersection and implemented Complement, ImageSet and ConditionSet. After adding this, the robustness required in Sets module for implementing Solvers was achieved as expected. I really thank my mentors for being patient, when I made several silly errors during this phase. I was able to push a raw version of Polynomial solvers just before First Evaluations.

Progress during Second Phase -

I worked on Polynomial solvers for the initial half of this phase. SymEngine's own implementation for lower degree polynomials and integrating FLINT wrappers developed during the community bonding phase for solving polynomials of higher order was successfully implemented.
Next target for me was to focus on Trigonometric solvers. The PR, I initially sent for trigonometric solvers was a lot messed up with a lot of independent stuff. I had to break it into smaller parts and then my focus shifted to getting all these parts merged before returning to actual solvers. I implemented visitors for expand_as_exp and as_real_imag, which came as surprising visitors to my To-Do list(Not part of my proposal). I learnt a lot of new and interesting c++ and design stuff in this phase.

Progress during Third Phase -

I continued on getting all the parts for the Trigonometric Solvers ready. I landed in various Travis errors which ate quite a lot of time. Thanks to Isuru who figured this part out, I was able to get them cleared up. I also implemented function to compute eigen_values of a Matrix(Under Applications of Solvers) and system of equations and visitor for xreplace. Unfortunately, these PRs are not yet merged.

Immediate Goal:

  • Getting all the pending PRs merged.

EDIT :

  • All the pending PRs got merged.

Future Work:

Implementing fu algorithm. I have already made some progress here. I would like to continue working on this after #1305 gets in.

  • Completing the PR #1058.

Conclusion:

I am grateful to work with my mentors Srajan, Sumith, Nishant, Shivam and Amit for this project. They helped me throughout summers. I am really thankful to the SymPy community for giving me this opportunity to work in this project.

References:

Weekly Blog : https://ranjithkumar007.github.io/
Progress report : https://github.com/symengine/symengine/wiki/GSoC-2017-Solvers-Progress-report
All PRs sent by me : https://github.com/symengine/symengine/pulls/ranjithkumar007
Discussions : https://gitter.im/ranjith-gsoc/Lobby

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment