Plan for gsoc solvers project
Overview:
As per my knowledge linsolve, nonlinsolve(except trigonometric/transcendental equations) and solve_decomposition are already in a fully fledged mode and further we just need this functionality to be integrated with solveset .
So what I’ve decided is to integrate(link) solvers (linsolve, nonlinsolve, solve_decomposition) to solveset and resolve related (conflicting) dependencies over different modules (if we encounter). And further adding respective helper, check functions hence optimally designing the structure, ultimately to get faster solution. Finally an integrated form of linsolve, nonlinsolve, solve_decomposition, parallel with building respective set infrastructure( could be image set or multidimentional image set according to the nature of solution obtained ) can be established .
So the timeline could be anticipated as …
PHASE 1:
First week :
Refactor the lambert equation (where I tried to do left part of {lambert solver for transolve #14972} in {Rearranged Lambert solvers and resolving conflicting files #18759} . Here in this I tried to integrate some parts with _tsolve and solve to get outputs of failed tests in lambertW)
Second week :
Here in modular equations, already it’s in complete swing and no further work is required. Hence, it just have to be integrated with transolve function and resolve any resulting conflicts.
Third week :
As mentioned above in overview, linear solve is to be integrated with solveset .
Fourth week :
Documenting and finishing the remaining work .
1st week : refactoring lambert equation (pr)
2nd week : modular equations
3rd week : linear solve
4th week : documentation and left part
PHASE 2:
Fifth week :
solve_decomposition is to be integrated with solveset as mentioned in overview.
Sixth and Seventh week :
In nonlinearsolve we have two tasks
1. To make it more effective/improve in terms of trigonometric/transcendental equations which could be done through integrating effectively through solve function ( where it is able to solve this most of trigonometric/transcendental as it claims ) and finally manipulate optimally and more closely to develop this , and if it is not further able to solve then we have to add some bridges to make it fully fledged.
2. To integrate this with solveset (as in overview).
Eight week:
Documenting and finishing the remaining work .
5th week : solve_decomposition
6th week : non lin
7th week : non lin
8th week : documentation and left part
PHASE 3:
Ninth and Tenth week :
1. The differentiation of complex and real part of solution and making of set infrastructure accordingly throughout code base where ever this might create conflicts more optimally.
Eleventh week and Twelfth week :
1. Documenting and finishing the remaining work .
2. Try to solve related issues or handle any unforeseen issue if encounter.
9th week : complex domain
10th week : complex domain
11th week : remaining part and documentation
12th week : try to solve related issues or handle any unforeseen issue if we come across
Problems which I came through :
1. _is_lambert is not much perfect it should to be developed more, since it doesn’t return ‘pow’ rather ‘mul’ for 2a^x ( or 2*a**x) hence such expressions are not ultimately considered as lambert hence we obtain no lambert solution.
2. It allows cos^3, sin^3 (or cos**3 , sin**3 ) as _is_lambert since it comes under pow, hence it is returning True , finally distorting the result by taking sin , cos as _is_lambert.
Sympy community, please give me suggestions and opinions on this rough estimated proposal .
![]()