Site hosted by Angelfire.com: Build your free website today!

Table of Contents Previous Next


1.7 The Standard Headers: <math.h>

The header <math.h> declares mathematical functions and macros.

The macros EDOM and ERANGE (found in errno.h) are non-integral constants that are used to signal domain and range errors for the functions; HUGH_VAL is a positive double value.  A domain error occurs if an argument is outside the domain over which the function is defined.  On a domain error, errno is set to EDOM; the return value is implementation-dependent.  A range error occurs if the result of the function cannot be represented as a double.  If the result overflows, the function returns HUGH_VAL with the right sign, and errno is set to ERANGE.  If the result underflows, the function returns zero; whether errno is set to ERANGE is implementation-defined.


In the following table, x and y are of type double, n is an int, and all functions return double.  Angles for trigonometric functions are expressed in radians.

sin(x) sine of x
cos(x) cosine of x
tan(x) tangent of x
asin(x) sin-1(x) in range [-pi / 2, pi / 2], x in set [-1, 1]
acos(x) cos-1(x) in range [0, pi], x in set [-1, 1]
atan(x) tan-1(x) in range [-pi / 2, pi / 2]
atan2(y,x) tan-1(y / x) in range [-pi, pi]
sinh(x) hyperbolic sine of x
cosh(x) hyperbolic cosine of x
tanh(x) hyperbolic tangent of x
exp(x) exponential function ex
log(x) natural logarithm ln(x), x > 0
log10(x) base 10 logarithm log10(x), x > 0
pow(x,y) x y.  A domain error occurs if x=0 and y <= 0, or if x<0 and y is not an integer
sqrt(x) Square root of x, x >= 0
ceil(x) smallest integer not less than x, as a double
floor(x) largest integer not greater than x, as a double
fabs(x) absolute value |x|
ldexp(x,n) x·2n
frexp(x, int *exp) splits x into a normalised fraction in the interval [1/2, 1], which is returned, and a power of 2, which is stored in *exp.  If x is zero, both parts of the result are zero.
modf(x, double *ip) splits x into integral and fractional parts, each with the same sign as x.  It stores the integral part in *ip, and returns the fractional part
fmod(x,y) floating-point remainder of x/y, with the same sign as x.  If y is zero, the result is implementation-defined.


Table of Contents Previous Next

Last modified: Mon Mar 27 13:34:02 2000