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.
NIntegrate[]
is not compilable. $\endgroup$Compile
. It might be useful in this situation. Also theCompile
options for inlining might apply. $\endgroup$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 offCC
$\endgroup$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]
$\endgroup$