From: terje.mathisen@tmsw.no   
      
   MitchAlsup wrote:   
   >   
   > John Levine posted:   
   >   
   >> According to David Schultz :   
   >>> This reminds me of when I took a numerical analysis course. (The many   
   >>> ways that computer calculations can go wrong and how to deal with it.)   
   >>> The professor said that the schools IBM (360 or 370, ca. 1980) was   
   >>> perfect for the course because of the defects in its floating point   
   >>> system. Guard digits and rounding sorts of things as near as I can recall.   
   >>   
   >> The 360's floating point is a famous and somewhat puzzling failure,   
   considering   
   >> how much else they got right.   
   >>   
   >> It does hex normalization rather than binary. They assumed that   
   >> leading digits are evenly distributed so there's be on average one   
   >> zero bit, but in fact they're geometrically distributed, so on average   
   >> there's two. They got one bit back by making the exponent units of 16   
   >> rather than 2, but that's still one bit gone. It truncated rather than   
   >> rounding, another bit gone. They also truncated rather than rounding   
   >> results.   
   >>   
   >> Originally there wre no guard digits which made the results comically   
   >> bad but IBM retrofitted them at great cost to all the installed machines.   
   >>   
   >> IEEE floating point can be seen as a reaction to that, how do you use   
   >> the same number of bits but get good results.   
   >   
   > VAX got this correct too (the VAX format not the one inherited from   
   > PDP-11/45; PDP-11/40* FP was worse). VAX FP is arguably as good as   
   > IEEE 754 with the exception that more IEEE numbers have reciprocals   
   > due to the change in exponent bias by 1. {{One can STILL argue whether   
   > deNormals were a plus or a minus in IEEE}}   
      
   You _can_ argue about that, but as you've told us on numerous occations,   
   it doesn't actually cost any clock cycles, and there are a few   
   zer-seeking algorithms which would not be trivially stable without   
   subnormals.   
      
   Finally, having subnormals meens that any possible bit pattern between   
   negative NaN and positive NaN have a meaningful real value (or +/- Inf),   
   so you can compare them, increment them etc without worry.   
      
   Terje   
      
      
   --   
   -    
   "almost all programming can be viewed as an exercise in caching"   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|