From: Conrad Schneiker Date: 2000-09-26T04:40:01+09:00 Subject: [ruby-talk:5113] Re: Proposal: Add constants to Math Hi, Robert Feldt wrote: ... > On Sat, 23 Sep 2000, Yukihiro Matsumoto wrote: ... > > |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. ... (etc.) On this and related topics of what results should be produced under various conditions, does anyone know what Python does? The Python community seems to have a pretty strong applied math and numerical analysis contingent, and it might be worthwhile to take advantage of their experience and to maybe even seek their advice concerning the pros and cons of how Python did things. (This might also make it easier for some such users to convert to Ruby later, and this might also make it practical to someday port Python's various numerical modules.) -- Conrad Schneiker (This note is unofficial and subject to improvement without notice.)