Hey, my name is Abhinav Anand. I am a third year undergraduate from IIT Guwahati, India. I am interested in taking part in Gsoc this year in sympy. I have been contributing for past few months.
As suggested by contributors that fixing bugs can be a proposal for Gsoc, but rather than that i would like to improve the speed of sympy by implementing faster algorithms and reshaping some of the algorithms if they can be made faster. While contributing i found that the calculation of inverse of a matrix can be made really fast if we remove the checking of invertiblity of a matrix by determinant, instead a check can be introduced within the decomposition algorithms. I have already started to implement this in
#18608 .
Another algorithm for is fast exponentiation using cayley hamilton theorem. I already implemented this in
#18595.
I will likely finish these two pr in a few days.
Another faster algorithm i found in this discussion
#12409 and
#18341. I thought of implementing quadratic sieve algorithm but after i researched about this i found it difficult to implement this while my classes are going on, as it is a big and complicated algorithm. It will require a lot of time to implement it which i found difficult while my classes are going on. I would really like to implement this during Gsoc.
I am sure that there are some places in sympy which can use better algorithms or probably can be made faster.
So do you think that this can be a good Gsoc proposal. If yes then i will start looking through the codebase and look for better solutions, before the student application period begins.
Thank you