Yathartha Joshi Open Source Enthusiast

GSoC 2018 - Week 2 - Getting started with transolve

So this is the end of the second week of GSoC and I am still working on implementing and improving transolve. In the previous week Amit and I discussed about the things that are necessary for implementing transolve. I have covered it in the previous blog post. Based on the discussions I have a submitted a WIP PR here.

In the second meeting we had Harsh joining us to the discussion.

Amit and Harsh stressed on making transolve modular and extensilbe, unlike _tsolve which lacks these features (though it is very powerful).

So there are few things that transolve should have:

  • Proper documentation

Documentation is always a very important aspect of any software. Therefore to make it easy to understand to the users, transolve needs to have a proper descriptive documentation that should explain why, what and how of transolve. Amit suggested on covering every detail of the working of function. It should cover the following:

- What is transolve.
- How to use transolve.
- Why it is better than `_tsolve`.
- How equations are solved.
- How to add a new class of equations.
  • Extensibility

transolve should be extensible, i.e. the design of the API should be such that it becomes easy to add a new class of equation solver without affecting the structure of the function. The idea to make this happen is to have a two step procedure of equation solving. transolve will solve any equation by first identifying the class of the equations (a helper will do that) and then calling another helper to solve that equation. So in this way one needs to figure out how to identify the equation and how to solve it. Once this is done he just needs to invoke the helpers at the proper location in transolve.

  • Modularity

As it is clear from the above point, transolve will have two step procedure for solving different classes of equations. Helper function needs to be implemented for identification and solving equations. This will make transolve modular as solving equations will not depend on the main function.

  • Proof of correctness

Since identification and solving equations will be achieved with few heuristics/algorithms. There should be a proper document of its prof of correctness. I will be adding proper documentation with examples explaining its authenticity.

Apart from this Amit also adviced on reading documentation of ode module so as to get an idea, also importing tests from solve, making it atleast as powerful as _tsolve will be other things that needs care.

I will be focussing on completing it by this week!!

Follow @Yathartha22