Keil™, An ARM® Company

RealView Libraries and Floating Point Support Guide

Technical Support

On-Line Manuals

RealView Libraries and Floating Point Support Guide

Preface
Introduction
The C and C++ Libraries
The C Micro-library
Floating‑point Support
The software floating‑point library, fplib
Features of the floating‑point library, fplib
Arithmetic on numbers in a particular format
Conversions between floats, doubles, and ints
Conversions between long longs and other number fo
Floating‑point comparisons
C99 functions
Controlling the floating‑point environment
__ieee_status()
__fp_status()
__vfp_status()
Microsoft compatibility functions
C99 compatible functions
ARM compiler extensions to the C99 interface
The math library, mathlib
Range reduction in mathlib
Determine the type of a floating‑point number (f
Determine if a number is finite (isfinite)
Determine if a number is infinite (isinf)
Determine if a number is a NaN (isnan)
Determine if a number is normal (isnormal)
Return the sign bit of a number (signbit)
Copy sign functions (copysign, copysignf)
Comparison macros (isgreater, isgreaterequal, isle
Inverse hyperbolic functions (acosh, asinh, atanh)
Cube root (cbrt)
Error functions (erf, erfc)
One less than exp(x) (expm1)
Gamma function (gamma, gamma_r)
Hypotenuse function (hypot)
Bessel functions of the first kind (j0, j1, jn)
The logarithm of the gamma function
Logarithm of one more than x (log1p)
IEEE 754 remainder function (remainder)
IEEE round‑to‑integer operation (rint)
Return the fraction part of a number (significand)
Bessel functions of the second kind (y0, y1, yn)
Legacy, Exponent of a number (ilogb, ilogbf, ilogb
Legacy, Determine if a number is finite (finite)
Legacy, Determine if a number is a NaN (isnan)
IEEE 754 arithmetic
Basic data types
Arithmetic and rounding
Exceptions

Floating‑point Support

Chapter 4. Floating‑point Support

Table of Contents

4.1. The software floating‑point library, fplib
4.1.1. Features of the floating‑point library, fplib
4.1.2. Arithmetic on numbers in a particular format
4.1.3. Conversions between floats, doubles, and ints
4.1.4. Conversions between long longs and other number formats
4.1.5. Floating‑point comparisons
4.1.6. C99 functions
4.2. Controlling the floating‑point environment
4.2.1. __ieee_status()
4.2.2. __fp_status()
4.2.3. __vfp_status()
4.2.4. Microsoft compatibility functions
4.2.5. C99 compatible functions
4.2.6. ARM compiler extensions to the C99 interface
4.3. The math library, mathlib
4.3.1. Range reduction in mathlib
4.3.2. Determine the type of a floating‑point number (fpclassify)
4.3.3. Determine if a number is finite (isfinite)
4.3.4. Determine if a number is infinite (isinf)
4.3.5. Determine if a number is a NaN (isnan)
4.3.6. Determine if a number is normal (isnormal)
4.3.7. Return the sign bit of a number (signbit)
4.3.8. Copy sign functions (copysign, copysignf)
4.3.9. Comparison macros (isgreater, isgreaterequal, isless, islessequal, islessgreater, isunordered)
4.3.10. Inverse hyperbolic functions (acosh, asinh, atanh)
4.3.11. Cube root (cbrt)
4.3.12. Error functions (erf, erfc)
4.3.13. One less than exp(x) (expm1)
4.3.14. Gamma function (gamma, gamma_r)
4.3.15. Hypotenuse function (hypot)
4.3.16. Bessel functions of the first kind (j0, j1, jn)
4.3.17. The logarithm of the gamma function
4.3.18. Logarithm of one more than x (log1p)
4.3.19. IEEE 754 remainder function (remainder)
4.3.20. IEEE round‑to‑integer operation (rint)
4.3.21. Return the fraction part of a number (significand)
4.3.22. Bessel functions of the second kind (y0, y1, yn)
4.3.23. Legacy, Exponent of a number (ilogb, ilogbf, ilogbl)
4.3.24. Legacy, Determine if a number is finite (finite)
4.3.25. Legacy, Determine if a number is a NaN (isnan)
4.4. IEEE 754 arithmetic
4.4.1. Basic data types
4.4.2. Arithmetic and rounding
4.4.3. Exceptions

This chapter describes the ARM support for floating‑point computations. It contains the following sections:

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0378A