Subject: [mg55701] unable to compile function with Part as an argument

From: jules at julesfrancis.co.uk (Julian)

Date: Mon, 4 Apr 2005 00:59:08 -0400 (EDT)

Sender: owner-wri-mathgroup at wolfram.com

Hi Folks,
I have got a fairly complex program which I am trying to compile as it's
quite numerically intensive, but I am running into problems when passing
in a value that comes from an array.
I've boiled it down to a toy example which illustrates what is going wrong.
why the following code fails to compile?
In[1]:=
Developer`SetSystemOptions["CompileReportExternal" -> True]
Out[1]=
"CompileReportExternal" -> True
In[2]:=
f[x_] = Log[x]
Out[2]=
Log[x]
In[4]:=
Compile[{{v, _Real, 1}}, f[Part[v, 1]]]
From In[4]:=
Compile::"extscalar": "\!\(f[\(\(v \[LeftDoubleBracket] 1 \
\[RightDoubleBracket]\)\)]\) cannot be compiled and will be evaluated \
externally. The result is assumed to be of type \!\(Real\)."
Out[4]=
CompiledFunction[{v},
f[v\[LeftDoubleBracket]1\[RightDoubleBracket]], "-CompiledCode-"]
Any help would be greatly appreciated.
Thanks & regards,
Julian.