C/C++ Programmer's Guide (G06.27+, H06.08+, J06.03+)

Table 31 IEEE and Tandem Floating-Point Macro Values in float.h (continued)
IEEE FormatTandem FormatMacro Name
3.40282347E+38F1.1579208e77FLT_MAX
1.7976931348623157E+3081.15792089237316192e77DBL_MAX
In addition to the differences shown in Table 31, note these:
For the float type in IEEE floating-point format, the smallest positive nonzero number is
approximately 1.40129846E-45. This is a denormalized number; Tandem floating-point
format does not have denormalized numbers.
For the double type in IEEE floating-point format, the smallest positive nonzero number
is approximately 4.9406564584124654E-324. This is a denormalized number.
IEEE floating-point format has special values for Infinity and Not a Number (NaN). In
addition, for every value except NaN values, there is a positive value and a negative
value. This includes infinities (+Infinity and -Infinity) and zeroes (+0 and -0).
When converting from fixed-point to floating-point format or from a floating-point number to
a narrower floating-point number, IEEE floating point typically rounds to the nearest value
according to the current IEEE floating-point rounding mode.
When converting from floating-point to fixed-point formats, IEEE floating-point normally truncates
the nearest representable value, as specified by the ANSI C standard.
The IEEE floating-point standard requires a way to convert from floating point to fixed point
with rounding. To make this conversion, use the rint() function and then cast the result to
an integer type.
A new header file (ieeefp.h) has been introduced which contains interfaces that apply only
to IEEE floating point and are callable only when compiling using the IEEE_FLOAT pragma.
Calling the functions in ieeefp.h when generating TNS floating-point code causes a syntax
error because of incompatible floating-point calling conventions. If you want to use any of the
resources defined by ieeefp.h, you must include it in your source.
For more details about compiling and linking programs that use IEEE floating-point format,
see Compiling and Linking Floating-Point Programs (page 288).
INLINE
For TNS C programs, the INLINE pragma controls whether the compiler generates inline code
for certain standard library functions instead of generating a function call. INLINE directs the
compiler to generate inline code. NOINLINE directs the compiler to revert to the library function
call.
For native C++ programs, the INLINE pragma controls whether functions declared inline are
actually generated inline. NOINLINE suppresses inline generation of all functions. INLINE causes
the compiler to attempt to generate inline code for functions declared inline.
The purpose of the INLINE pragma is to provide more efficient code generation.
[NO]INLINE
INLINE 205