Oracle® Solaris Studio 12.4: Numerical Computation Guide

Exit Print View

Updated: January 2015
 
 

2.3.1 Underflow Thresholds

Table 2–11 shows the underflow thresholds for single, double, and double-extended precision.

Table 2-11  Underflow Thresholds
Destination Precision
Underflow Threshold
single
smallest normal number
largest subnormal number
1.17549435e–38
1.17549421e–38
double
smallest normal number
largest subnormal number
2.2250738585072014e–308
2.2250738585072009e–308
quadruple
smallest normal number
largest subnormal number
3.3621031431120935062626778173217526e–4932
3.3621031431120935062626778173217520e–4932
double-extended (x86)
smallest normal number
largest subnormal number
3.36210314311209350626e–4932
3.36210314311209350590e–4932

The positive subnormal numbers are those numbers between the smallest normal number and zero. Subtracting two (positive) tiny numbers that are near the smallest normal number might produce a subnormal number. Or, dividing the smallest positive normal number by two produces a subnormal result.

The presence of subnormal numbers provides greater precision to floating-point calculations that involve small numbers, although the subnormal numbers themselves have fewer bits of precision than normal numbers. Producing subnormal numbers (rather than returning the answer zero) when the mathematically correct result has magnitude less than the smallest positive normal number is known as gradual underflow.

There are several other ways to deal with such underflow results. One way, common in the past, was to flush those results to zero. This method is known as abrupt underflow and was the default on most mainframes before the advent of the IEEE Standard.

The mathematicians and computer designers who drafted IEEE Standard 754 considered several alternatives while balancing the desire for a mathematically robust solution with the need to create a standard that could be implemented efficiently.