ConstantArray dimensions in Compiled functions
- To: mathgroup at smc.vnet.net
- Subject: [mg131553] ConstantArray dimensions in Compiled functions
- From: jliu.blueta at gmail.com
- Date: Sat, 24 Aug 2013 04:21:14 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
Hi, Mathematica seems to always assume ConstantArray returns {_Real,2} f = Compile[{{x, _Real}}, Module[{m (*= {{{0.0}}}*)}, m = ConstantArray[0.0, {2, 2, 2}]; m[[1, 1, 1]] = x; m ] ] Compile::part: Part specification m[[1,1,1]] cannot be compiled since the argument is not a tensor of sufficient rank. Evaluation will use the uncompiled function. >> If I initialize m to {_Real, 3}, f = Compile[{{x, _Real}}, Module[{m = {{{0.0}}}}, m = ConstantArray[0.0, {2, 2, 2}]; m[[1, 1, 1]] = x; m ] ] f[1.0] Compile::cset: Variable m of type {_Real,3} encountered in assignment of type {_Real,2}. >> Same error even if I specifically say ConstantArray[] returns a 3-d array. f = Compile[{{x, _Real}}, Module[{m = {{{0.0}}}}, m = ConstantArray[0.0, {2, 2, 2}]; m[[1, 1, 1]] = x; m ], {{ConstantArray[___], _Real, 3}} ] f[1.0] Compile::cset: Variable m of type {_Real,3} encountered in assignment of type {_Real,2}. >> I'd appreciate any help!