IPB

Welcome Guest ( Log In | Register )

Q: floating-point, losslessness from http://www.wavpack.com/technical.
Porcus
post Feb 17 2012, 17:00
Post #1





Group: Members
Posts: 1779
Joined: 30-November 06
Member No.: 38207



I quote:
QUOTE
I have decided to not use any floating-point arithmetic in WavPack's data path because I believe that integer operations are less susceptible to subtle chip to chip variations that could corrupt the lossless nature of the compression, the recent Pentium floating point bug being a blatant example of this.


Is this obsoleted, in the sense that Bryant has found that one can now trust floating-point arithmetic, or does it mean that even floating-point .WV files are created using fixed-point arithmetic, without any use of the processor's floating-point internals?


(Edited for clarification.)

This post has been edited by Porcus: Feb 17 2012, 17:37


--------------------
One day in the Year of the Fox came a time remembered well
Go to the top of the page
+Quote Post
 
Start new topic
Replies
pdq
post Feb 17 2012, 17:29
Post #2





Group: Members
Posts: 3305
Joined: 1-September 05
From: SE Pennsylvania
Member No.: 24233



This Wikipedia article describes the 1994 Pentium floating point divide bug. I have not heard of any such bug since then.
Go to the top of the page
+Quote Post
saratoga
post Feb 17 2012, 19:19
Post #3





Group: Members
Posts: 4715
Joined: 2-September 02
Member No.: 3264



QUOTE (pdq @ Feb 17 2012, 11:29) *
This Wikipedia article describes the 1994 Pentium floating point divide bug. I have not heard of any such bug since then.


If you read the entire quote, not just the truncated version Porcus posted, I don't think he means to single out that particular bug. Its just an example:

QUOTE
I have decided to not use any floating-point arithmetic in WavPack's data path because I believe that integer operations are less susceptible to subtle chip to chip variations that could corrupt the lossless nature of the compression, the recent Pentium floating point bug being a blatant example of this. It is possible that a lossless compressor that used floating-point math could generate different output when running on that faulty Pentium. Even disregarding actual bugs, floating-point math is complicated enough that there could be subtle differences between "correct" implementations that could cause trouble for this type of application.


Basically, the main problem is not that hardware can be buggy (although that is also a problem), but rather that different CPUs can execute the same sequence of floating point operations and come to slightly different answers without being buggy. In contrast, integer operations are (virtually) always exactly defined and so should produce identical results on different machines (assuming equivalent register size at least). For this reason, its usually preferable to use integers and explicitly define your rounding operations rather then implicitly rely on hardware implementations which are subject to change in the future. That way you can be certain that your lossless files will continue to be lossless on future CPUs.

Ah, too slow!

This post has been edited by saratoga: Feb 17 2012, 19:20
Go to the top of the page
+Quote Post

Posts in this topic


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 17th April 2014 - 17:25