SymEngine
This project marks the beginning of my journey with Open Source. I was introduced to this project by @Sumith1896 who was himself a GSoC student in SymEngine in 2015. A large perentage of my open source contributions are in this project. Besides contributing code I also review PRs and participate in discussions. I got introduced to lots of advanced details of C++ and the produre of software developement. SymEngine is currently the fastest Computer Algebra System. Lately I have been working on adding support for Infinity
class which has a wide variety of used in mathematics systems.
A short description of My Pull Requests in SymEngine:

PR #678(Merged)  Wrote a python script to check for the presence of Trailing Whitespace in the code during continuous integration in Travis.

PR #715(Merged)  Moved dependencies(Catch and Teuchos) to utilities directory so that all the dependencies are together in a single subfolder.

PR #727(Merged)  Added an additional compiling test for Travis with the latest gcc and g++ compiler(version 5.2 for both when I did this) so that new warnings coming up from these can be fixed.

PR #736(Merged)  Adds five new functions, for finding quadratic residues, for checking if a number is a quadratic residue of another ,for checking if a number is a nth power residue of the other and added to helper functions to improve performance. Added tests for them. Also fixed variable names in another function which were causing ambiguity. This led to an issue for checking Integer overflows. This was my first PR in which I had to read about algorithms. It taught me how to teach myself completely new stuff.

PR #758(Merged)  Removed some redundant code left by another Developer’s PR.

PR #761(Merged)  Fixed a bug in
eval_mpfr.cpp
andeval_mpc.cpp
where Euler’s constant was being instead of Euler’s Number.Added Tests for the same. This got me introduced to new libraries such asmpc
,mpfr
,mpz
and how to use them  the syntax and functions used. 
PR #767(Merged)  Code for Whitespace Check shifted to the end of Travis file so that other more important errors can be handled first, before the program exits due to trailing whitespaces.

PR #792(Merged)  Added complete functionality for functions
sech
,csch
andacsch
and their Derivatives,printing and tests. This was my first major contributions. I added code to a lot of files. It helped me understand how all of it works together. 
PR #795(Closed)  This meant to prevent the use of ‘Arb’ when the user disables ‘Flint’. It was closed since the discussion proved the corresponding Issue #788 to be Invalid. This helped me learn a lot of new things about
cmake
and how it works. 
PR #807(Merged)  Improved and fixed functions of
Polygamma
class and added tests for the same. 
PR #815(Unmerged)  Add a cmake switch to prevent
Catch
from catching exceptions so that stacktraces can be obtained fromTeuchos
. This helped me learn about howCatch
works. 
PR #835(Merged)  Improves the
abs
functions so that it can handleComplex
. I also tried to implement functionality ofabs(xy)
being treated the same asabs(yx)
. This helped me gain a lot of insight into the core structure of SymEngine i.e.Add
,Mul
and the functions such ascould_extract_minus
. 
PR #893(Merged)  Added a lot of tests for complete coverage of
UnivariatePolynomial
andUnivariateIntPolynomial
classes. This PR help discover a number of bugs in these classes. These classes were added as a part of a project by UC Davis students. 
PR #894(Closed)  Fixed bug in Polynomial Derivative. Derivative was being calculated even when the variable was empty
""
. Closed since we expected the user not to do such foolish stuff :P 
PR #895(Merged)  Fixed bug in
is_canonical
for Polynomials. 
PR #896(Merged)  Use
from_dict()
forUnivariatePolynomials
. Prevents redundant pass ofdegree
attribute. 
PR #897(Merged)  Added support for polynomials with negative degree. This was a major necessity for
Multivariate and Univariate Series Expansion
Projects. 
PR #899(Closed)  Implemented Horner’s Scheme for evaluating
Univariate Polynomials
. Closed since it was found to sloer than normal evaluation. 
PR #901(Merged)  Improved Install instuctions in Readme.

PR #904(Closed)  Some changes in
clangformat
configuration. Remove Linux version error forclangformat
. 
PR #916(Merged as #1048)  Implement
Infinity
class. Still in progress. My favourite contribution! :D 
PR #917(Unmerged)  Prevent sorting of
includes
withclangformat
. Will be useful after SymEngine upgrades toclangformat 3.8
Note:
See CodeMaxx’s SymEngine PRs for updates and discussions.
Follow @CodeMaxx