# Trigonometric Functions

Many routines in the Intel® C++ Compiler Classic Math Library are more optimized for Intel® microprocessors than for non-Intel microprocessors.

The mathimf.h header file includes prototypes for Intel® C++ Compiler Classic Math Library functions.

The math library supports the following trigonometric functions:

## acos

Description: The acos function returns the principal value of the inverse cosine of `x` in the range [0, pi] radians for `x` in the interval [-1,1].

errno: EDOM, for |x| > 1

Calling interface:
`double acos(double x);`
`long double acosl(long double x);`
`float acosf(float x);`

## acosd

Description: The acosd function returns the principal value of the inverse cosine of `x` in the range [0,180] degrees for `x` in the interval [-1,1].

errno: EDOM, for |x| > 1

Calling interface:
`double acosd(double x);`
`long double acosdl(long double x);`
`float acosdf(float x);`

## acospi

Description: The acospi function returns the principal value of the inverse cosine of `x`, divided by pi, in the range [0,1] for `x` in the interval [-1,1].

errno: EDOM, for |x| > 1

Calling interface:
`double acospi(double x);`
`float acospif(float x);`

## asin

Description: The asin function returns the principal value of the inverse sine of `x` in the range [-pi/2, +pi/2] radians for `x` in the interval [-1,1].

errno: EDOM, for |x| > 1

Calling interface:
`double asin(double x);`
`long double asinl(long double x);`
`float asinf(float x);`

## asind

Description: The asind function returns the principal value of the inverse sine of `x` in the range [-90,90] degrees for `x` in the interval [-1,1].

errno: EDOM, for |x| > 1

Calling interface:
`double asind(double x);`
`long double asindl(long double x);`
`float asindf(float x);`

## asinpi

Description: The asinpi function returns the principal value of the inverse sine of `x`, divided by pi, in the range [-1/2,1/2] degrees for `x` in the interval [-1,1].

errno: EDOM, for |x| > 1 divided by pi

Calling interface:
`double asinpi(double x);`
`float asinpif(float x);`

## atan

Description: The atan function returns the principal value of the inverse tangent of `x` in the range [-pi/2, +pi/2] radians.

Calling interface:
`double atan(double x);`
`long double atanl(long double x);`
`float atanf(float x);`

## atan2

Description: The atan2 function returns the principal value of the inverse tangent of `y/x` in the range [-pi, +pi] radians.

errno: EDOM, for x = 0 and y = 0

Calling interface:
`double atan2(double y, double x);`
`long double atan2l(long double y, long double x);`
`float atan2f(float y, float x);`

## atan2pi

Description: The atan2pi function returns the principal value of the inverse tangent of `y/x`, divided by pi, in the range [-1, +1].

errno: EDOM, for x = 0 and y = 0

Calling interface:
`double atan2pi(double y, double x);`
`float atan2pif(float y, float x);`

## atand

Description: The atand function returns the principal value of the inverse tangent of `x` in the range [-90,90] degrees.

Calling interface:
`double atand(double x);`
`long double atandl(long double x);`
`float atandf(float x);`

## atan2d

Description: The atan2d function returns the principal value of the inverse tangent of `y/x` in the range [-180, +180] degrees.

errno: EDOM, for x = 0 and y = 0.

Calling interface:
`double atan2d(double x, double y);`
`long double atan2dl(long double x, long double y);`
`float atan2df(float x, float y);`

## atand2

Description: The atand2 function returns the principal value of the inverse tangent of `y/x` in the range [-180, +180] degrees.

errno: EDOM, for x = 0 and y = 0.

Calling interface:
`double atand2(double x, double y);`
`long double atand2l(long double x, long double y);`
`float atand2f(float x, float y);`

## atanpi

Description: The atanpi function returns the principal value of the inverse tangent of `x`, divided by pi, in the range [-1/2, +1/2].

Calling interface:
`double atanpi(double x);`
`float atanpif(float x);`

## cos

Description: The cos function returns the cosine of `x` measured in radians.

Calling interface:
`double cos(double x);`
`long double cosl(long double x);`
`float cosf(float x);`

## cosd

Description: The cosd function returns the cosine of `x` measured in degrees.

Calling interface:
`double cosd(double x);`
`long double cosdl(long double x);`
`float cosdf(float x);`

## cospi

Description: The cospi function returns the cosine of `x` multiplied by pi, `cos(x*pi)`.

Calling interface:
`double cospi(double x);`
`float cospif(float x);`

## cot

Description: The cot function returns the cotangent of `x` measured in radians.

errno: ERANGE, for overflow conditions at x = 0.

Calling interface:
`double cot(double x);`
`long double cotl(long double x);`
`float cotf(float x);`

## cotd

Description: The cotd function returns the cotangent of `x` measured in degrees.

errno: ERANGE, for overflow conditions at x = 0.

Calling interface:
`double cotd(double x);`
`long double cotdl(long double x);`
`float cotdf(float x);`

## sin

Description: The sin function returns the sine of `x` measured in radians.

Calling interface:
`double sin(double x);`
`long double sinl(long double x);`
`float sinf(float x);`

## sincos

Description: The sincos function returns both the sine and cosine of `x` measured in radians.

Calling interface:
`void sincos(double x, double *sinval, double *cosval);`
`void sincosl(long double x, long double *sinval, long double *cosval);`
`void sincosf(float x, float *sinval, float *cosval);`

## sincosd

Description: The sincosd function returns both the sine and cosine of `x` measured in degrees.

Calling interface:
`void sincosd(double x, double *sinval, double *cosval);`
`void sincosdl(long double x, long double *sinval, long double *cosval);`
`void sincosdf(float x, float *sinval, float *cosval);`

## sind

Description: The sind function computes the sine of `x` measured in degrees.

Calling interface:
`double sind(double x);`
`long double sindl(long double x);`
`float sindf(float x);`

## sinpi

Description: The sinpi function returns the sine of `x` multiplied by pi, `sin(x*pi)`.

Calling interface:
`double sinpi(double x);`
`float sinpif(float x);`

## tan

Description: The tan function returns the tangent of `x` measured in radians.

Calling interface:
`double tan(double x);`
`long double tanl(long double x);`
`float tanf(float x);`

## tand

Description: The tand function returns the tangent of `x` measured in degrees.

errno: ERANGE, for overflow conditions

Calling interface:
`double tand(double x);`
`long double tandl(long double x);`
`float tandf(float x);`

## tanpi

Description: The tanpi function returns the tangent of `x` multiplied by pi, `tan(x*pi)`.

Calling interface:
`double tanpi(double x);`
`float tanpif(float x);`

Parent topic: Intel® C++ Compiler Classic Math Library