The <math.h> header file in C contains the standard math library functions which can be utilized for various mathematical operations. All math.h library functions accept double type as an argument and return double as a result. It also contains some commonly used constants defined as macros.
Syntax:
#include <math.h>After including the header file, we can use its services in the program. There are two types of elements in math.h header file:
- Functions
- Macros
math.h Library Functions
These are functions that are defined inside the <math.h> header file that performs a particular mathematical operation when called.
Example:
// C program to demonstrate the
// use of math.h library
// functions
#include <math.h>
#include <stdio.h>
int main()
{
// two variables for test
double x = 3.3, y = 1.1;
// ceil and floor demonstration
printf(
"Ceil of %.1lf = %.1lf \nFloor of %.1lf = %.1lf\n",
x, ceil(x), x, floor(x));
// pow function demonstration
printf("%.1lf raised to the power %.1lf = %.1lf\n", x,
y, pow(x, y));
return 0;
}
Output
Ceil of 3.3 = 4.0 Floor of 3.3 = 3.0 3.3 raised to the power 1.1 = 3.7
Commonly used math.h header file functions
Function Name | Function Description |
|---|---|
ceil(x) | Returns the largest integer smaller than or equal to x. |
floor(x) | Returns the smallest integer larger than or equal to x. |
Returns the absolute value of x. | |
sqrt(x) | Returns the square root of x. |
cbrt(x) | Returns the cube root of x. |
pow(x , y) | Returns the value of x raised to the power y. |
exp(x) | Returns the value of e(Euler's Number) raised to the power x. |
fmod(x , y) | Returns the remainder of x divided by y. |
log(x) | Returns the natural logarithm of x. |
log10(x) | Returns the common logarithm of x. |
modf(x , *y) | Returns the fractional component of x and sets the y to the integral component of x. |
cos(x) | Returns the cosine of radian angle x. |
sin(x) | Returns the sine of radian angle x. |
tan(x) | Returns the tangent of radian angle x. |
acos(x) | Returns the arc cosine of x in radians. |
asin(x) | Returns the arc sine of x in radians. |
atan(x) | Returns the arc tangent of x in radians. |
cosh(x) | Returns the hyperbolic cosine of x. |
sinh(x) | Returns the hyperbolic sine of x. |
math.h Library Macros
They are the macros defined inside <math.h> header file using #define preprocessor. They can be either constant that is replaced by their value when used or either function-like macros.
Example:
// C program to demonstrate
// the use of math.h library
// macros
#include <math.h>
#include <stdio.h>
int main()
{
// HUGE_VAL macro
printf("Value Returned by HUGE_VAL = %.1lf\n", HUGE_VAL);
// isgreater macro demonstration
printf("Value returned by isgreater = %d", isgreater(12.0, 13.0));
return 0;
}
Output
Value Returned by HUGE_VAL = inf Value returned by isgreater = 0
EXAMPLE 2 :
The math.h library in C provides a set of functions for performing mathematical operations. Here are some examples of functions from the math.h library, along with code samples:
1 .double cos(double x): This function returns the cosine of x, where x is an angle in radians.
#include <math.h>
#include <stdio.h>
int main(void)
{
double x = 1.5;
double y = 2.0;
double z;
z = sin(x);
printf("sin(%.2lf) = %.2lf\n", x, z);
// output: sin(1.50) = 0.99
z = cos(x);
printf("cos(%.2lf) = %.2lf\n", x, z);
// output: cos(1.50) = 0.07
z = tan(x);
printf("tan(%.2lf) = %lf\n", x, z);
// output: tan(1.50) = 14.33
z = asin(x);
printf("asin(%.2lf) = %lf\n", x, z);
// output: asin(1.50) = NAN
z = acos(x);
printf("acos(%.2lf) = %lf\n", x, z);
// output: acos(1.50) = NAN
z = atan(x);
printf("atan(%.2lf) = %lf\n", x, z);
// output: atan(1.50) = 0.98
z = exp(y);
printf("exp(%.2lf) = %lf\n", y, z);
// output: exp(2.00) = 7.39
z = log(y);
printf("log(%.2lf) = %lf\n", y, z);
// output: log(2.00) = 0.69
z = sqrt(y);
printf("sqrt(%.2lf) = %lf\n", y, z);
// output: sqrt(2.00) = 1.41
return 0;
}
Output:
sin(1.50) = 0.997495
cos(1.50) = 0.070737
tan(1.50) = 14.101420
asin(1.50) = nan
acos(1.50) = nan
atan(1.50) = 0.982794
exp(2.00) = 7.389056
log(2.00) = 0.693147
sqrt(2.00) = 1.414214
Note: inf is used to represent positive infinity (very large number that cannot be represented using double or float.
Here is a list of some commonly used math.h library macros:
Macro Name | Macro Description |
|---|---|
HUGE_VAL | Represent positive infinity i.e. values too big to represent using a float, or double. |
isgreater(x, y) | Checks if x > y and return true/false accordingly. |
isless(x, y) | Checks if x < y and return true/false accordingly. |
Note: isgreater(x , y) may look like a function but they are defined as macros in the math.h header file and are replaced by their value in preprocessing.