Re: Compile problem: Mathematica 4
- To: mathgroup at smc.vnet.net
- Subject: [mg18864] Re: Compile problem: Mathematica 4
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Sun, 25 Jul 1999 03:30:04 -0400
- Organization: University of Western Australia
- References: <7n13ce$be7@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Paul Howland wrote: > What is wrong with the following (simplified) compile statement? It seems > that the Compiler doesn't recognise that Round[] returns an object with a > Head of Integer. Can I explicitly tell the compiler that this is the case? > > Code follows: > > In[4]:= > f=Compile[{{x, _Real,1}}, i=Round[2.3]; x[[i]]++;Return[x]] No problem with compiling in version 4 -- but you cannot modify x this way. Notebook[{ Cell[BoxData[ \(TraditionalForm\`\(f = Compile[{{x, _Real, 1}}, i = Round[2.3]; \ \(x[\([i]\)]++\); Return[x]];\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(TraditionalForm\`f[{1, 2, 3}]\)], "Input"], Cell[BoxData[ FormBox[ RowBox[{\(Set::"setps"\), \(\(:\)\(\ \)\), \ "\<\"\\!\\(TraditionalForm\\`\\({1.`, 2.`, 3.`}\\)\\) in assignment of part \ is not a symbol.\"\>"}], TraditionalForm]], "Message"], Cell[BoxData[ \(TraditionalForm\`{1.`, 2.`, 3.`}\)], "Output"] }, Open ]], Cell[BoxData[ FormBox[ RowBox[{ RowBox[{"f", "=", RowBox[{"Compile", "[", RowBox[{ RowBox[{"(", "\[NoBreak]", GridBox[{ {"x", "_Real", "1"} }], "\[NoBreak]", ")"}], ",", \(Module[{y = x, i = Round(2.3)}, \(y\[LeftDoubleBracket] i\[RightDoubleBracket]++\); Return[y]]\)}], "]"}]}], ";"}], TraditionalForm]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(TraditionalForm\`f[{1, 2, 3}]\)], "Input"], Cell[BoxData[ \(TraditionalForm\`{1.`, 3.`, 3.`}\)], "Output"] }, Open ]] } ] ____________________________________________________________________ Paul Abbott Phone: +61-8-9380-2734 Department of Physics Fax: +61-8-9380-1014 The University of Western Australia Nedlands WA 6907 mailto:paul at physics.uwa.edu.au AUSTRALIA http://physics.uwa.edu.au/~paul God IS a weakly left-handed dice player ____________________________________________________________________