# Re: Indeterminate forms for the Num type.

```Physicist here. One who believes -2**2 is negative.

At 23:26 +0800 1/17/06, Audrey Tang wrote:
>Several options:
>- - Use whatever the underlying "num" semantics available```
```
That's likely to be in hardware. It might even be hard to detect without
looking at the NaN returned and that would be a waste of time. Some formulas
can accept a NaN argument and still provide a correct result. At the worst they
return a NaN to be tested for later

>- - Always "fail"
>- - Always "die"

Those are non-conforming options See below.

>- - Specify them to return some definite value.

Only on a machine that doesn't do it in hardware or in some special perl
function that's unlikely.

>At this moment, Pugs defines them ad-hocly to:
>
>       0/0       == die "Illegal division by zero" <--- wrong. 1/0 should not
> die either.
>       0*Inf     == NaN <--- reasonable but don't re-invent the NaN bit pattern
>       Inf/Inf   == NaN <--- reasonable but don't re-invent the NaN bit pattern
>       Inf-Inf   == NaN <--- reasonable but don't re-invent the NaN bit pattern

>       0**0      == 1 <--- Not indeterminate. Answer is correct.
>       Inf**0    == 1 <--- Not indeterminate. Answer is correct.
>       1**Inf    == 1 <--- Not indeterminate. Answer is correct.

<http://stevehollasch.com/cgindex/coding/ieeefloat.html>

<http://en.wikipedia.org/wiki/Divide_by_zero>
>The IEEE floating-point standard, supported by almost all modern processors,
>specifies that every floating point arithmetic operation, including division
>by zero, has a well-defined result.

I can't seem to find the actual assigned NaN bit patterns for the above cases,
<http://docs.sun.com/source/816-2465/iapgCreference.html>
is helpful but doesn't get there. There may be multiple inf/inf returns in some
cases depending on just which inf is involved. There are also NaN's for
functions implemented in hardware like atan and exp.

--

--> In Christianity, man can have only one wife. This is known as monotony. <--
```