       Re: FullSimplify and HypergeometricPFQ

• To: mathgroup at smc.vnet.net
• Subject: [mg72629] Re: FullSimplify and HypergeometricPFQ
• From: Paul Abbott <paul at physics.uwa.edu.au>
• Date: Sat, 13 Jan 2007 03:45:41 -0500 (EST)
• Organization: The University of Western Australia
• References: <eljas5\$7fu\$1@smc.vnet.net> <elotea\$pck\$1@smc.vnet.net>

```In article <elotea\$pck\$1 at smc.vnet.net>, guy.verhofstadt at gmail.com
wrote:

> You were right, FunctionExpand is the one that does most of the work.
> Still, I don't know the answer to my original question. Here is the
> specific problem:
>
> My all problem boils down to how Mathematica, for this input
>
> In:= FunctionExpand[HypergeometricPFQ[{1, s,k+t},{s+k+1,1+t},1]]
>
> returns something that I consider almost a solution:

What do you mean, "almost a solution"?

>           t         s t        Gamma[1 + k + s] Gamma[1 + t]
> Out= ------ + ---------- + -------------------------------
>         -s + t   k (-s + t)   k (s - t) Gamma[s] Gamma[k + t]

> (it probably won't display right)

It displays fine in fixed-width font.

> This is definitely exceptional among the HypergeometricPFQ. There are
> identities that involve them, see for instance
>
> http://mathworld.wolfram.com/GeneralizedHypergeometricFunction.html
>
> but none of those matches the simplification that occured above, and
> the mere fact that they are listed separately like this on Mathworld
> should convince anyone who doesn't know about them that this isn't
> common.

I'm not sure what you mean by "uncommon". The function

HypergeometricPFQ[{1, s, k+t},{s+k+1, 1+t}, 1]

is Saalschützian, see

http://mathworld.wolfram.com/Saalschuetzian.html

and this _is_ a common situation.

Moreover, the ThreeJSymbol and ClebschGordan functions (both built-in to
Mathematica) are related to special cases of

HypergeometricPFQ[{a, b, c},{d, e},1].

There are a large number of identities and transformations for
HypergeometricPFQ functions. See, e.g.,

http://functions.wolfram.com/HypergeometricFunctions/Hypergeometric3F2

and particularly the case where z == 1.

> So what happens under the hood?

The required transformation is given at

http://functions.wolfram.com/07.27.03.0020.01

Re-writing this identity as a transformation rule, one obtains an
equivalent solution to that obtained above:

HypergeometricPFQ[{1, s, k + t}, {k + s + 1, t + 1}, 1] /.
HypergeometricPFQ[{1, a_, b_}, {d_, e_}, 1] :> ((a + b - d + 1)*
(-d + (Gamma[d] Gamma[a + b - d + 1])/(Gamma[a] Gamma[b]) + 1))/
((a - d + 1)*(b - d + 1)) /; e == a + b - d + 2

To see more of what happens under the hood, if you do

Begin["System`HypergeometricDump`"]

(to change context) and then

SetOptions[Trace, TraceInternal -> True]

tracing hypergeometric computations becomes (a little) easier to follow
(because variables in the "System`HypergeometricDump`" context have
short names). In the output of

Trace[FunctionExpand[
HypergeometricPFQ[{1, s, k + t}, {k + s + 1, t + 1}, 1]]]

you will see a number of rules being tried, such as F32. If you enter

?F32

a number of special cases of HypergeometricPFQ are listed, and some of
these rules call other rules, such as F32Formula50:

?F32Formula50

If you trace the calls to F32 during the evaluation of your example with
k -> 0, that is,

Trace[FunctionExpand[
HypergeometricPFQ[{1, s, t}, {s + 1, t + 1}, 1]], F32]

you can see which rule was used.

Cheers,
Paul

_______________________________________________________________________
Paul Abbott                                      Phone:  61 8 6488 2734
School of Physics, M013                            Fax: +61 8 6488 1014
The University of Western Australia         (CRICOS Provider No 00126G)
AUSTRALIA                               http://physics.uwa.edu.au/~paul

```

• Prev by Date: Re: speed of multiplying polynomials
• Next by Date: Re: Nminimize: Give Initial values to Decision Variables
• Previous by thread: Re: Re: Re: Re: Re: Limit and Root Objects
• Next by thread: Re: interpolation of a matrix function