Oracle® Solaris Studio 12.4: Numerical Computation Guide

Exit Print View

Updated: January 2015
 
 

3.4.2 ieee_values(3m)

IEEE values like infinity, NaN, maximum and minimum positive floating-point numbers are provided by the functions described by the ieee_values(3m) man page. Table 3–9, Table 3–10, Table 3–11, and Table 3–12 show the decimal values and hexadecimal IEEE representations of the values provided by ieee_values(3m) functions.

Table 3-9  IEEE Values: Single Precision
IEEE value
Decimal value hexadecimal representation
C, C++ Fortran
max normal
3.40282347e+38 7f7fffff
r = max_normalf(); r = r_max_normal()
min normal
1.17549435e–38 00800000
r = min_normalf(); r = r_min_normal()
max subnormal
1.17549421e–38 007fffff
r = max_subnormalf(); r = r_max_subnormal()
min subnormal
1.40129846e–45 00000001
r = min_subnormalf(); r = r_min_subnormal()
Infinity 7f800000
r = infinityf(); r = r_infinity()
quiet NaN
NaN 7fffffff
r = quiet_nanf(0); r = r_quiet_nan(0)
signaling NaN
NaN 7f800001
r = signaling_nanf(0); r = r_signaling_nan(0)
Table 3-10  IEEE Values: Double Precision
IEEE value
Decimal Value hexadecimal representation
C, C++ Fortran
max normal
1.7976931348623157e+308
7fefffff ffffffff
d = max_normal(); d = d_max_normal()
min normal
2.2250738585072014e–308
00100000 00000000
d = min_normal(); d = d_min_normal()
max subnormal
2.2250738585072009e–308
000fffff ffffffff
d = max_subnormal(); d = d_max_subnormal()
min subnormal
4.9406564584124654e–324
00000000 00000001
d = min_subnormal(); d = d_min_subnormal()
Infinity
7ff00000 00000000
d = infinity(); d = d_infinity()
quiet NaN
NaN
7fffffff ffffffff
d = quiet_nan(0); d = d_quiet_nan(0)
signaling NaN
NaN
7ff00000 00000001
d = signaling_nan(0); d = d_signaling_nan(0)
Table 3-11  IEEE Values: Quadruple Precision
IEEE value
Decimal value hexadecimal representation
C, C++ (SPARC)
Fortran (all)
max normal
1.1897314953572317650857593266280070e+4932
7ffeffff ffffffff ffffffff ffffffff
q = max_normall(); q = q_max_normal()
min normal
3.3621031431120935062626778173217526e–4932
00010000 00000000 00000000 00000000
q = min_normall(); q = q_min_normal()
max subnormal
3.3621031431120935062626778173217520e–4932
0000ffff ffffffff ffffffff ffffffff
q = max_subnormall(); q = q_max_subnormal()
min subnormal
6.4751751194380251109244389582276466e–4966
00000000 00000000 00000000 00000001
q = min_subnormall(); q = q_min_subnormal()
Infinity
7fff0000 00000000 00000000 00000000
q = infinityl(); q = q_infinity()
quiet NaN
NaN
7fff8000 00000000 00000000 00000000
q = quiet_nanl(0); q = q_quiet_nan(0)
signaling NaN
NaN
7fff0000 00000000 00000000 00000001
q = signaling_nanl(0); q = q_signaling_nan(0)
Table 3-12  IEEE Values: Double-Extended Precision (x86)
IEEE value
Decimal value hexadecimal representation (80 bits)
C, C++
max normal
1.18973149535723176505e+4932
7ffe ffffffff ffffffff
x = max_normall();
min positive normal
3.36210314311209350626e–4932
0001 80000000 00000000
x = min_normall();
max subnormal
3.36210314311209350608e–4932
0000 7fffffff ffffffff
x = max_subnormall();
min positive subnormal
1.82259976594123730126e–4951
0000 00000000 00000001
x = min_subnormall();
Infinity
7fff 80000000 00000000
x = infinityl();
quiet NaN
NaN
7fff c0000000 00000000
x = q
signaling NaN
NaN
7fff 80000000 00000001
x = signaling_nanl(0);