  # Math functions in C

#### Chapter 21 5 Steps - 3 Clicks

# Math functions in C

### Description

Math functions in C are performed by math function. To implement the functions in the program, one has to use <math.h> library file. These functions has the arguments in double type.Also, the return statements are also in double type.

### Functions

Table giving the description of few Math functions in C.

Function Description
double `asin`(double a) arc sine of a is returned in radians.
double `acos`(double x) arc cosine of a is returned in radians.
double `atan`(double a) arc tangent of a is returned in radians.
double `atan2`(double a, double b) The arc tangent of b/a gives the quadrant depending on signs given is eturned
double `sin`(double a) Sine of angle a is returned in radians
double `sinh`(double a) Hyperbolic Sine of angle a is returned in radians
double `cos(double a)` Cosine of angle a is returned in radians
double `cosh`(double a) Hyperbolic Sine of angle a is returned in radians
double `tanh`(double a) Hyperbolic Tangent of angle a is returned in radians
double `exp`(double a) The value is the result of e lifted to the ath power
double `frexp`(double a, int *exp) a=mantissa* 2^ exp is returned
double `log`(double a) Logarithmic value is returned with base e
double `log10`(double a) Logarithmic value is returned with base 10
double `sqrt`(double a) Square root of a is returned
double `ceil`(double a) Smaller value is returned which is greater or equal to a
double `fabs`(double a) Absolute integer value of a is returned
double `floor`(double a) Larger value is returned which is lesser equal to a
double `fmod`(double a, double b) Remainder of a divided by b is returned
double `log10`(double a) Logarithmic value is returned with base 10
double `sqrt`(double a) Square root of a is returned
double `pow`(double a, double b) The value obtained after a raised to power of b is returned

### More Info

The macro used in time function is HUGE_VAL. When the output is too large in magnitude, HUGE_VAL is used by setting the errno to ERANGE. If the result is small, then there is no need to use this.

### Examples

```#include <stdio.h>
#include <math.h>

#define PI 3.14159265

int main ()
{
double x,y, i,r ,a,b;

x = 45.0;
y = 0.8;
a = PI / 180;
b = 180.0 / PI;

i = sin( x*a );
printf("The sine of %lf is %lf degrees\n", x, i);

i = cos( x*a );
printf("The cosine of %lf is %lf degrees\n", x, i);

r = asin(y) * b;
printf("The arc sine of %lf is %lf degrees\n", y, r);

r = acos(y) * b;
printf("The arc sine of %lf is %lf degrees\n", y, r);

return(0);
}```

Output

```The sine of 45.000000 is 0.707107 degrees
The cosine of 45.000000 is 0.707107 degrees
The arc sine of 0.800000 is 53.130102 degrees
The arc sine of 0.800000 is 36.869898 degrees```

Program to demonstrate math functions

```#include <stdio.h>
#include <math.h>

int main ()
{
double i, result;
i = 2.7;

//find log(2.7)
result = log(i);
printf("log(%lf) = %lf \n", i, result);

//find square root
printf("Square root of i = %lf \n",sqrt(i) );

//Rounding to the nearest lower integer
printf ("value = %.1lf \n", ceil(i));

//Find absolute value
printf("The absolute value of i = %lf\n", i, fabs(i));

//rounding to the nearest greater integer
printf("Value = %.1lf \n", floor(i));

return(0);
}```

Output

```log(2.700000) = 0.993252
Square root of i = 1.643168
value = 3.0
The absolute value of i = 2.700000
Value = 2.0```

### Key Points

• Math functions in C are implemented by <math.h> and supports all arithmetic functions.
• Returns the arguments in double type.
• sin, tan, sqrt, log, floor, pow, fabs, ceil are some of math functions.