The following function is defined for `Real` input:

```
FFc = Compile[{{x, _Real}, {EF, _Real}},If[x > EF, 0., If[x == EF, 0.5, 1.]]]

```

`FFc` is now used in the function called `foo`:

```
EBoundary = 6.5;
foo[Ef_?NumericQ] := NIntegrate[FFc[x, Ef] , {x, -EBoundary, EBoundary}]

```

When I call `foo` like

```
foo[3.2]

```

I get an error message:

```
CompiledFunction::cfsa: "Argument x at position 1 should be a machine-size real number.

```

Since I'm using real numbers I have no idea why I get this message. What is the problem? Is it because `If[]` can return `0`?