You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
4.2 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.4, http://www.gnu.org/software/texinfo/ -->
<head>
<title>version (LIBM)</title>
<meta name="description" content="version (LIBM)">
<meta name="keywords" content="version (LIBM)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Document-Index.html#Document-Index" rel="index" title="Document Index">
<link href="Document-Index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Math.html#Math" rel="up" title="Math">
<link href="acos.html#acos" rel="next" title="acos">
<link href="Math.html#Math" rel="prev" title="Math">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<a name="version"></a>
<div class="header">
<p>
Next: <a href="acos.html#acos" accesskey="n" rel="next">acos</a>, Up: <a href="Math.html#Math" accesskey="u" rel="up">Math</a> &nbsp; [<a href="Document-Index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Document-Index.html#Document-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Error-Handling"></a>
<h3 class="section">1.1 Error Handling</h3>
<p>There are two different versions of the math library routines: IEEE
and POSIX. The version may be selected at runtime by
setting the global variable <code>_LIB_VERSION</code>, defined in
<samp>math.h</samp>. It may be set to one of the following constants defined
in <samp>math.h</samp>: <code>_IEEE_</code> or <code>_POSIX_</code>.
The <code>_LIB_VERSION</code> variable is not specific to any
thread, and changing it will affect all threads.
</p>
<p>The versions of the library differ only in the setting of <code>errno</code>.
</p>
<p>In IEEE mode, <code>errno</code> is never set.
</p>
<p>In POSIX mode, <code>errno</code> is set correctly.
</p>
<p>The library is set to IEEE mode by default.
</p>
<p>The majority of the floating-point math functions are written
so as to produce the floating-point exceptions (e.g. &quot;invalid&quot;,
&quot;divide-by-zero&quot;) as required by the C and POSIX standards, for
floating-point implementations that support them. Newlib does not provide
the floating-point exception access routines defined in the standards
for fenv.h, though, which is why they are considered unsupported. It is
mentioned in case you have separately-provided access routines so that
you are aware that they can be caused.
</p>
<a name="Standards-Compliance-And-Portability"></a>
<h3 class="section">1.2 Standards Compliance And Portability</h3>
<p>Most of the individual function descriptions describe the standards to which
each function complies. However, these descriptions are mostly out of date,
having been written before C99 was released. One of these days we&rsquo;ll get
around to updating the rest of them. (If you&rsquo;d like to help, please let us
know.)
</p>
<p>&ldquo;C99&rdquo; refers to ISO/IEC 9899:1999, &ldquo;Programming languages&ndash;C&rdquo;.
&ldquo;POSIX&rdquo; refers to IEEE Standard 1003.1. POSIX&reg; is a
registered trademark of The IEEE.
</p>
</body>
</html>