Jump to content

C++ Programming/Code/Standard C Library/Math

From Wikibooks, open books for an open world

Standard C Math

[edit | edit source]

This section will cover the Math elements of the C Standard Library.

Syntax
#include <cstdlib>
int abs( int num );

The abs() function returns the absolute value of num. For example:

int magic_number = 10;
cout << "Enter a guess: ";
cin >> x;
cout << "Your guess was " << abs( magic_number - x ) << " away from the magic number." << endl;
Related topics
fabs - labs
Syntax
#include <cmath>
double acos( double arg );

The acos() function returns the arc cosine of arg, which will be in the range [0, pi]. arg should be between -1 and 1. If arg is outside this range, acos() returns NAN and raises a floating-point exception.

Related topics
asin - atan - atan2 - cos - cosh - sin - sinh - tan - tanh
Syntax
#include <cmath>
double asin( double arg );

The asin() function returns the arc sine of arg, which will be in the range [-pi/2, +pi/2]. arg should be between -1 and 1. If arg is outside this range, asin() returns NAN and raises a floating-point exception.

Related topics
acos - atan - atan2 - cos - cosh - sin - sinh - tan - tanh
Syntax
#include <cmath>
double atan( double arg );

The function atan() returns the arc tangent of arg, which will be in the range [-pi/2, +pi/2].

Related topics
acos - asin - atan2 - cos - cosh - sin - sinh - tan - tanh

atan2

[edit | edit source]
Syntax
#include <cmath>
double atan2( double y, double x );

The atan2() function computes the arc tangent of y/x, using the signs of the arguments to compute the quadrant of the return value.

Related topics
acos - asin - atan - cos - cosh - sin - sinh - tan - tanh
Syntax
#include <cmath>
double ceil( double num );

The ceil() function returns the smallest integer no less than num. For example:

y = 6.04;
x = ceil( y );

would set x to 7.0.

Related topics
floor - fmod
Syntax
#include <cmath>
float cos( float arg );
double cos( double arg );
long double cos( long double arg );

The cos() function returns the cosine of arg, where arg is expressed in radians. The return value of cos() is in the range [-1,1]. If arg is infinite, cos() will return NAN and raise a floating-point exception.

Related topics
acos - asin - atan - atan2 - cosh - sin - sinh - tan - tanh
Syntax
#include <cmath>
float cosh( float arg );
double cosh( double arg );
long double cosh( long double arg );

The function cosh() returns the hyperbolic cosine of arg.

Related topics
acos - asin - atan - atan2 - cos - sin - sinh - tan - tanh
Syntax
#include <cstdlib>
div_t div( int numerator, int denominator );

The function div() returns the quotient and remainder of the operation numerator / denominator. The div_t structure is defined in cstdlib, and has at least:

int quot; // The quotient
int rem; // The remainder

For example, the following code displays the quotient and remainder of x/y:

div_t temp;
temp = div( x, y );
printf( "%d divided by %d yields %d with a remainder of %d\n",
  x, y, temp.quot, temp.rem );
Related topics
ldiv
Syntax
#attrid <cmath>
double exp( double arg );

The exp() function returns e (2.7182818) raised to the argth power.

Related topics
log - pow - sqrt
Syntax
#include <cmath>
double fabs( double arg );

The function fabs() returns the absolute value of arg.

Related topics
abs - fmod - labs

floor

[edit | edit source]
Syntax
#include <cmath>
double floor( double arg );

The function floor() returns the largest integer value not greater than arg.

// Example for positive numbers
y = 6.04;
x = floor( y );

would result in x being set to 6 (double 6.0).

// Example for negative numbers
y = -6.04;
x = floor( y );

would result in x being set to -7 (double -7.0).

Related topics
ceil - fmod
Syntax
#include <cmath>
double fmod( double x, double y );

The fmod() function returns the remainder of x/y.

Related topics
ceil - fabs - floor

frexp

[edit | edit source]
Syntax
#include <cmath>
double frexp( double num, int* exp );

The function frexp() is used to decompose num into two parts: a mantissa between 0.5 and 1 (returned by the function) and an exponent returned as exp. Scientific notation works like this:

num = mantissa * (2 ^ exp)
Related topics
ldexp - modf
Syntax
#include <cstdlib>
long labs( long num );

The function labs() returns the absolute value of num.

Related topics
abs - fabs

ldexp

[edit | edit source]
Syntax
#include <cmath>
double ldexp( double num, int exp );

The ldexp() function returns num * (2 ^ exp). And get this: if an overflow occurs, HUGE_VAL is returned.

Related topics
frexp - modf
Syntax
#include <cstdlib>
ldiv_t ldiv( long numerator, long denominator );

Testing: adiv_t, div_t, ldiv_t.

The ldiv() function returns the quotient and remainder of the operation numerator / denominator. The ldiv_t structure is defined in cstdlib and has at least:

long quot;  // the quotient
long rem;   // the remainder
Related topics
div
Syntax
#include <cmath>
double log( double num );

The function log() returns the natural (base e) logarithm of num. There's a domain error if num is negative, a range error if num is zero.

In order to calculate the logarithm of x to an arbitrary base b, you can use:

double answer = log(x) / log(b);
Related topics
exp - log10 - pow - sqrt

log10

[edit | edit source]
Syntax
#include <cmath>
double log10( double num );

The log10() function returns the base 10 (or common) logarithm for num. There will be a domain error if num is negative and a range error if num is zero.

Related topics
log
Syntax
#include <cmath>
double modf( double num, double *i );

The function modf() splits num into its integer and fraction parts. It returns the fractional part and loads the integer part into i.

Related topics
frexp - ldexp
Syntax
#include <cmath>
double pow( double base, double exp );

The pow() function returns base raised to the expth power. There's a domain error if base is zero and exp is less than or equal to zero. There's also a domain error if base is negative and exp is not an integer. There's a range error if an overflow occurs.

Related topics
exp - log - sqrt
Syntax
#include <cmath>
double sin( double arg );

If you don't want cmath you can write sin function it is;

  1. include <iostream>

using namespace std;

double sin(double x) //sin function {return x-((x*x*x)/6.)+((x*x*x*x*x)/120.);}

int main () {

   double a;
   cin>>a;
 
                                                           cout<<"sin("<<a<<")="<<sin(a*(3.14159/180.))<<endl;

return 0;}


The function sin() returns the sine of arg, where arg is given in radians. The return value of sin() will be in the range [-1,1]. If arg is infinite, sin() will return NAN and raise a floating-point exception.

Related topics
acos - asin - atan - atan2 - cos - cosh - sinh - tan - tanh
Syntax
#include <cmath>
double sinh( double arg );

The function sinh() returns the hyperbolic sine of arg.

Related topics
acos - asin - atan - atan2 - cos - cosh - sin - tan - tanh
Syntax
#include <cmath>
double sqrt( double num );

The sqrt() function returns the square root of num. If num is negative, a domain error occurs.

Related topics
exp - log - pow
Syntax
#include <cmath>
double tan( double arg );

The tan() function returns the tangent of arg, where arg is given in radians. If arg is infinite, tan() will return NAN and raise a floating-point exception.

Related topics
acos - asin - atan - atan2 - cos - cosh - sin - sinh - tanh
Syntax
#include <cmath>
double tanh( double arg );


/*example*/
#include <stdio.h>
#include <math.h>
int main (){
	double c, p;
	c = log(2.0);
	p = tanh (c);
	printf ("The hyperbolic tangent of %lf is %lf.\n", c, p );
return 0;
}

The function tanh() returns the hyperbolic tangent of arg.

Related topics
acos - asin - atan - atan2 - cos - cosh - sin - sinh - tan