C Library math.h (original) (raw)
Last Updated : 23 Jul, 2025
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 `
// 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. |
| fabs(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 `
// 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.
C `
#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.