Random Normal deviates within compiled function?
- To: mathgroup at smc.vnet.net
- Subject: [mg62282] Random Normal deviates within compiled function?
- From: Gareth Russell <russell at njit.edu>
- Date: Sat, 19 Nov 2005 05:54:02 -0500 (EST)
- Organization: New Jersey Institute of Technology
- Sender: owner-wri-mathgroup at wolfram.com
Hi All, I have a function which needs to be quick as it's used in simulations, and it requires the internal generation of a large vector of random normal deviates (up to 50,000). It appears that a function like Random[NormalDistribution[0,s]] cannot be compiled. Can anyone suggest an algorithm for getting such numbers that would work within a Compile statement and still be quicker than using the non-compiled function? The non-compiled function would look as follows: f[v_,r_,k_,s_,q_]:=Select[v*Exp[r*(1 - v/k) + RandomArray[NormalDistribution[0, s], Length[v]]], # > q &] where v is a vector of 50,000 reals, and r, k, s and q are scalar reals. (If anyone is interested, this is for population projection in population viability analysis.) Thanks, Gareth Russell NJIT