 
 
 
 
 
 
Compile Function
- To: mathgroup at smc.vnet.net
- Subject: [mg101305] Compile Function
- From: "Christian Winzer" <christian.winzer at gmx.de>
- Date: Wed, 1 Jul 2009 06:31:41 -0400 (EDT)
Hello,
I am trying to compile a function to speed up execution times.
>From what I have read in the previous posts, the function should return a
numerical value in order to be compileable. I think this condition is met.
Still the compile function does not seem to work: 
(*This example calculates the distribution of X = w * M + Z *)
(* Distribution of the stochastic variable M*) 
g = PDF[NormalDistribution[0, 1]]; 
G = CDF[NormalDistribution[0, 1]];
(* Distribution of the stochastic variable Z*) 
h = PDF[NormalDistribution[0, 1]]; 
H = CDF[NormalDistribution[0, 1]];
(* Weight of M in X*)
w = 0.5;
(*Conditional distribution of the stochastic variable X at point x=#1
conditional on M=#2 *) 
Qm = Evaluate[H[(#1 - w * #2)/(Sqrt[1 - w^2])]] &
(*Unconditional distribution of the stochastic variable X at point x*) 
Q = Integrate[Qm[#1, m]* g[m], {m, -\[Infinity], \[Infinity]}]& 
compiledQ = Compile[{x}, Integrate[Qm[x, m]* g[m], {m, -\[Infinity],
\[Infinity]}]]
compiledQ[1]
CompiledFunction::cfse: Compiled expression 1/2 (1+Erf[0.816497 (1.-0.5 m)])
should be a machine-size real number. >>
CompiledFunction::cfex: Could not complete external evaluation at
instruction 2; proceeding with uncompiled evaluation. >>
Comments and tipps are highly welcome :)!
Thank you very much for the advice and best wishes, 
Christian

