roundingprecisioncomputationunderflowsingle-precision

Difference between machine precision and underflow


I don't get the difference between machine precision and underflow. Take for example the single precision system: there the machine precision is 10^-7 while the underflow is 1.18 *10^-38. That means that 1.18 *10^-38 is the smallest number you can represent with this system, but how is it then possible that the accuracy of this system (the machine precision) is a lot bigger. If the computer can be so precise in storing numbers, why can't it be as precise on machine precision?


Solution

  • These two metrics describe different information phenomena. An underflow occurs when a number is too SMALL for the given architecture to represent. The precision limit; on the other hand, establishes much ACCURACY (i.e., PRECISION) a given architecture can provide. Here is a simple (contrived) example to help make the distinction. Perhaps a given arch. CAN store the number .000000000001 (that's 1x10^-12 or 1 trillionth). But it can NOT store the value pi to more precision than 8 digits to the right of the decimal point (e.g., it can only store 3.14159265. Your question above is; essentially, "if my given architecture can store numbers as small a 1 trillionth (10^-12), why can't it also utilize all of those places to the right of the decimal to store pi to 12 places to the right of the decimal. Note that very large and very small numbers can be represented in IEEE floating point format because the IEEE format sets aside part of the number's storage area for an EXPONENT! An exponent can easily "scale" a given number (e.g., 1.0) to extremely large (1.0 x 2^30) or extremely small (1.0 x 2^-30). Buuut... such an architecture has "traded-off" part of its allotted memory space for the exponent... at the cost of the number of bits left to represent the number's mantissa (i.e., the number being scaled BY the exponent... which was '1' in my examples). Stated another way: we have a finite amount of bits to represent a number. We can either use more of those bits for the exponent or more of those bits for the mantissa. More bits for the exponent yields the ability for LARGER and SMALLER (magnitude) numbers. More bits for the mantissa yields more precision for numbers. As you know... in a world of finite resources... everything is a tradeoff. Hope that helps.