Hi, I am unable to find out the links to your merged PRs to `sympy` or `symengine` repositories. Have you provided the code in some other way? If so, please add them under a separate heading in the first few pages of the proposal so that it's easy to locate.
Please go through https://github.com/sympy/sympy/wiki/GSoC-2020-Application-Template <https://github.com/sympy/sympy/wiki/GSoC-2020-Application-Template#patch-requirement> and try to follow it as much as possible. On Sat, Mar 21, 2020 at 11:28 PM Arpan Chattopadhyay < [email protected]> wrote: > Google Summer of Code 2020 - Proposal > > Improving SymEngine - Sympy Integration by working on SymPy Modules > > Me, the person: > > Name : Arpan Chattopadhyay > > University : Birla Institute of Technology and Science, Pilani > > Email : [email protected] > > GitHub : Arpan612 (Arpan Chattopadhyay) > > I am happy to be contacted by any of the above means as I believe easy and > fast communication is the key for success of any open source project. > > Time-zone : IST (UTC+5:30) > > Age : 19 > > I am Arpan Chattopadhyay, pursuing B.E.(Hons.) Electrical and Electronics > (2nd Year) at Birla Institute of Technology and Science, Pilani (BITS > Pilani). I am highly interested in the fields of Symbolic Mathematics, > Applied Mathematics, Machine Learning, and Mathematical Modeling. I would > love to continue working in open source projects and hopefully, one day, > create my team of programmers for building an open-source project as big as > that of SymPy. I am very well versed in English and love interacting with > people. Apart from coding, I love watching films, particularly mystery > ones. I play and follow football as well. I believe I have been a good fit > in the community culture and I hope to contribute even after the GSoC > program gets over. > > Me, the programmer: > > I have been introduced to programming in Class 11 where we were taught C++ > programming language as a part of our course curriculum. I started Python a > month after joining college. At that time, I was introduced to the world of > open source and the limitless possibilities it held for me. I was fortunate > enough to take part in a Study Oriented Project which involved Symbolic > Mathematics and the use of SymPy in Python. I found out about the various > tasks which can be done by SymPy and was very impressed. Thus, I decided to > finally give wings to my dream of working and collaborating in a large > open-source project and SymPy was a natural choice, given the interest, it > sparked in me. OS : Ubuntu 16.04 IDE Hardware Configuration : Intel i7 8th > generation Python : Version 3.7.4 Editor : Atom and Anaconda (Version > 4.7.12) > > Python Projects Created: > > Gateway Interface with Google Accounts Blogging Application Polling > Application Implementable Google O-Auth Gateway Biometric Verification > Application Algorithmic Trading Application Algorithms for Stock Market > Trading with Python Automated Trading Platform with Python and C++ Retina > Sensor Detection Algorithms > > Internship and Research Experience with Python: > > Winter Intern as a Quantitative Research Analyst in Veda Capital, Opera > House, Mumbai Responsible for making Algorithms for Trading in the Indian > Equity and Commodity Market, managing and mining F&O data using MySQL, > coding the algorithms and alphas in Python programming language with Pandas > and NumPy for back testing and live testing. > > Laboratory and Study Project on Application of Machine and Deep Learning > in Communication System and Spectrum Sensing > > This is a Laboratory and Study Project on Application of Machine and Deep > Learning in Communication System and Spectrum Sensing under Shishir > Maheshwari, Department of Electrical and Electronics, BITS Pilani. Here we > apply Machine Learning techniques in Python for Spectrum Sensing when the > primary user has Multiple Transmit Powers. We also investigate and build a > machine learning model for spectrum sensing in cognitive radio networks. > > The simplicity and ease of handling complex mathematics is an awesome > feature I feel SymPy has. > > My Project: > > In this competitive world and rapid expansion in technology, speed of > executing tasks is very important. SymEngine can be used to achieve that > speed in SymPy. > > Though SymEngine was initially developed to be a part of core for the > SymPy CAS in the recent past, it has matured enough to be used as a > symbolic backend. Using SymEngine can significantly increase speeds of > various symbolic operations, and would increase the value and importance of > SymPy requiring brisk computation as it gives users the option to tap into > SymEngine’s routine. Also using SymEngine in SymPy is very fast and easy > and hence will attract more people to it. > > Aim and Objective: > > The ultimate objective is to speed SymPy. An effective way to do it is to > use SymEngine. SymEngine provides a very fast implementation of core > symbolic algorithms, and SymPy should use it to gain speed. The theme of > this project is to expand it to the modules in SymPy and also implement > missing features from SymPy core in SymEngine. The project also explores > the various changes SymEngine needs to become more efficient. This project > builds on the commendable work done by @ShikharJ in GSoC 2017 and also > solves the various problems SymEngine faces. > > Motivation: > > I believe that the most important problems of this world are solved by > Mathematics. In particular, calculus was a revolutionary discovery which > accelerated study in Mathematics and development in the world with > astonishing pace. The vast application in particular, Calculus I like most > about is the vast application it has and how it is used in almost all > practical tasks we do. > > Past Work Academic work in Mathematics: > > Seven Mathematics Courses done in College. > > Studied Advanced Calculus, a Textbook by Lynn Harold Loomis and Shlomo > Sternberg. Used by Harvard Mathematics Department. > > Studied Calculus: An Intuitive and Physical Approach (Second Edition), by > Morris Kline. Used by Harvard Mathematics Department. > > Used Algorithmic Calculus for the “Retina Sensor Detection Algorithms” > project mentioned before. Studied Introduction to Vector Analysis, a > Textbook by Harry Davis. > > Studied Advanced Number Theory, a Textbook by Mollin Richard. > > Time Available and Other Commitments: > > I have my end-semester examinations from May 1st to 15th. This lies > completely inside the community bonding period therefore I will complete > the tasks I was going to do in the community bonding period in > pre-community bonding period. Other than that, I will be devoting 45-55 hrs > a week as I have no other commitment during the GSoC period and have great > interest in the project I want to do with SymPy. > > Documentation: > > Good documentation is an integral part of any successful project. It also > helps in receiving a wider acceptance from the developer community. After > working on the project for some time, I would write a documentation on the > various aspects of the project. > > Communication: > > I will be in regular contact with mentors using email. In case I am stuck > somewhere, I would reach out to them via Gitter Chat and Mailing List. If > selected, I also plan to make a blog where I will be giving regular updates > about the work completed. I believe that the problems faced by me and their > solutions would certainly help other fellow developers later just like I > have received great help from various blogs on the internet. > > Project Details: > > Phase 0: (Community Bonding) > > In this phase, we explore the existing work done in integration of > SymEngine with SymPy. We look at the various changes made in the existing > modules which already have integration of SymEngine with SymPy. We renovate > and improve documentation of the necessity of the various changes done so > far. We also keep a track of the difference in speed these changes have > brought about and also include it in documentation. I have already started > exploring SymEngine and I believe there is scope for some amount of testing > and benchmarking. As I will mention in the timeline, this phase is almost > completely inside the community bonding phase. Hence, I will continue my > conversation with the mentors at SymEngine and get some information on the > additional issues SymEngine faces and can work on it. > > Phase 1: > > We are inside the coding period now. We start off by working on the > various issues discussed with the mentors and already existing issues in > the SymEngine repository. Some of the existing issues are below: > https://github.com/symengine/symengine/issues/1600 > https://github.com/symengine/symengine/issues/1595 > https://github.com/symengine/symengine/issues/912 > https://github.com/symengine/symengine/issues/1324 As Aaron Meurer Sir > has said before, in a large organization, it happens that issues get > neglected. I have taken this task before implementing something new because > I feel it is better to perfect the work already done before working on > other modules. Shikhar had said as feedback after the GSoC 17 got over that > the final work he did had some parts different as compared to the ones he > proposed. That is why I have given some extra time to this phase. If my > mentors feel that nothing else is required apart from the issues solved. I > will move to the next phase. > > Phase 2: > > An interesting thing I have observed with SymPy is that people often > compare the speed which libraries bring as against the other. The following > issue highlights it: > > https://github.com/symengine/symengine/issues/1589 > > I want to spend four days exploring how other libraries tackle the issue > of speed and by exploring their open source github channels to find out > what different they do for us. I believe this activity can bring great > value as we might find something which we were unaware of. > > After this I will start working with the “Calculus”, “Integrals”, “Stats” > and “Vectors” modules. I will be working on the ASV benchmark and the > corresponding code for integration of this module in SymPy with SymEngine. > The main focus here will be to implement functionalities unavailable right > now. This task is expected to be heavy and time consuming. We will need to > implement routines in SymEngine as well as update the python wrapper with > the latest development. > > Phase 3: > > I would like to keep a four day buffer as the work in Phase 2 is time > consuming. These days can also be utilised in debugging and better > documentation for the work done in the previous modules. I am expecting my > mentor as well to suggest some extra work which we can do to make this > implementation innovative so the days may be used there as well. > > After this, I would like to give a day on ASV Benchmarking all the modules > in which SymEngine has been implemented thus far as the main objective of > this project is for our code to be fast. > > After giving the finishing touches to the previous module, we shift our > focus on the “Number Theory”, “Geometry”, “Series” and “Sets” modules. Like > before, I will be working on the code for integration of this module in > SymPy with SymEngine with reference to implementation of unavailable > functionalities. Since we have worked in a similar manner in Phase 2, I > believe I will be able to complete the work at least five days before the > deadline. I would like to implement some additional functionalities in some > of the previous modules. The last five days will be used for removing bugs, > solving issues and improving documentation of the work done in GSoC. > > Modules I intend to work with: > > Phase 2 Modules: > > Calculus Integrals Vectors Stats > > Phase 3 Modules: > > Number Theory Geometry Series Stats > > Timeline: > > Community Bonding Period: (Present - May 14) > > Detailed discussion with mentors about the work I intend to do. Figuring > out additional work which we can do during with the mentors and deciding > the timeline for it as well Renovate and improve documentation of existing > SymEngine integrated modules of SymPy. Starting fixing issues in SymEngine > (May 14 onwards) > > Phase 1: > > May 14 to May 21: (Week 1) > > Complete working on issues: > https://github.com/symengine/symengine/issues/1600 > https://github.com/symengine/symengine/issues/1595 PR for both the issues > by May 22 latest. May 21 to May 28: (Week 2) > > Complete working on issues: > https://github.com/symengine/symengine/issues/912 > https://github.com/symengine/symengine/issues/1324 > https://github.com/symengine/symengine/issues/1601 PR for all three > issues by May 30 latest. Start Importing changes for pre-implemented > functions/classes in the “Calculus”, “Integrals”, “Vectors” and “Stats” > modules. > > May 29 to June 4: (Week 3) Finish Importing changes for pre-implemented > functions/classes in the previous modules. Start working on the additional > goals decided by me and the mentors. > > June 4 to June 11: (Week 4) Continue working on the additional goals > decided by me and the mentors. PR for the additional tasks by June 12 > latest. Start working on Phase 2 tasks if I finish the tasks decided as > additional goals. > > June 11 to June 15: (Week 5) Exploring how other libraries tackle the > issue of speed and by exploring their open source github channels. > > June 15 to June 18: (Week 5) > > Phase 1 evaluation > > Benchmarking the work done in phase 1 as per requirements. Start working > on the Phase 2 Modules. > > Phase 2: June 18 to July 1: (Week 6 and 7) Continue working on the Modules > and its corresponding classes like Euler Equations, Singularities, Finite > Difference Weights for “Calculus”. Special attention should be given to > some classes like “Singularities” as the scope of SymEngine implementation > for them is maximum. First PR for the work done on the Phase 2 modules by > June 26 latest. First few functionalities will be wrapped up in > SymEngine.py. Testing to be done as required. Second PR for the work done > on the Calculus module by July 2 latest. > > July 1 to July 15: (Week 8 and 9) Some issues in the SymEngine Github > repository to be fixed. PR for the work done on the issues by July 8 latest > Finish all the work in Phase 2 modules Final PR for the work done on the > Phase 2 modules by July 15 latest All the remaining functionalities will be > wrapped up in SymEngine.py. Testing to be done as per requirement. > > Phase 2 evaluation > > Phase 3: > > July 15 to July 29: (Week 10 and 11) Debugging and Documentation for Phase > 2 modules. Benchmarking all previous modules where SymEngine is used. The > above tasks to be completed by July 19 latest. Start working on the Phase 3 > Modules and its corresponding classes. Special attention should be given to > some classes where scope of SymEngine implementation is maximum. First PR > for the work done on the Phase 3 module by July 27 latest. > > July 29 to August 12: (Week 12 and 13) Continue my work on the Phase 3 > Modules. Most of the work will be completed by August 5 Second PR for the > work done on the Phase 3 modules by August 5 latest. > > Make sure that all routines are implemented in SymEngine Implement some > additional functionalities in Phase 2 and 3 modules. Additional work > depending on the discussion with mentors. > > August 12 to August 17: (Week 14) Complete my work on the Phase 3 modules. > Final PR for the work done on the Phase 3 modules by August 12 latest. > Finishing up documentation and blogs Checking for any issues or conflicts > unattended Final Benchmarking and updating it to SymPy wiki Submission for > Final Evaluation by August 14 latest. > > I plan on implementing SymEngine in some modules of SymPy across all > functions and classes in it which are compatible with SymEngine. I expect > to finish the tasks about 7 days earlier than the timeline above. If I > don’t, I will request the Mentors to allow me to work for a few days more > on my additional goals. If I am allowed to do so, I would love to work on > the additional goals below. Some of them were proposed by Shikhar, but he > could not work on it due to time constraint. > > Additional Goals: Explore the modules “Logic” and “ODE” and find out > Functions where SymEngine can be implemented and work on the same. Adding > Documentation for SymEngine. Exploring and suggesting steps for Thread > safety in SymEngine. > > References: > > https://github.com/ShikharJ/GSoC-2017-Work-Report > https://github.com/sympy/sympy/wiki/GSoC-2017-Application-Shikhar-Jaiswal:-Improving-SymEngine's-Python-Wrappers-and-SymPy-SymEngine-Integration > > https://github.com/sympy/sympy/wiki/GSoC-2020-Ideas#improve-sympy-integration > > https://github.com/symengine/symengine/wiki/SymPy-core-upgrade-to-SymEngine > > https://github.com/symengine/symengine/wiki/Beginner-Contributor-Guide-Design-of-SymEngine > https://github.com/symengine/symengine/wiki/Building-SymEngine > > Proposals on Wiki > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/9a3b8ba9-830c-4ee1-804e-163cdd003511%40googlegroups.com > <https://groups.google.com/d/msgid/sympy/9a3b8ba9-830c-4ee1-804e-163cdd003511%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- With regards, Gagandeep Singh Github - https://github.com/czgdp1807/ Linkedin - https://www.linkedin.com/in/czgdp1807/ <https://www.linkedin.com/in/gdp1/> -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAAvS0gXuM-KZHaYM6nKoh_4wcNumNjez7rvdD57KptLVRDTqJA%40mail.gmail.com.
