MathGroup Archive 2012

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

Search the Archive

using built in compiler

  • To: mathgroup at smc.vnet.net
  • Subject: [mg128190] using built in compiler
  • From: rajesh7796gm at gmail.com
  • Date: Sat, 22 Sep 2012 02:48:27 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net

dear esteemed mathematica experts,
hello there & greetings from malaysia.
 i have been trying to use the compiler on a module to see whether it speeds up the execution or not. kindly see below.
unfortunately, mathematica returns  a couple of error messages. 
can anybody help ? will appreciate any assistance from this forum. 

cheers
rajesh

fC := Compile[{{l, _Real}, {nsteps, _Integer}, {En, _Real} },
  Module[{meV, \[Angstrom], \[Sigma], \[Mu], \[Lambda], k, s, 
    scat, \[Delta]},
   meV = 1./(27.3*1000.); 
   en = En*meV; \[Angstrom] = 1./0.52; \[Sigma] = 
    3.57 \[Angstrom]; \[Epsilon] = 5.9 meV;
   V[r_] = \[Epsilon] ((\[Sigma]/r)^12 - 2 (\[Sigma]/r)^6);
   
   \[Mu] = (mH mKr)/(mH + mKr) /. {mH -> 1836.0, mKr -> 1836.0*136.0};
   (*Print[\[Mu]];*)
   \[Mu] // N;
   \[Lambda] = 2 \[Pi]/Sqrt[2.0 \[Mu] en] // N; k = 2 \[Pi]/\[Lambda];
   (*Print["\[Lambda]= ",\[Lambda]]*);
   s = 5. \[Lambda]/nsteps; 
   x = {0.5 \[Sigma], 0.5 \[Sigma] + s}; \[Psi] = {0.0, 0.0001};
   F[r_] = 2. \[Mu]1 (V[r] + 1/(2. \[Mu]1 r^2) l (l + 1) - en);
   Do[\[Psi]m = \[Psi][[n - 1]]; \[Psi]n = \[Psi][[n]]; 
    xm = x[[n - 1]]; xn = x[[n]];
    xp = xn + s; x = Append[x, xp]; Fn = F[xn]; Fp = F[xp]; Fm = F[xm];
    \[Psi]p = (2. \[Psi]n - \[Psi]m + 
        s^2/12. (10. Fn \[Psi]n + Fm \[Psi]m))/(1. - s^2/12. Fp);
    \[Psi] = Append[\[Psi], \[Psi]p], {n, 2, nsteps}];
   \[Psi] = \[Psi]/Max[\[Psi]]; scat = Transpose[{x, \[Psi]}];
   nmax = Length[scat]; {r1, u1} = scat[[nmax]]; {r2, u2} = 
    scat[[nmax - 1]];
   K = (r1 u2)/(r2 u1); j1 = j[l, k r1]; j2 = j[l, k r2]; 
   n1 = n[l, k r1]; n2 = n[l, k r2];
   \[Delta] = ArcTan[(K j1 - j2)/(K n1 - n2)]]]

fC[2.0, 1000, 2.0] // AbsoluteTiming
CompiledFunction::cfse: Compiled expression 1822.5985401459855` should be a machine-size integer. >>

CompiledFunction::cfex: Could not complete external evaluation at instruction 7; proceeding with uncompiled evaluation. >>



  • Prev by Date: Re: List & Plot: do they parse options differently?
  • Next by Date: Low-level notebook programming for custom document generation
  • Previous by thread: Re: Percentage of Primes
  • Next by thread: Low-level notebook programming for custom document generation