Date: Nov 16, 2013 7:47 AM
Subject: Re: The A. F. Timofeev symbolic integration test suite

Albert Rich schrieb:
> On Friday, November 15, 2013 3:43:59 AM UTC-10, wrote:

> >> Ok, for integrands of the form (c+d x)^n/(a+b x) when n is symbolic,
> >> the next version of Rubi will return
> >>
> >> (c+d*x)^n/(b*n*(b*(c+d*x)/(d*(a+b*x)))^n)*
> >> 2F1(-n,-n,1-n,-(b*c-a*d)/(d*(a+b*x)))
> >>
> > > The simpler equivalent rule derived using Euler's transformation is
> >> not used since it is harder to simplify its derivative back to the
> >> original integrand.

> > But this is just an arbitrary property of the differentiator, right?
> > Another differentiator may give the result you would now obtain by
> > applying Euler's transformation first (and undoing it on non-elementary
> > hypergeometrics that remain in the derivative).
> >
> > So your reason is no good reason; you are just bending to the dictate of
> > WRI. I suggest that Rubi redefines 2F1 differentiation instead. The
> > optimality of Rubi's antiderivatives determines the rules to which WRI
> > must bend!
> >
> > I have spoken.
> >

> Ok, the Messiah has spoken. I modified the optimal antiderivatives for Timofeev Chapter 8 examples 6a.n, 6b.n and 14 in the test-suite to reflect use of Euler's transformation and posted the revised pdf file at
> However, full credit is still given to those integrators that return
> valid, but suboptimal, antiderivatives for these problems.
> Note that the revised pdf file also includes Chapter 8 test-suite
> results for various integrators, including the forthcoming version 4.3
> of Rubi...

The evaluation of Example 14, INT((a + b*#e^(n*x))^(r/s), x), remains
less simple than the original version, but not significantly so. The
original evaluation involved 2F1 on the branch cut for b/a*#e^(n*x) > 0,
the new one does for -1 < b/a*#e^(n*x) < 0. How about selecting between
them according to SIGN(b/a)?

Would the evaluations of Examples 3.n, 5a.n, 5b.n and 17 perhaps also
profit from Euler's transformation?

I have rummaged my vaults and dug up a mildewed sheaf of papers with the
gospel on 2F1 differentiation and integration. The integration part
reads as follows (typed in without checking):

INT(F21(a,b,c,x), x)
= (c-1)/((a-1)*(b-1))*F21(a-1,b-1,c-1,x)
[a/=1, b/=1, c/=1]

INT(x^(b-2)*F21(a,b,c,x), x)
= 1/(b-1)*x^(b-1)*F21(a,b-1,c,x)

INT(x^(c-1)*F21(a,b,c,x), x)
= 1/c*x^c*F21(a,b,c+1,x)

INT((1-x)^(b-2)*F21(a,b,c,x), x)
= (c-1)/((a-c+1)*(b-1))*(1-x)^(b-1)*F21(a,b-1,c-1,x)
[b/=1, c-a/=1, c/=1]

INT(x^(c-1)*(1-x)^(b-c-1)*F21(a,b,c,x), x)
= 1/c*x^c*(1-x)^(b-c)*F21(a+1,b,c+1,x)

This set should be augmented by applying Euler's transformation on both
sides of each formula. Inasmuch as the 2F1 integration rules are unknown
to Rubi, I suggest to implement the complete set. Older versions of
Mathematica didn't know all of them, maybe the current version still

A 2F1 differentiator has to apply the rules backwards. For simple
antiderivatives, an expression has to be conditioned such that the most
appropriate rule matches, not just the first one from the above list.

Looking forward to Rubi4.3forte,