MATH.H(3HEAD) | Headers | MATH.H(3HEAD) |

math.h, math - mathematical declarations

#include <math.h>

The <**math.h**> header includes definitions for the
following types:

**float_t**

A real-floating type at least as wide as
**float**.

**double_t**

A real-floating type at least as wide as **double**,
and at least as wide as **float_t**.

If **FLT_EVAL_METHOD** equals 0, **float_t** and
**double_t** are **float** and **double**, respectively. If
**FLT_EVAL_METHOD** equals 1, they are both **double**. If
**FLT_EVAL_METHOD** equals 2, they are both be **long double**. Other
values of **FLT_EVAL_METHOD** are implementation-defined.

The <**math.h**> header provides the following constants.
The values are of type **double** and are accurate within the precision
of the **double** type.

**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**

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

**M_PI_2**

pi/2.

**M_PI_4**

pi/4.

**M_1_PI**

1/pi

**M_2_PI**

2/pi

**M_2_SQRTPI**

2 over the square root of pi

**M_SQRT2**

The positive square root of 2.

**M_SQRT1_2**

The positive square root of 1/2.

The <**math.h**> header defines the following symbolic
constants:

**MAXFLOAT**

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

**HUGE_VAL**

A positive **double** expression, not necessarily
representable as a float. Used as an error value returned by the mathematics
library. **HUGE_VAL** evaluates to +infinity on systems supporting IEEE Std
754-1985.

**HUGE_VALF**

A positive **float** constant expression. Used as an
error value returned by the mathematics library. **HUGE_VALF** evaluates to
+infinity on systems supporting IEEE Std 754-1985.

**HUGE_VALL**

A positive **long double** constant expression. Used
as an error value returned by the mathematics library. **HUGE_VALL**
evaluates to +infinity on systems supporting IEEE Std 754-1985.

**INFINITY**

A constant expression of type **float** representing
positive or unsigned infinity, if available; else a positive constant of type
**float** that overflows at translation time.

**NAN**

A constant expression of type float representing a quiet
NaN. This symbolic constant is only defined if the implementation supports
quiet NaNs for the **float** type.

The following macros are defined for number classification. They represent the mutually-exclusive kinds of floating-point values. They expand to integer constant expressions with distinct values

FP_INFINITE FP_NAN FP_NORMAL FP_SUBNORMAL FP_ZERO

The following optional macros indicate whether the **fma()**
family of functions are fast compared with direct code:

FP_FAST_FMA FP_FAST_FMAF FP_FAST_FMAL

The **FP_FAST_FMA** macro is defined to indicate that the
**fma()** function generally executes about as fast as, or faster than, a
multiply and an add of **double** operands. The other macros have the
equivalent meaning for the **float** and **long double** versions.

The following macros expand to integer constant expressions whose
values are returned by **ilogb**(*x*) if *x* is zero or NaN,
respectively. The value of **FP_ILOGB0** is either {**INT_MIN**} or
-{**INT_MAX**}. The value of **FP_ILOGBNAN** is either
{**INT_MAX**} or {**INT_MIN**}.

FP_ILOGB0 FP_ILOGBNAN

The following macros expand to the integer constants 1 and 2, respectively:

MATH_ERRNO MATH_ERREXCEPT

The following macro expands to an expression that has type
**int** and the value **MATH_ERREXCEPT**:

math_errhandling

The value of the macro **math_errhandling** is constant for the
duration of the program. If a macro definition is suppressed or a program
defines an identifier with the name **math_errhandling**, the behavior is
undefined.

The <**math.h**> header defines the following external
variable:

extern int signgam;

The <**math.h**> header defines the structure and
constants used by the matherr(3M) error-handling mechanisms.

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE | ATTRIBUTE VALUE |

Interface Stability | Standard |

Intro(3), fenv.h(3HEAD), limits.h(3HEAD), libm(3LIB), matherr(3M), attributes(7), standards(7)

May 19, 2022 | OmniOS |