Pure functions vs rule based functions inside NIntegrate

*To*: mathgroup at smc.vnet.net*Subject*: [mg132262] Pure functions vs rule based functions inside NIntegrate*From*: Yi Wang <tririverwangyi at gmail.com>*Date*: Sun, 26 Jan 2014 03:14:41 -0500 (EST)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*Delivered-to*: l-mathgroup@wolfram.com*Delivered-to*: mathgroup-outx@smc.vnet.net*Delivered-to*: mathgroup-newsendx@smc.vnet.net

Hello, As I was told, only pure functions can be compiled. Also, NIntegrate or NDSolve first compiles a function before doing numerical operations. Thus, I would have expected that using pure functions in NIntegrate or NDSolve could be faster than rule based functions. However, in tests I didn't find such a difference. For example, f1[x_, y_] := Sin[Sin[x Sin[y]]]; AbsoluteTiming@NIntegrate[f1[x, y], {x, 0, 100}, {y, 0, 100}] and f2 = Sin[Sin[#1 Sin[#2]]] & AbsoluteTiming@NIntegrate[f2[x, y], {x, 0, 100}, {y, 0, 100}] takes about the same time. How can I tell if both are compiled, or neither, and why? Thanks! Yi