Next: Arithmetic Functions, Previous: Syslog, Up: Main Menu [Contents][Index]
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 math.h. The complex-valued functions are defined in complex.h.
All mathematical functions which take a floating-point argument
have three variants, one each for double
, float
, and
long double
arguments. The double
versions are mostly
defined in ISO C89. The float
and long double
versions are from the numeric extensions to C included in ISO C99.
Which of the three versions of a function should be used depends on the
situation. For most calculations, the float
functions are the
fastest. On the other hand, the long double
functions have the
highest precision. double
is somewhere in between. It is
usually wise to pick the narrowest type that can accommodate your data.
Not all machines have a distinct long double
type; it may be the
same as double
.
On some machines, the GNU C Library also provides _FloatN
and
_FloatNx
types. These types are defined in ISO/IEC TS 18661-3, which extends ISO C and defines floating-point types that
are not machine-dependent. When such a type, such as _Float128
,
is supported by the GNU C Library, extra variants for most of the mathematical
functions provided for double
, float
, and long
double
are also provided for the supported type. Throughout this
manual, the _FloatN
and _FloatNx
variants of
these functions are described along with the double
,
float
, and long double
variants and they come from
ISO/IEC TS 18661-3, unless explicitly stated otherwise.
Currently, support for _FloatN
or _FloatNx
types is only provided for _Float128
on powerpc64le (PowerPC
64-bits little-endian), x86_64, x86 and ia64.
Next: Arithmetic Functions, Previous: Syslog, Up: Main Menu [Contents][Index]