Compile forgets assigned values inside Do unless they are initialised
- To: mathgroup at smc.vnet.net
- Subject: [mg82126] Compile forgets assigned values inside Do unless they are initialised
- From: "Andrew Moylan" <andrew.j.moylan at gmail.com>
- Date: Sat, 13 Oct 2007 03:42:08 -0400 (EDT)
In the following example, although var is assigned a value, these are "forgotten" and an error occurs when it is returned as the result of the compiled function: Compile[{}, Module[ {var}, Do[ var = 0.;, {10} ]; var ] ][] >> Compile::initvar: The variable var has not been initialized or has been initialized to Null. But if var is initialised (to any Real value at all), then all subsequents assignments to it are "remembered": Compile[{}, Module[ {var = 1.}, Do[ var = 0.;, {10} ]; var ] ][] >> 0. Is this the expected behaviour?