Skip to main content


Showing posts from May, 2018

GSoC 2018: Week 2

Hello everyone. Here is the brief work done and progress in my project (Rubi) in the second week.
This week was quite frustrating for me. I gave a lot of time but the outcome was little less. Initially my aim was to solve the problem of the order in which rule was matched. But I have to revert back to my initial structure as the new structure was extremely time consuming. Next I thought to keep track of the rules applied to an expression. This could be a great help in debugging too. So I implemented it.
Next I moved on to testing trinomial_products . But here also results were not good. Our rules are of older version (4.10.8) , but we did not have the test-suite of that version. So I tried extremely hard to test those tests with rubi 4.10.8 . For 3 - 4 days , I put a great effort. At last I realised, things will not work this way. So, I then mailed to Albert, the maintainer of original Rubi, asking him for the test-suite of older version. And the good part is that he has provided me the…

GSoC 2018 : Week 1

Hi everyone. Here is the brief summary of my works completed and works which are in progress in the first week.
For proper implementation of RUBI in sympy, we have a high dependence on matchpy. This might limit the performance of RUBI in sympy. I am currently targeting to have a correct set of rules and utility functions. 
This week I opened this PR #14724,  from which progress in my work can be tracked. While testing the code, sometimes there were recursion errors because the same set of rule continuously were applied to the expression and there was no simplification. This worked in Mathematica because a order of matching(specificity order) is maintained in Mathematica. We use downvalues to parse the code in matchpy format. So we know the order. I found a way to fix the order in matchpy. I used ManyToOneMatcher to find all rules being matched to an expression. Then pickup the most prior rule and then perform replacement. It is little slow but we can debug our rules (parsetools) and uti…

GSoC 2018: Proposal Acceptance and Community Bonding Period

Hello, I'm Ashish Kumar Gaurav a undergraduate student at Indian Institute of Technology, Kharagpur. My proposal for completing rule based integration(RUBI) in sympy has been accepted as a part of Google Summer of Code.

RUBI consists of about 10,000 rules. Sympy can use these rules rather than various algorithms to perform efficient integration. RUBI had been a GSoC project last year but it could not be completed. I hope that I will be able to bring RUBI in a working state.

Community bonding period is near end and coding period will be starting on 14th May. In this period I have done the following improvements: Fixed a bug in parsetool, which raised exceptions while sympifying the code.Removed repeated definition of same constraints. All constraints are present in a single file , in which each constraint is defined uniquely. Earlier same constraints were defined multiple times. An issue had also been created here.Removed dependencies of lambda function from constraints…