GSoC 2018  Week 4  Continuing with transolve PartII
09 Jun 2018By the end of the previous week I had completed majority of the TODO’s of the PR #14736. This week I started on minor improvements suggested by Amit. This included:

Minor Documentation changes
Included proof of correctness, typo fixes, rephrasing lines etc. 
Removing
flag
variable from transolve.
flag
variable was passed as a function parameter intransolve
and was used to check on the recursive call. The thought was that there might be a case when equation could not be solved by any of the helpers but during the process the equation might get modified, so we wanted to double check whether the modified equation could be solved again, thats why we usedflag
but Amit suggested on removing it as there wasn’t a case as of now and it will only make things unnecessarily complicated. 
Also worked on XFAILS, mainly on solving equations containing only symbols. There was an exception raised in
_invert_real
, because of a relational comparison made with0
which caused the faiure of the tests. It has been fixed by handling the exception. 
Imported tests of log and lambert.

Another thing we discussed was about log solver. The helpers for solving logarithmic equations will be implemented in a seperated PR, to make the review and implementing task easy and independent.
After this I started a working on solving exponential equations in complex domain, though it turns out that we will be focussing on only the real domain as of now. But I have added tests for it as XFAIL.
To make exponents work in complex domain, we require the complex logarithm.
If we have equation as
z = e**w,
where w is complex number and z is nonzero complex number,
then
Ln(z) = lnz + I*(Arg(z) + 2*n*pi)
where Ln(z) is the complex logarithm and lnz is the
logarithm evaluated with real number argument.
Apart from this we also had a meeting yesterday in which we discussed about how we will be wrapping up things before the first evaluation.
I will be completing few leftovers of the current PR to make it merge and start working on implementing log solver (making a commit probably by tomorrow).
Amit also suggested on creating a coverage report so as to get an idea about the amount of tests covered by the code. The current coverage report can be found here. Other than this he also advised on reading Clean Code by Robert C. Martin
which will help me improve in writing clean and efficient code.
The main target for the coming week will be merging PR #14736
, implementing log solver
(will try to merge this as well), starting with implementing lambert solver
(try to add atleast a WIP PR) and reading the book.
Hope things go as planned!!
Follow @Yathartha22