MathGroup Archive 2010

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

Search the Archive

Compile and arrays

  • To: mathgroup at smc.vnet.net
  • Subject: [mg114187] Compile and arrays
  • From: "Eric Michielssen" <emichiel at eecs.umich.edu>
  • Date: Fri, 26 Nov 2010 05:30:06 -0500 (EST)

Compiled functions that act on subarrays of supplied arrays often run very
slow. 

As an example, consider the following two routines "Ctest" (compiled) and
"test" (standard mathematica). They do the same, namely extract the first
row from matrices a and b, and add them.

Ctest = Compile[{{a,_Real,2},{b,_Real,2}}, Module[{c},c = a[[1]] +
b[[1]];Return[c]]];
test[a_,b_]:=Module[{c},c = a[[1]] + b[[1]];Return[c]];

Oftentimes, Ctest is two orders of magnitude slower than test, implying that
the routine lacks information on the size of the two matrices to loop fast.

Is there a remedy/workaround for this in Mathematica 8?

Thanks,
Eric Michielssen




  • Prev by Date: Re: Problem with Series
  • Next by Date: Re: Why does this pattern fail to match?
  • Previous by thread: Re: Workbench and Mathematica 8
  • Next by thread: Re: Compile and arrays