Contents

## Indeterminate

The indeterminate _. is a numeric atom. It is provided to aid in dealing with NaN (not a number) in data from external sources, and should be removed from such data as soon as possible. The verb 128!:5 tests for _. .

The only ways to create _. are as follows:

• direct entry of _.

• ".

• 3!:n

• DLL call (database, LAPACK, etc.)

Primitives on arguments containing _. , that move data without interpreting the value, produce correct and consistent results. These include \$ |. |: # , ,. [ ] { {. {: } }. }: . Other primitives on arguments containing _. may not produce correct or consistent results. In particular, the dyads < <: = >: > ~: -: <. >. do not produce consistent results on arguments containing _. , nor the verbs /: \: , nor the dyads i. i: e. -. , nor the monads ~. ~: , nor verbs defined in terms of these.

Primitives on arguments not containing _. signal NaN error  instead of producing _. .

 x+y x and y are infinite with different signs x-y x and y are infinite with the same sign *y the real and imaginary parts of y are infinite x%y x and y are infinite x^.y x and y are infinite or 0 x!y x and y are infinite m H. n similar to the dyad p. x p. y x and y that cause addition of infinities with opposite signs; for example 1 _ _ p. _1 u T. n y similar to the dyad p.

0*_ , 0*__ , and 0%0 are all defined to be 0 .

## 128!:5 (Is NaN)

If z=: 128!:5 y , then z has the same shape as y and an atom of z is 1 if and only if the corresponding atom of y is _. (NaN) or contains _. .

Examples:

(128!:5) 3.45 6 _. 7
0 0 1 0
(128!:5) t=. 2 2\$1 2;3 4 5;(<<_. 7);_.
0 0
1 1
(128!:5) < t
1
(128!:5) ;:'Cogito, ergo sum. _.'
0 0 0 0 0

## Replacing _.

_. atoms in a numeric array can be replaced by another value as follows:

] x=: 4 5 \$ _. (3 ?.@\$ 20)}20 ?.@\$ 10
6  5 9 2  4
9 _. 7 0  4
6  8 3 8  1
_.  8 0 0 _.

(128!:5 x){"0 1 x,"0 v=: _999
6    5 9 2    4
9 _999 7 0    4
6    8 3 8    1
_999    8 0 0 _999

Another way involves using arithmetic. This is not recommended as arithmetic on _. may not be correct or consistent.

b=: 128!:5 x
(v*b) + x*-.b
6    5 9 2    4
9 _999 7 0    4
6    8 3 8    1
_999    8 0 0 _999

Contributed by RogerHui. The first two sections duplicate the _. page and the 128!:5 entry of the dictionary.

Essays/Indeterminate (last edited 2008-12-08 10:45:41 by anonymous)