diff options
Diffstat (limited to 'devdocs/gcc~13/floating-point-implementation.html')
| -rw-r--r-- | devdocs/gcc~13/floating-point-implementation.html | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/devdocs/gcc~13/floating-point-implementation.html b/devdocs/gcc~13/floating-point-implementation.html new file mode 100644 index 00000000..db14eb19 --- /dev/null +++ b/devdocs/gcc~13/floating-point-implementation.html @@ -0,0 +1,18 @@ +<div class="section-level-extent" id="Floating-point-implementation"> <div class="nav-panel"> <p> Next: <a href="arrays-and-pointers-implementation" accesskey="n" rel="next">Arrays and Pointers</a>, Previous: <a href="integers-implementation" accesskey="p" rel="prev">Integers</a>, Up: <a href="c-implementation" accesskey="u" rel="up">C Implementation-Defined Behavior</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div> <h1 class="section" id="Floating-Point"><span>4.6 Floating Point<a class="copiable-link" href="#Floating-Point"> ¶</a></span></h1> <ul class="itemize mark-bullet"> <li>The accuracy of the floating-point operations and of the library functions in <code class="code"><math.h></code> and <code class="code"><complex.h></code> that return floating-point results (C90, C99 and C11 5.2.4.2.2). <p>The accuracy is unknown. </p> </li> +<li>The rounding behaviors characterized by non-standard values of <code class="code">FLT_ROUNDS</code> (C90, C99 and C11 5.2.4.2.2). <p>GCC does not use such values. </p> </li> +<li>The evaluation methods characterized by non-standard negative values of <code class="code">FLT_EVAL_METHOD</code> (C99 and C11 5.2.4.2.2). <p>GCC does not use such values. </p> </li> +<li>The direction of rounding when an integer is converted to a floating-point number that cannot exactly represent the original value (C90 6.2.1.3, C99 and C11 6.3.1.4). <p>C99 Annex F is followed. </p> </li> +<li>The direction of rounding when a floating-point number is converted to a narrower floating-point number (C90 6.2.1.4, C99 and C11 6.3.1.5). <p>C99 Annex F is followed. </p> </li> +<li>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 (C90 6.1.3.1, C99 and C11 6.4.4.2). <p>C99 Annex F is followed. </p> </li> +<li>Whether and how floating expressions are contracted when not disallowed by the <code class="code">FP_CONTRACT</code> pragma (C99 and C11 6.5). <p>Expressions are currently only contracted if <samp class="option">-ffp-contract=fast</samp>, <samp class="option">-funsafe-math-optimizations</samp> or <samp class="option">-ffast-math</samp> are used. This is subject to change. </p> </li> +<li>The default state for the <code class="code">FENV_ACCESS</code> pragma (C99 and C11 7.6.1). <p>This pragma is not implemented, but the default is to “off” unless <samp class="option">-frounding-math</samp> is used and <samp class="option">-fno-trapping-math</samp> is not in which case it is “on”. </p> </li> +<li>Additional floating-point exceptions, rounding modes, environments, and classifications, and their macro names (C99 and C11 7.6, C99 and C11 7.12). <p>This is dependent on the implementation of the C library, and is not defined by GCC itself. </p> </li> +<li>The default state for the <code class="code">FP_CONTRACT</code> pragma (C99 and C11 7.12.2). <p>This pragma is not implemented. Expressions are currently only contracted if <samp class="option">-ffp-contract=fast</samp>, <samp class="option">-funsafe-math-optimizations</samp> or <samp class="option">-ffast-math</samp> are used. This is subject to change. </p> </li> +<li>Whether the “inexact” floating-point exception can be raised when the rounded result actually does equal the mathematical result in an IEC 60559 conformant implementation (C99 F.9). <p>This is dependent on the implementation of the C library, and is not defined by GCC itself. </p> </li> +<li>Whether the “underflow” (and “inexact”) floating-point exception can be raised when a result is tiny but not inexact in an IEC 60559 conformant implementation (C99 F.9). <p>This is dependent on the implementation of the C library, and is not defined by GCC itself. </p> </li> +</ul> </div> <div class="nav-panel"> <p> Next: <a href="arrays-and-pointers-implementation">Arrays and Pointers</a>, Previous: <a href="integers-implementation">Integers</a>, Up: <a href="c-implementation">C Implementation-Defined Behavior</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div><div class="_attribution"> + <p class="_attribution-p"> + © Free Software Foundation<br>Licensed under the GNU Free Documentation License, Version 1.3.<br> + <a href="https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Floating-point-implementation.html" class="_attribution-link">https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Floating-point-implementation.html</a> + </p> +</div> |
