Re: Infinity (to the nearest integer)

"Jonathan S. Shapiro" <[email protected]>
Newsgroups gmane.comp.lang.e.general
Message-ID <[email protected]>
On Thu, Oct 14, 2010 at 2:26 PM, Kevin Reid <kpreid-M/[email protected]> wrote:

> On Oct 14, 2010, at 16:00, Karp, Alan H wrote:
>


> I didn't ask "can we have an integer NaN". I asked "given that an
> integer operation is going to return NaN, should it be distinct from
> the float NaN?"
>

Since there is no "the float NaN" (singular), the answer is clearly no. Each
floating point format has it's own NaN representation.

On Oct 14, 2010, at 15:19, Jonathan S. Shapiro wrote:
>
> > Personally, I don't think integer BigNums make a lot of sense.
> > Distinguished infinities only make sense when the representation has
> > bounded magnitude
>
> I don't understand what these two sentences have to do with each
> other. Could you explain further?
>

Apologies. The first sentence should have read "I don't think +/- infinity
makes a lot of sense with integer BigNums".

But in my opinion, having floating x/0 return infinitiy was a bad call.
Given that that seems to be the preferred (or at least accustomed) behaviour
in the numerics community, I withdraw my concern.

Aside on Alan's Itanium comment: for floating point computation the case for
distinguishing infinity's representation is pretty clear. For integer
computation I'm less convinced that the performance impact of having the
hardware deal with integer infinities is motivated. And of course integers
have no need to distinguish +/- zero, which IIRC was controversial even in
floating point.

On Oct 14, 2010, at 15:20, Jonathan S. Shapiro wrote:
>
> > If infinity or NaN values of any sort are introduced, it is
> > important that they have the same representation on all platforms.
>
> What do you mean by "representation"? The representation of values in
> memory? On disk? Semantically visible distinctions?
>

On reflection, I meant two things:

1. The same computation should produce the same result when executed in the
same precision w.r.t. all methods of observing the result.

2. There needs to be a consistent way of [de]serializing NaN/infinity.

Unfortunately, [1] means in practice that a specific bit pattern must be
selected. This is true because untagged unions of non-pointer scalars are
generally treated as "safe" by current runtimes. Consider explicit structure
layout in .Net.



shap

_______________________________________________
e-lang mailing list
[email protected]
http://www.eros-os.org/mailman/listinfo/e-lang
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.