Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Compile and Total


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
>
>
>



  • Prev by Date: Re: Keeping it real
  • Next by Date: Re: Numerical accuracy/precision - this is a bug or
  • Previous by thread: Re: Compile and Total
  • Next by thread: Re: Compile and Total