MathGroup Archive 2000

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

Search the Archive

Re:Function compile problems

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

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

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:

  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