MathGroup Archive 2000

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

Search the Archive

Re:Function compile problems

  • To: mathgroup at smc.vnet.net
  • Subject: [mg26177] Re:[mg26128] Function compile problems
  • From: "Ersek, Ted R" <ErsekTR at navair.navy.mil>
  • Date: Thu, 30 Nov 2000 01:04:17 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Chris tried to use the following definition of a function using compile and
got error messages.
-------------------
test1 = Compile[{{n, _Integer}}, 
   g[{r_, t_}] := r Cos[n t]; 
    xy = Table[{x, y}, {x, -1, 1, 0.5}, {y, 1, -1, -0.5}]; 
    Map[g[#] &, xy, {2}]//N 
]; 

----------------------
Compile chokes for two reasons.
  (1) You can't use global variables such as (g, xy) inside Compile.
  (2) You can't use a pattern such as {r_,t_} inside Compile.
A version that will use compiled evaluation is given below.
Notice use of (N)  isn't needed since I ensure Table returns approximate
numbers.

test2 =Compile[{{n, _Integer}}, 
   Map[ First[#] * Cos[n*Last[#]]&,
      Table[{x, y}, {x, -1.0, 1.0, 0.5}, {y, 1.0, -1.0, -0.5}], {2}
   ]
];

------------------
It would be nice to use 
   Apply[ #1, Cos[n,#2]&,  Table[.....], {}]
but compiled evaluation only supports Apply when the first argument is List,
Plus, or Times.

For much more on this subject look up Compile on my website:
http://www.verbeia.com/mathematica/tips/Tricks.html

------------------
Regards,
  Ted Ersek



  • Prev by Date: What is legal for :ReturnType:
  • Next by Date: Re: Symbolic complex conjugation
  • Previous by thread: Function compile problems
  • Next by thread: Re: Function compile problems