Re: Compile and Total
- To: mathgroup at smc.vnet.net
- Subject: [mg120275] Re: Compile and Total
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Sat, 16 Jul 2011 05:41:38 -0400 (EDT)
- References: <201107150120.VAA23682@smc.vnet.net>
- Reply-to: drmajorbob at yahoo.com
Why "With" is any use here is beyond me, so I'm more confused than I started. Bobby On Fri, 15 Jul 2011 07:02:35 -0500, Fred Simons <f.h.simons at tue.nl> wrote: > Dear All, > > I apologize for my mistakes. My only excuse is that I am using some drug > now, hopefully only for a few days, that is dangerous a.o. in > combination with driving, and, as I find now, also in combination with > Mathematica. I simply did not see that my 'better' code in my second > mail was incorrect in the first example. Neil found a way to overcome > it, by giving g head Function instead of Symbol. I have not observed > this before, but from this example it seems that > InlineExternalDefinitions does a check on the heads such that when an > external g is used as a function and does not have head Function, the > external definition will not be used. > > In my first mail I used the With construct for substituting the > definitions into the expression to be compiled. But having done so, then > obviously (for me only now) there is no reason for using > CompilationOptions: > > << CompiledFunctionTools`; > > g = Total; > With[{g = g}, gC = Compile[{{x, _Real, 1}}, g[x]]]; > CompilePrint[gC] > > h = #/Total[#] &; > With[{h = h}, hC = Compile[{{x, _Real, 1}}, h[x]]]; > CompilePrint[hC] > > Fred > > Op 15-7-2011 12:32, Neil Stewart schreef: >> Fred, DrMajorBob, Patrick---thank you very much for your replies. >> Continuing >> Fred's code: >> >> <<CompiledFunctionTools`; >> >> (* This does not compile *) >> g = Total; >> gC = Compile[{{x, _Real, 1}}, g[x], >> CompilationOptions -> {"InlineExternalDefinitions" -> True}]; >> CompilePrint[gC] >> >> (* This does *) >> g = Total[#]&; >> gC = Compile[{{x, _Real, 1}}, g[x], >> CompilationOptions -> {"InlineExternalDefinitions" -> True}]; >> CompilePrint[gC] >> >> I don't understand why, so I must be missing something fundamental about >> functions. Do you know the Mathematica keyword for the concept I'm >> missing? >> >> Thanks, >> Neil. >> >> >> ----- >> Geen virus gevonden in dit bericht. >> Gecontroleerd door AVG - www.avg.com >> Versie: 10.0.1390 / Virusdatabase: 1516/3765 - datum van uitgifte: >> 07/14/11 >> >> >> > -- DrMajorBob at yahoo.com
- References:
- Compile and Total
- From: Neil Stewart <neil.stewart@warwick.ac.uk>
- Compile and Total