I cannot understand a situation with `MeijerG` function. My problem is as follows. I obtained a `MeijerG` function as the result of a Fourier transform:

```
Integrate[
 Integrate[
  Exp[I*k*r*Cos[φ]]/(k^4 + 1)*k, {φ, 0, 2 π}, 
  Assumptions -> {k > 0, r > 0}], 
                         {k, 0, ∞}, Assumptions -> {r > 0}]  

(* 1/2 π MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, r^4/256]  *)

```

Let us look at it:

```
Plot[MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, r^4/256], {r, 0, 5}]

```

[![plot](https://i.stack.imgur.com/qBNsQ.jpg)](https://i.stack.imgur.com/qBNsQ.jpg)

However, few years ago I remember to have obtained the same integral in terms of a more familiar Kelvin kei function as follows $$-\frac{\mathrm{kei}\_0(r)}{2 \pi }.$$ I tried to get it using `FullSimplify`, but failed.

**This is my first question on this subject**: are you aware of an approach to transform this `MeijerG` function into any Bessel-based (or Kelvin kei) form?

OK, at that time I used the tables of integrals of Prudnikov, Brychkov and Marichev, and these tables might have had an error. 

However, now I try to get this result at `r = 0`. According to the plot above it is regular in this point. This calculation might be done in several ways: by a direct substitution `r -> 0` in the above result, provided I change the assumptions to `Assumptions -> {r >= 0}` everywhere. Alternatively I can go to a limit `r -> 0` or within the old assumptions I can substitute, say, `r -> 0.001` to get a close numeric answer. I can, finally, simply put 0 instead of `r` into the `MeijerG` function. Here you are:

```
MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, 0] // Evaluate

(* MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, 0] *)

MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, 0]

(* MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, 0] *)

MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, r] /. r -> 0

(* MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, 0] *)

MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, 0.00001]

(* 3.00952 *)

    Limit[ MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, r^4/256], r -> 0.00001]

    (* 3.14159  *)

```

In addition I can do the following:

```
f[r_] := Integrate[
   Integrate[
    Exp[I*k*r*Cos[φ]]/(k^4 + 1)*k, {φ, 0, 2 π}, Assumptions -> {k > 0, r >= 0}], {k, 0, ∞}, 
   Assumptions -> {r >= 0}]  ;
f[0]

(*  π^2/2  *)

```

However, one can act another way around. One can substitute `r=0` into the initial integral, which will then reduce to the following:

```
1/(2 π)*Integrate[k/(k^4 + 1), {k, 0, ∞}]

(*  1/8  *)

```

which, evidently, differs from the results about 3 obtained above.

So, **the second question is**: what happens here? Why is it so difficult to obtain the value of the `MeijerG` function in zero?
['https://mathematica.stackexchange.com/questions/126666', 'https://mathematica.stackexchange.com', 'https://mathematica.stackexchange.com/users/788/']
The standard way to express `MeijerG` in terms of more specific special functions is with `FunctionExpand`. For example

```
MeijerG[{{1}, {}}, {{1/2, 1, 3/2}, {}}, z]

```

> 
> 
> ```
> MeijerG[{{1}, {}}, {{1/2, 1, 3/2}, {}}, z]
> 
> ```
> 
> 

```
FunctionExpand[%]

```

> 
> 
> ```
> -2 π z - π^2 z BesselY[1, 2 Sqrt[z]] + π^2 z StruveH[1, 2 Sqrt[z]]
> 
> ```
> 
> 

However your expression does not simplify with this approach

```
FunctionExpand[1/2 π MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, r^4/256], r > 0]

```

> 
> 
> ```
> 1/2 π MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, r^4/256]
> 
> ```
> 
> 

---

The best work around I could find is to express the 3-arg form of `MeijerG` into a 4-arg form, which will be correct on the positive real axis.

```
mei = 1/2 π MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, r^4/256];

FunctionExpand[mei /. {
  MeijerG[as_, bs_, c_. r^n_?Positive] :> MeijerG[as, bs, c^(1/n) r, 1/n]
}]

```

> 
> 
> ```
> -2 π KelvinKei[0, r]
> 
> ```
> 
> 

---

Another (less successful) workaround is to solve the ODE your `MeijerG` satisfies.

```
DifferentialRootReduce[1/2 π MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, r^4/256], r]

```

[![enter image description here](https://i.stack.imgur.com/rPzTV.png)](https://i.stack.imgur.com/rPzTV.png)

Now `FunctionExpand` knows how to handle `DifferentialRoot` objects, but it seems to spin forever on this input presumably because the solution from `DSolve` on this ODE has very complicated coefficients.

If we approximate the initial conditions, we can see your expression is really $-2\pi \text{kei}\_0(r)$.

```
DSolveValue[{
  r^3 y[r] + y'[r] - r y''[r] + 2 r^2 y'''[r] + r^3 y''''[r] == 0, 
  y[1] == 3.1101430273071208511784026627334110346453670869257748826627`30., 
  y'[1] == -2.2140054621659709246306930546689437640742733642857570978703`30., 
  y''[1] == 0.412577224007051831900819509950661362815906739014512338784`30., 
  y'''[1] == 1.7377422767006054496810801840889187820973078345984715247552`30.
}, y[r], r] // Chop

```

> 
> 
> ```
> -6.28318530717958647692528677 KelvinKei[0, r]
> 
> ```
> 
> 

---

Addressing your second question, my guess is this particular `MeijerG` isn't evaluating at the origin because it's a (rather complicated looking) branch point:

[![enter image description here](https://i.stack.imgur.com/ExAxp.png)](https://i.stack.imgur.com/ExAxp.png)
In addition to Chip's nice answer, another way would be to do a "round trip" using the Mellin transform and its inverse:

```
InverseMellinTransform[
       MellinTransform[π/2 MeijerG[{{}, {}}, {{0, 1/2, 1/2}, {0}}, r^4/256], r, t], t, r]
   -2 π KelvinKei[0, r]

```

---

**Bonus:** the original integral can in fact be expressed as an appropriate Mellin convolution:

```
2 π MellinConvolve[BesselJ[0, k], k^2/(1 + k^4), k, r]

```

Unfortunately, this also returns the normal $G$ function (as with `Integrate[]`) instead of the more useful (at least in this case) extended $G$ function.