Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #3763
| From | Lew <noone@lewscanon.com> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Gradual-Underflow Wars |
| Date | 2011-05-07 08:06 -0400 |
| Organization | albasani.net |
| Message-ID | <iq3ckr$5a5$1@news.albasani.net> (permalink) |
| References | <iq314k$9df$1@lust.ihug.co.nz> |
On 05/07/2011 04:50 AM, Lawrence D'Oliveiro wrote: > Nowadays we take IEEE-754 arithmetic for granted (at least in the hardware; > language support is another matter, unless you’re using an enlightened > language like GCC or Python). It was a different matter in the late 1970s, > when the idea for a standard floating-point architecture first came > together, spurred by Intel’s development of its 8087 chip. > > Hard to believe it now, but the most controversial aspect of the proposal > was its support for denormalized numbers, to fill in the underflow gap > between the closest normalized number to zero, and zero itself. In theory > you could write code that would work correctly without such help, but most > people didn’t have that kind of skill in numerics. And still don’t. > > <http://www.eecs.berkeley.edu/~wkahan/ieee754status/754story.html> > > Kahan also has a paper elsewhere deriding the floating-point limitations of > Java. Java does not distinguish between NaN and infinity, and provides no Bullshit. Ignorant bullshit. <http://download.oracle.com/javase/6/docs/api/java/lang/Double.html#NaN> <http://download.oracle.com/javase/6/docs/api/java/lang/Double.html#NEGATIVE_INFINITY> <http://download.oracle.com/javase/6/docs/api/java/lang/Double.html#POSITIVE_INFINITY> Stop lying. > way of querying and controlling floating-point exceptions (in the IEEE-754 > sense of “exception”). > > His paper was published in 1998, and is still a valid criticism today. From the JLS, §4.2.4: "Operators on floating-point numbers behave as specified by IEEE 754 (with the exception of the remainder operator (§15.17.3)). In particular, the Java programming language requires support of IEEE 754 denormalized floating-point numbers and gradual underflow, ... "An operation that overflows produces a signed infinity, an operation that underflows produces a denormalized value or a signed zero, and an operation that has no mathematically definite result produces NaN." So much for "does not distinguish". -- Lew Honi soit qui mal y pense. http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Find similar
Gradual-Underflow Wars Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-07 20:50 +1200 Re: Gradual-Underflow Wars Lew <noone@lewscanon.com> - 2011-05-07 08:06 -0400
csiph-web