Open In App

C Library – math.h

Last Updated : 12 Sep, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads