GSoC 2018 - Week 2 - Getting started with transolve
27 May 2018So 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