Opened 2 years ago

Last modified 2 weeks ago

#22410 new enhancement

Include SymPy's Rubi integrator as integration method

Reported by: rws Owned by:
Priority: major Milestone: sage-8.7
Component: calculus Keywords:
Cc: mmarco, slelievre Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by rws)

More info about it:

The rule-based integrator Rubi by Albert D. Rich consists of about 10,000 pattern-matching rules and "dramatically out-performs Maple and Mathematica" see

The rules are available as of 2017 only as Mathematica code. There were efforts by the SymPy community to either translate them manually or on the fly to Python:

Rubi was proposed as a GSoC project for Sage:

Proof of concept of rule translation into Sage:

Change History (3)

comment:1 Changed 2 years ago by kcrisman

Huh, I never heard of this! Very interesting. If this could be "integrated" into Pynac or Sage that would be impressive - many have proposed a Risch or other algorithm implementation in Sage (including one person who claimed their student had one, but then never followed up).

Interesting comment in the Sympy thread:

I talked with Albert Rich, the author of Rubi, and he told me that the next version will not use pattern matching, but rather just use a decision tree.

comment:2 Changed 17 months ago by rws

  • Description modified (diff)
  • Milestone changed from sage-7.6 to sage-8.2
  • Summary changed from Implement Rubi integrator to Include SymPy's Rubi integrator as integation method

I think SymPy now has the lead on this, and we just want to include that code with Sage. I'm changing the ticket description accordingly.

This depends on a SymPy upgrade ticket.

comment:3 Changed 2 weeks ago by slelievre

  • Cc slelievre added
  • Milestone changed from sage-8.2 to sage-8.7
  • Summary changed from Include SymPy's Rubi integrator as integation method to Include SymPy's Rubi integrator as integration method

This depends on a SymPy upgrade ticket.

In #26550, SageMath upgraded to SymPy 1.3 where rubi support is improved.

For remaining issues in SymPy see

Note: See TracTickets for help on using tickets.