7.8 Floating-point
Describes implementation-defined aspects of the Arm® C compiler and C library relating to floating-point operations, as required by the ISO C standard.
- The accuracy of the floating-point operations and of the library functions in
<math.h>
and <complex.h>
that
return floating-point results (5.2.4.2.2).
Floating-point quantities are stored in IEEE format:
float
values are represented by IEEE single-precision
values
double
and long double
values are represented by IEEE double-precision values.
- The accuracy of the conversions between floating-point internal representations and string
representations performed by the library functions in
<stdio.h>
, <stdlib.h>
, and
<wchar.h>
(5.2.4.2.2).
- The accuracy of the conversions between floating-point internal representations
and string representations performed by the library functions in
<stdio.h>
, <stdlib.h>
, and
<wchar.h>
is unknown.
- The rounding behaviors characterized by non-standard values of
FLT_ROUNDS
(5.2.4.2.2).
- Arm Compiler does not define non-standard values for
FLT_ROUNDS
.
- The evaluation methods characterized by non-standard negative values of
FLT_EVAL_METHOD
(5.2.4.2.2).
- Arm Compiler does not define non-standard values for
FLT_EVAL_METHOD
.
- The direction of rounding when an integer is converted to a floating-point number that
cannot exactly represent the original value (6.3.1.4).
- The direction of rounding when an integer is converted to a floating point
number is "round to nearest even".
- The direction of rounding when a floating-point number is converted to a narrower
floating-point number (6.3.1.5).
- When a floating-point number is converted to a different floating-point type and
the value is within the range of the destination type, but cannot be represented
exactly, the rounding mode is "round to nearest even", by default.
- How the nearest representable value or the larger or smaller representable value
immediately adjacent to the nearest representable value is chosen for
certain floating constants (6.4.4.2).
- When a floating-point literal is converted to a floating-point value, the
rounding mode is "round to nearest even".
- Whether and how floating expressions are contracted when not disallowed by the
FP_CONTRACT
pragma (6.5).
- If
–ffp-mode=fast
, -ffast-math
, or -ffp-contract=fast
options are in effect, a floating-point
expression can be contracted.
- The default state for the
FENV_ACCESS
pragma (7.6.1).
- The default state of the
FENV_ACCESS
pragma is
OFF
. The state ON
is not supported.
- Additional floating-point exceptions, rounding classifications, and their macro names (7.6,
7.12), modes, environments, and the default state for the
FP_CONTRACT
pragma (7.12.2).
-
No additional floating-point exceptions, rounding classifications, modes, or
environments are defined.
The default state of FP_CONTRACT
pragma is
OFF
.