Albert Rich schrieb: > > Version 4.5 of Rubi, the Rule-based integrator, is now freely > available for downloading at http://www.apmaths.uwo.ca/RuleBasedMathematics > > It consists of over 5000 precisely defined rules that return > closed-form antiderivative for a wide class of integrands. Also > available is a test suite comprised of almost 50,000 integrands and > their optimal antiderivatives. > > An almost total rewrite of the trig integration package has greatly > increased the class of expressions Rubi is able to integrate. For > example, Rubi 4.5 can integrate all integrable expressions of the form > > (a+b trig(x))^m (c+d trig(x))^n (A+B trig(x)+C trig(x)^2) > > where <trig> is any one of the twelve trig or hyperbolic functions. > Note that the coefficients and exponents can have any numeric or > symbolic value, including zero. Of course, Rubi automatically > transforms a wide variety of other trig expressions into the above > form so they can be integrated. Previous versions of Rubi could only > guaranteeably integrate all expressions of the form > > trig(x)^m (a+b trig(x))^n (A+B trig(x)+C trig(x)^2) > > Also Rubi 4.5 incorporates numerous improvements to the algebraic > function integrator. >
The Rubi 4.5 Utility Functions exhibit a typo in the error message "Warning: Unrecogized expression for expansion".
I saw a handful of TimeConstraineds in this file, some evidently used to tame MMA's Simplify. But you also use this brutal means to protect the recursive FixSimplify rule set as well as the recursive functions NormalizeSumFactors and ContentFactorAux, all of which seem entirely under your control. Why is this necessary? Does Rubi have to be prevented from getting lost in the woods of its integration rules in this way too?
PS: Another misprint: The integral sign is missing for Example 5 in Chapter 7 of Timofeev's integrals, as found on the Rubi website: