IgnoreWarnings

Revision as of 10:32, 9 February 2007 by Lchrisman (talk | contribs)


IgnoreWarnings(expr)

Evaluates the expression, expr, while suppressing all warnings that occur within the lexical scope of expr.

It is highly recommended that you keep the Show Result Warnings preference on, since a great many modeling errors can be discovered from warnings that Analytica issues. However, there are times where you really do want to do something that generates a warning. For example, you may intentionally want to allow an out-of-range subscript (which returns NULL when warnings are ignored). In these cases, you can wrap the expression inside IgnoreWarnings, thus leaving the Show Result Warnings preference in tact.

Example

IgnoreWarnings( Emissions[@Time=@Time+1] )

Notes

In some cases, judicious use of IgnoreWarnings can speed up evaluation. This can be the case if inner expressions encounter many warning conditions, even though these may never reach the final result. For example, an expression such as:

If x>0 then Sqrt(X) else Sqrt(-X)

can benefit when x is a very large array. This expression encounters a warning condition for every X (assuming they are all non-zero), since either Sqrt(X) or Sqrt(-X) requires a warning. You will not see any of these warnings, since none of them make it to the top level, but because Analytica must do extra bookkeeping to deduce whether it needs to display a warning, the expression evaluates quicker inside IgnoreWarnings, i.e.:

IgnoreWarnings( if x>0 then Sqrt(X) else Sqrt(-X) )

In this example, the best equivalent expression would be Sqrt(Abs(X)), which would half the number of Sqrt evaluations with no warning issues. The example was chosen for illustrative purposes.

Comments


You are not allowed to post comments.