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
Infinityclass 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_mpc.cppwhere Euler’s constant was being instead of Euler’s Number.Added Tests for the same. This got me introduced to new libraries such as
mpzand 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
acschand 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
cmakeand how it works.
PR #807(Merged) - Improved and fixed functions of
Polygammaclass and added tests for the same.
PR #815(Unmerged) - Add a cmake switch to prevent
Catchfrom catching exceptions so that stacktraces can be obtained from
Teuchos. This helped me learn about how
PR #835(Merged) - Improves the
absfunctions so that it can handle
Complex. I also tried to implement functionality of
abs(x-y)being treated the same as
abs(y-x). This helped me gain a lot of insight into the core structure of SymEngine i.e.
Muland the functions such as
PR #893(Merged) - Added a lot of tests for complete coverage of
UnivariateIntPolynomialclasses. 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
PR #896(Merged) - Use
UnivariatePolynomials. Prevents redundant pass of
PR #897(Merged) - Added support for polynomials with negative degree. This was a major necessity for
Multivariate and Univariate Series ExpansionProjects.
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
clang-formatconfiguration. Remove Linux version error for
PR #917(Unmerged) - Prevent sorting of
clangformat. Will be useful after SymEngine upgrades to
Note: See CodeMaxx’s SymEngine PRs for updates and discussions.