GSoC 2014 Application Anurag Sharma: Risch algorithm for symbolic integration. - sympy/sympy GitHub Wiki

This proposal is still in progress

Personal Details

Name: Anurag Sharma Email: [email protected] Alternate Email: [email protected] IRC: anurags92 on freenode Github: anurags92

About Me

I am a sophomore Mathematics student at Indian Institute of Technology, Kanpur, India. I have keen interests in Algebra, Field theory and Galois theory. I was first introduced to Differential Algebra while studying for this project and since then I have made major gains in my understanding of Differential Galois theory. I wish to pursue further studies in Commutative Algebra and Category Theory. In my two years of undergraduate study at my institute I have been exposed to varied topics in math which include Real and Complex Analysis, Abstract Algebra, Universal Algebra, Linear Algebra, Ordinary and Partial Differential Equations etc

Programming Background

I am proficient in C, C++ have a decent knowledge of Python. All my pre- vious programming experience has been for related to various hackathons organised in our college and course projects. Here is a link to a Gesture recognition applet that was designed by me and my friends for a summer project in our first year. Link : http://www.youtube.com/watch?v=q-55tBvrD2g Apart from the hackathons and development related prject I am also a member of a three member team - MemoryOverflow, which represented IIT Kanpur in ACM ICPC regionals held at IIT Kharagput. My SPOJ handle is anurags92. I have solved 150+ problems on SPOJ and am quite good at writing code in timed contests. If I get selected in GSoC, it would be my first big contribution to an open source software. I had used git earlier for my projects but that was restricted only to basic commands. During my 2 3 months association with the community I have become quite familiar with this version control.

Contributions to Sympy

My contributions to Sympy are as follows:

Working on:

https://github.com/sympy/sympy/pull/7285

Merged pull requests:

https://github.com/sympy/sympy/pull/2782

https://github.com/sympy/sympy/pull/7237

The Project

Timeline

I have started work on Chetna’s pull request :https://github.com/sympy/sympy/pull/2380 I plan to continue this work in community bonding period and first two week of the summers.

  • Week 1-2 (a) Get Chetna’s Cds & is derive branch merged. (b) Make a common function for converting the denominator to spe- cial denominator for the Parametric Risch Differential Equation and Risch Differential Equation. Pull Request 1. (This branch will get merged after this)
  • Week 3-4 (a) Implementing Structure theorems for is derive and is log derive in prde.py to work for irrational coefficients.
  • Week 5-6 (a) Implementation of Liouvillian Case for Parametric Risch Differ- ential Equation. (b) Implementation of Non Linear Case for Parametric Risch Differ- ential Equation.
  • Week 7-8 (a) Solution for Hyper-tangent Case using Cancellation algorithm. (b) Writing test cases for the functions written in Week 3-4 and Week 5-6. Pull Request 2. (On a different branch)
  • Week 9 (a) After the tasks mentioned above are finished, I would be able to complete Parametric Logarithmic derivative. (b) Implementation of Non Linear Case for Parametric Risch Differ- ential Equation Heuristic Solver.
  • Week 10 (a) Implementation of Complete Parametric Logarithmic Complete Solver. Completing this would be a big success for the project and this would probably finish the work in prde.py and hopefully it could then get merged in the master. Pull Request 3. (On the same branch as PR 2)
  • Week 11-12 (a) After finishing prde.py I would like to hook that code with its uses in rde.py and risch.py. (b) Functions in rde.py like cancel exp and cancel primitive would make use of the work done in Week 1-2 and Week 10.
  • Week 13 a) Would review all the pull requests and would add more tests cases for each PR. (b) Would like to clean the code in rde.py and remove as many NotImplemented exceptions as possible. Hopefully after Week 10’s work this would be routine exercise and would get completed easily. (c) Add tests cases for rde.py and check if everything is in good shape. Pull Request 4.
  • Week 14 Final Evaluation

Implementation Details

This required lot of math symbols so I have hosted my application here: https://drive.google.com/file/d/0B7wy_7tuiax7ZEpVNHdlUkU3d3c/edit?usp=sharing Have a look here. Thanks :)