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