blob: 1708f1a670ae6e0f6b85b5dedadcba3d554187e3 [file] [log] [blame]
<html lang="en">
<head>
<title>Mathematics - The GNU C Library</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="The GNU C Library">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="prev" href="Syslog.html#Syslog" title="Syslog">
<link rel="next" href="Arithmetic.html#Arithmetic" title="Arithmetic">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU C library.
This is Edition 0.12, last updated 2007-10-27,
of `The GNU C Library Reference Manual', for version
2.8 (Sourcery G++ Lite 2011.03-41).
Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
2003, 2007, 2008, 2010 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software Needs Free Documentation''
and ``GNU Lesser General Public License'', the Front-Cover texts being
``A GNU Manual'', and with the Back-Cover Texts as in (a) below. A
copy of the license is included in the section entitled "GNU Free
Documentation License".
(a) The FSF's Back-Cover Text is: ``You have the freedom to
copy and modify this GNU manual. Buying copies from the FSF
supports it in developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Mathematics"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Arithmetic.html#Arithmetic">Arithmetic</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Syslog.html#Syslog">Syslog</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
<hr>
</div>
<!-- %MENU% Math functions, useful constants, random numbers -->
<h2 class="chapter">19 Mathematics</h2>
<p>This chapter contains information about functions for performing
mathematical computations, such as trigonometric functions. Most of
these functions have prototypes declared in the header file
<samp><span class="file">math.h</span></samp>. The complex-valued functions are defined in
<samp><span class="file">complex.h</span></samp>.
<a name="index-math_002eh-2066"></a><a name="index-complex_002eh-2067"></a>
All mathematical functions which take a floating-point argument
have three variants, one each for <code>double</code>, <code>float</code>, and
<code>long double</code> arguments. The <code>double</code> versions are mostly
defined in ISO&nbsp;C89<!-- /@w -->. The <code>float</code> and <code>long double</code>
versions are from the numeric extensions to C included in ISO&nbsp;C99<!-- /@w -->.
<p>Which of the three versions of a function should be used depends on the
situation. For most calculations, the <code>float</code> functions are the
fastest. On the other hand, the <code>long double</code> functions have the
highest precision. <code>double</code> is somewhere in between. It is
usually wise to pick the narrowest type that can accommodate your data.
Not all machines have a distinct <code>long double</code> type; it may be the
same as <code>double</code>.
<ul class="menu">
<li><a accesskey="1" href="Mathematical-Constants.html#Mathematical-Constants">Mathematical Constants</a>: Precise numeric values for often-used
constants.
<li><a accesskey="2" href="Trig-Functions.html#Trig-Functions">Trig Functions</a>: Sine, cosine, tangent, and friends.
<li><a accesskey="3" href="Inverse-Trig-Functions.html#Inverse-Trig-Functions">Inverse Trig Functions</a>: Arcsine, arccosine, etc.
<li><a accesskey="4" href="Exponents-and-Logarithms.html#Exponents-and-Logarithms">Exponents and Logarithms</a>: Also pow and sqrt.
<li><a accesskey="5" href="Hyperbolic-Functions.html#Hyperbolic-Functions">Hyperbolic Functions</a>: sinh, cosh, tanh, etc.
<li><a accesskey="6" href="Special-Functions.html#Special-Functions">Special Functions</a>: Bessel, gamma, erf.
<li><a accesskey="7" href="Errors-in-Math-Functions.html#Errors-in-Math-Functions">Errors in Math Functions</a>: Known Maximum Errors in Math Functions.
<li><a accesskey="8" href="Pseudo_002dRandom-Numbers.html#Pseudo_002dRandom-Numbers">Pseudo-Random Numbers</a>: Functions for generating pseudo-random
numbers.
<li><a accesskey="9" href="FP-Function-Optimizations.html#FP-Function-Optimizations">FP Function Optimizations</a>: Fast code or small code.
</ul>
</body></html>