Warnings



Warnings can occur during evaluation, for example when trying to take the square root of a negative number, for example:

Variable X := Sequence(-2, 2)
Variable Y := Sqrt(X)
Chapter10 6.png

This Warning dialog gives you the option to ignore this and future warnings. If you select Ignore Warnings, Y yields:

Y → [NAN, NAN, 0, 1, 1.414]

The NaN values can be propagated further into a model.

Tip
If you click the Ignore warnings button, it will ignore all warnings from this variable and all other variables in this and future sessions with this model. Ignoring warnings could lead to you getting NaN or Null results for unknown reasons. If this happens, you can switch warnings back on by checking Show result warnings in the Preferences dialog.

Analytica displays warning conditions detected while evaluating an expression only if the resulting value assigned to a variable contains an explicit error. In the following example, the NAN resulting from evaluating Sqrt(X) for negative X does not appear in the result, so it does not display a warning:

Variable Z := If X < 0 Then 0 Else Sqrt(X)
Z → [0, 0, 0, 1, 1.414]

Because (X < 0) evaluates to an array containing both True (1) and False (0) values, the expression evaluates Sqrt(X), and generates NAN as for Y above. But, the conditional means that resulting value for Z contains no NANs, and so Analytica generates no warning when Z is evaluated.

You can also make use of the return value, even if it might be errant, as in the following example:

VAR x := Sqrt(y);
If IsNaN(x) Then 0 Else x

The common warning “subscript or slice value out of range” returns Null, for example:

Index I := 1..5
X[I = 6] → Null

If you want to ignore warnings for a single variable, you can use the IgnoreWarnings() function around the definition.

See Also

Comments


You are not allowed to post comments.