DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH

# math(M)

math -- math functions and constants

## Syntax

```   #include <math.h>
```

## Description

This file contains declarations of all the functions in the Math Library (described in Section 3M), as well as various functions in the C Library (Section 3C) that return double, float and long double-precision values.

It defines the structure and constants used by the matherr(S) error-handling mechanisms, including the following constant used as an error-return value:

HUGE
The maximum value of a single-precision floating-point number.

The following mathematical constants are defined for user convenience:

M_E
The base of natural logarithms (e).

M_LOG2E
The base-2 logarithm of e.

M_LOG10E
The base-10 logarithm of e.

M_LN2
The natural logarithm of 2.

M_LN10
The natural logarithm of 10.

M_PI , the ratio of the circumference of a circle to its diameter.

M_PI_2 /2.

M_PI_4 /4.

M_1_PI
1/ .

M_2_PI
2/ .

M_2_SQRTPI
2/  .

M_SQRT2
The positive square root of 2.

M_SQRT1_2
The positive square root of 1/2.

The numerical classification constants are defined in this header file:

FP_INFINITE

FP_NAN

FP_NORMAL

FP_SUBNORMAL

FP_ZERO
represent the mutually exclusive kinds of possible floating-point values. They expand to integer constant expressions with distinct values.

The following fma performance indicator constants are defined in this header file:

FP_FAST_FMA
If defined, FP_FAST_FMA indicates that fma(S) generally executes about as fast as, or faster than a multiply and an add of double operands.

FP_FAST_FMAF
If defined, FP_FAST_FMF indicates that fmaf(S) generally executes about as fast as, or faster than a multiply and an add of float operands.

FP_FAST_FMAL
If defined, FP_FAST_FMAL indicates that fmal(S) generally executes about as fast as, or faster than a multiply and an add of long double operands.

NOTE: Typically, these constants are only defined if the fma functions are implemented directly with a hardware multiply-add instruction.

The following ilogb constants are defined in this header file:

FP_ILOGB0
Is set to either INT_MIN or -INT_MAX when ilogb(S) is called with its argument set to zero.

FP_ILOGBNAN
Is set to either INT_MAX or INT_MIN when ilogb(S) is called with its argument set to NaN.

The following integer constants used by math_errhandling are defined in this header file:

MATH_ERRNO
Expands to 1.

MATH_ERREXCEPT
Expands to 2.

The following mathematical constants are also defined in this header file:

MAXFLOAT
The maximum value of a non-infinite single-precision floating point number.

HUGE_VAL
A double constant expression representing positive infinity.

HUGE_VALF
A float constant expression representing positive infinity.

HUGE_VALL
A long double constant expression representing positive infinity.

The following constant is only defined on machines that support quiet NaNs for the float type:

NAN
A float constant expression representing a quiet NaN.

For the definitions of various machine-dependent constants, see values(M).

## See also

matherr(S), fma(S), fmaf(S), fmal(S), ilogb(S), values(M)

## Standards conformance

math is conformant with:

ISO/IEC 9945 1:1990, Information technology Portable Operating System Interface (POSIX) Part 1: System Application Program Interface (API) [C Language] (IEEE Std 1003.1 1990);
X/Open CAE Specification, System Interfaces and Headers, Issue 4, 1992.

© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003