If systematically applied, the integration rules provided on this website can determine the
antiderivative for a wide variety of mathematical expressions.
As proof, a **ru**le-**b**ased **i**ntegrator nicknamed **Rubi** was implemented using these rules.
**Rubi** dramatically out-performs ** Maple** and

The following table summarizes the result of running the integration test suite on these systems as of 8 May 2013:

Integration Test Suite Results | ||||||||||||||||||

Rubi 4 | Maple 17 | Mathematica 9 | ||||||||||||||||

Integrand Types | Problems | Optimal | Messy | Unable | Timeout | Optimal | Messy | Unable | Timeout | Optimal | Messy | Unable | Timeout | |||||

Algebraic binomial functions | 8832 | 8832 | 0 | 0 | 0 | 7317 | 1094 | 421 | 0 | 8275 | 529 | 28 | 0 | |||||

Algebraic trinomial functions | 7013 | 7013 | 0 | 0 | 0 | 5320 | 1559 | 112 | 22 | 6569 | 425 | 18 | 1 | |||||

Algebraic functions | 1635 | 1624 | 6 | 5 | 0 | 1274 | 231 | 130 | 0 | 1416 | 167 | 52 | 0 | |||||

Exponential functions | 838 | 834 | 0 | 4 | 0 | 669 | 55 | 114 | 0 | 696 | 114 | 27 | 1 | |||||

Logarithm functions | 1049 | 1047 | 0 | 2 | 0 | 403 | 176 | 467 | 3 | 922 | 99 | 27 | 1 | |||||

Trig functions | 13183 | 13140 | 4 | 39 | 0 | 7657 | 3936 | 1554 | 36 | 8733 | 3670 | 167 | 613 | |||||

Inverse trig functions | 1612 | 1609 | 0 | 3 | 0 | 1122 | 186 | 300 | 4 | 1406 | 111 | 57 | 38 | |||||

Hyperbolic functions | 3761 | 3747 | 1 | 13 | 0 | 2704 | 488 | 562 | 7 | 3063 | 573 | 0 | 125 | |||||

Inverse hyperbolic functions | 4099 | 4093 | 0 | 6 | 0 | 2343 | 295 | 1451 | 10 | 3726 | 199 | 98 | 76 | |||||

Special functions | 1241 | 1241 | 0 | 0 | 0 | 865 | 56 | 320 | 0 | 986 | 27 | 218 | 10 | |||||

Contributed problems | 200 | 185 | 2 | 13 | 0 | 152 | 15 | 33 | 0 | 155 | 26 | 17 | 2 | |||||

Totals | 43463 | 43365 | 13 | 85 | 0 | 29826 | 8091 | 5464 | 82 | 35947 | 5940 | 709 | 867 | |||||

Percentages | 99.8% | 0.0% | 0.2% | 0.0% | 68.6% | 18.6% | 12.6% | 0.2% | 82.7% | 13.7% | 1.6% | 2.0% | ||||||

The following summarizes the meaning of the numbers under the column headings in the above table:

**Problems**: the number of integration problems for each integrand type.**Optimal**: for**Rubi 4**, the number of results identical to the optimal antiderivative; for the other systems, the number of results no more than twice the size of the optimal antiderivative, based on leaf counts.**Messy**: for**Rubi 4**, the number of results that are correct*but*not identical to the optimal antiderivative; for the other systems, the number of results that are more than twice the size of the optimal antideriative.**Unable**: the number of problems the system returns unintegrated but that are actually integrable in terms of functions known by the system.**Timeout**: the number of problems the system fails to integrate within a 25 second timelimit.

Click on Highlights of Integration Test Results
to see numerous examples comparing the **Rubi**, ** Maple** and

To see a table showing how recent versions of **Rubi** and four other symbolic integrators perform on a test-suite
of symbolic integration problems written independently of **Rubi**, click on one of the following:

Click on A Knowledge Repository for Indefinite Integration Based on Transformation Rules to see an article describing the principles used to the build system of over 5000 rules Rubi uses to efficiently integrate a wide variety of mathematical expressions.

To view or download the rules **Rubi** uses to integrate expressions, click on one of the following file types:

- Problems in Axiom syntax text files
- Problems in Maple syntax text files
- Problems in Mathematica syntax package files
- Problems in Maxima syntax text files

If you have access to **Mathematica 7** or better, you can download and run **Rubi 4.6** for yourself.
In addition to being able to integrate problems like those in the test suite, **Rubi** provides the option of showing
the rules required to integrate expressions, along with the intermediate results.
Extract the contents of the Rubi 4.6 zip file into a directory of your choice.
Then from **Mathematica**, open the notebook file **Rubi4.6.nb**.
Click on the sample integration problem at the end of the notebook and press **Shift-Enter** to evaluate it.
After a minute or so depending on the speed of your computer, the first step of the integration should be displayed.
To see successive steps, click on the intermediate results and press **Shift-Enter**.

I encourage the submission of new rules and test problems, preferably in the same format as the files on this website. Please send your comments and suggestions to Albert Rich.

The mathematical knowledge on this website is freely available for any educational, academic or commercial use. Please include the website address and appropriately acknowledge its author in any product incorporating its contents.