[#4766] Wiki — "Glen Stampoultzis" <trinexus@...>

21 messages 2000/09/04
[#4768] RE: Wiki — "NAKAMURA, Hiroshi" <nahi@...> 2000/09/04

Hi, Glen,

[#4783] Re: Wiki — Masatoshi SEKI <m_seki@...> 2000/09/04

[#4785] Re: Wiki — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/09/05

Howdy,

[#4883] Re-binding a block — Dave Thomas <Dave@...>

16 messages 2000/09/12

[#4930] Perl 6 rumblings -- RFC 225 (v1) Data: Superpositions — Conrad Schneiker <schneik@...>

Hi,

11 messages 2000/09/15

[#4936] Ruby Book Eng. translation editor's questions — Jon Babcock <jon@...>

20 messages 2000/09/16

[#5045] Proposal: Add constants to Math — Robert Feldt <feldt@...>

15 messages 2000/09/21

[#5077] Crazy idea? infix method calls — hal9000@...

This is a generalization of the "in" operator idea which I

17 messages 2000/09/22

[#5157] Compile Problem with 1.6.1 — Scott Billings <aerogems@...>

When I try to compile Ruby 1.6.1, I get the following error:

15 messages 2000/09/27

[ruby-talk:5088] Re: Proposal: Add constants to Math

From: Robert Feldt <feldt@...>
Date: 2000-09-24 07:23:52 UTC
List: ruby-talk #5088
On Sat, 23 Sep 2000, Yukihiro Matsumoto wrote:

> Hi,
> 
Hi,

> |Since we now have Float#nan? and Float#infinite? I think the following
> |constants should be added to Math (or Float?) for completeness:
> |
> |NEGINF = Math.log(-1) # Or better way of generating NEGINF...
> |INF = -NEGINF
> |NAN = INF / INF
> 
> Do you know good/portable way to generate positive/nagative infinity
> and NaN?
> 
I guess the simplest answer is that since the current interpreter relies
on isnan and isinfinite for nan? and infinite? and they, to my knowledge,
are not ANSI C I guess we could use nan() and infinity() which are also
non ANSI C (but at least show up in math.h on my cygwin "machines"). But
this will probably not work very often...

If you want to be a bit more sure you could assume the IEEE 754 floating
point standard funtions are correctly implemented and get for example
nan with: 0.0/0.0 or sqrt(negative double) or 0*inifinity or inf*inf or
inf+inf.

If you want to be even more sure you can set the bits according to IEEE
754:

S bit 0
E bit 1-11
F bit 12-63
If E=2047 and F is nonzero, then V=NaN ("Not a number") 
If E=2047 and F is zero and S is 1, then V=-Infinity 
If E=2047 and F is zero and S is 0, then V=Infinity 

I guess you may need to know the endianness but we need that info also
elsewhere in the interpreter needn't we?

If you can't assume the same representations as in IEEE 754 I guess I
can't give you a good/portable way... (I've heard that some Cray machines
still doesn't comply fully with 754...)

Regards,

Robert



In This Thread