Experimental in Analytica 5.2

SysVar EnableSparse

Globally enables or disables algorithms that introduce fully sparse arrays. There is a distinction between "fully sparse" arrays and "const sparse" arrays, the latter being a special case of the former. Analytica has supported const sparseness since release 2.0 (in 1997), but support for the more general "full sparseness" is introduced for the first time, an only in an experimental capacity, in Analytica 5.2. This system variable controls only full-sparsity. Const sparseness will continue to be used and leveraged even when EnableSparse is 0.

Setting EnableSparse to 1 causes MdTable to produce sparse results, as well as comparison operators (in cases it thinks make sense to do so). This global flag can be overridden during the evaluation of any single expression using SetEvaluationFlag, and that can be further overridden for MdTable by specifying the optional «sparse» parameter.

Once a sparse array is introduced, extant sparse-array algorithms will be applied when the sparse array is a parameter, regardless of the flags' value. The flag controls whether sparse arrays are created in the first place.

Full sparseness applies to multi-dimensional arrays, often of extremely high dimensions that would be unthinkable without full sparsity. The number of logical cells in these arrays can be mindbogglingly large, but the key is that the number of actual values is manageable. The representation allows the "default" value to be anything (which isn't repeated), so that 1+x has the same sparsity of x even though the default value may be different.


Emphasis: Sparse arrays are an experimental feature in Analytica 5.2. Computational errors and bugs are a real possibility. Many potential sparse algorithms are not yet implemented as sparse (in which case, it turns into a dense computation).

If you do play with in, please report issues -- especially computational errors -- to support@lumina.com.

See Also


You are not allowed to post comments.