SetDelayed and Evaluate
- To: mathgroup at smc.vnet.net
- Subject: [mg104477] SetDelayed and Evaluate
- From: Peter <insomnia.berlin at gmail.com>
- Date: Sun, 1 Nov 2009 04:02:47 -0500 (EST)
Hi group,
after years of experience with Mathematica I've got a simple (?)
problem:
When answering to a question on the student support forum (http://
forums.wolfram.com/student-support/topics/21448/) I tried fo myself
the folowing variants:
f[z_?NumericQ]:=Compile[{{x,_Real}},x-x^2][z];
g[z_?NumericQ]:=Evaluate[Compile[{{x,_Real}},x-x^2]][z];
and got the following results:
In[6]:= Timing[Do[NMaximize[f[x],x],{1000}]]
Out[6]= {35.871,Null}
In[7]:= Timing[Do[NMaximize[g[x],x],{1000}]]
Out[7]= {35.962,Null}
~1 ms per NMaximize is OK, because there are background-processes
running.
But I expect f to compile x-x^2 at every call to f and g to compile
once on time of definition. Therefore I expected g to be significantly
faster than f.
Where am I wrong?
TIA,
Peter Pein
- Follow-Ups:
- Re: SetDelayed and Evaluate
- From: Patrick Scheibe <pscheibe@trm.uni-leipzig.de>
- Re: SetDelayed and Evaluate