Question: Compile in Mathematica 8.0
- To: mathgroup at smc.vnet.net
- Subject: [mg114631] Question: Compile in Mathematica 8.0
- From: Asim <maa48 at columbia.edu>
- Date: Sat, 11 Dec 2010 01:52:46 -0500 (EST)
Hi I am not sure why the first function named v works and why the second function named v1 does not compile. The only difference between the two functions is in the variable called len which controls the number of random numbers that are generated. I am using Mathematica 8.0 on Windows Vista machine. Thanks Asim First function: v = Compile[{{n, _Integer}}, Module[ {g, len}, len = n*(n - 1); g = RandomVariate[NormalDistribution[0., 1.], len] ] ] Output is CompiledFunction[{n},Module[{g,len},len=n (n-1);g=RandomVariate[NormalDistribution[0.,1.],len]],-CompiledCode-] v[3] {0.0866864,-0.271121,-0.431317,-0.6787,-1.29246,0.550486} Second Function: v1 = Compile[{{n, _Integer}}, Module[ {g, len}, len = n*(n - 1)/2; g = RandomVariate[NormalDistribution[0., 1.], len] ] ] CompiledFunction[{n},Module[{g,len},len=1/2 n (n-1);g=RandomVariate[NormalDistribution[0.,1.],len]],-CompiledCode-] v1[3] During evaluation of In[42]:= CompiledFunction::cfse: Compiled expression {-0.325949,1.72381,0.368231} should be a machine-size integer. >> During evaluation of In[42]:= CompiledFunction::cfex: Could not complete external evaluation at instruction 8; proceeding with uncompiled evaluation. >> Out[42]= {0.295626, 0.664446, 0.654626}
- Follow-Ups:
- Re: Question: Compile in Mathematica 8.0
- From: Oliver Ruebenkoenig <ruebenko@wolfram.com>
- Re: Question: Compile in Mathematica 8.0