From: "Raul Miller" <[EMAIL PROTECTED]> wrote:
> On 4/14/08, Mark D. Niemiec <[EMAIL PROTECTED]> wrote:
> > True. However, I think that in this case, _. shouldn't be
> > produced at all (for much the same reason that J treats 0 = 0*_
> > and 0 = 0%0, even though the hardware produces NaN in both cases.)
>
> But 0 and _ are consistent arguments.
>
> Mathematically speaking, _. is an inconsistent argument.

I agree.

However, the point I was trying to make is that 0+._ should
be _, just like 0*_ and 0%0 are. These all have consistent
arguments, and the hardware produces NaN, but in the latter
two cases, the interpreter explicitly overrides the IEEE
specification by producing a more mathematically consistent
and elegant meaningful value.

My only complaint here with arguments of _. is that they
should produce meaningless values or exceptions - NOT
hangs or crashes.

I suppose one could use the rationale that _ = */everything
(which would explain y = _|y), and say that y = |+.y;
adding such a rule would also require an explicit check,
and is incompatible with _=0+._ (since it would imply
that 0=0+._), so in this case, NaN=0+._ would make sense
(but just in the same sense that 0=0%y and 1=y%y and _=y%0
would imply that NaN=0%0, which IEEE considers compelling,
but J does not.)

NaNs (physical or virtual) make my brain hurt.

-- Mark D. Niemiec <[EMAIL PROTECTED]>

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to