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