# Compiled funtion don't understand internal compiled function [duplicate]

I work a lot on Mathematica and sometimes I need to optimize my computations by using compiled functions. Now I'm making numerical integrations and I'm trying to compile the functions involved to make everything faster. I'm having basically the fallowing issue which explain by it self:

gCC = Compile[{{x, _Real}}, x^2];

fCC = Compile[{{R, _Real}}, NIntegrate[gCC[x + y]*Boole[x^2 + y^2 < R^2], {x, -R, R}, {y, -R, R}] ];

Then when I use the function fCC I get the fallowing error:

fCC[2.1]

CompiledFunction::cfsa: Argument x+y at position 1 should be a machine-size real number. >>

30.549

How can I solve this? Regards.

## marked as duplicate by Jason B., MarcoB, m_goldberg, user9660, RunnyKineMar 30 '16 at 15:28

• NIntegrate[] is not compilable. – J. M. is away Mar 30 '16 at 10:29
• Have a look at documentation regarding the (optional) third argument of Compile. It might be useful in this situation. Also the Compile options for inlining might apply. – Daniel Lichtblau Mar 30 '16 at 11:28
• Just to take one level off the problem, if you try NIntegrate[ gCC[x + y]*Boole[x^2 + y^2 < 2.1^2], {x, -2.1, 2.1}, {y, -2.1, 2.1}] it gives the same error, so the issue is not with the definition of fCC – Jason B. Mar 30 '16 at 11:47
• Try this: gCC = Compile[{{x, _Real}}, x^2]; gCC2[x_?NumericQ] := gCC[x]; fCC = Compile[{{R, _Real}}, NIntegrate[ gCC2[x + y]*Boole[x^2 + y^2 < R^2], {x, -R, R}, {y, -R, R}]]; fCC[2.1] – Jason B. Mar 30 '16 at 11:49