Contents

# Trigonometric Functions

Many routines in the
Intel® oneAPI
DPC++/C++
Compiler
Math Library are more optimized for Intel® microprocessors than for non-Intel microprocessors.
The
mathimf.h
Intel® oneAPI
DPC++/C++
Compiler
Math Library functions.
The math library supports the following trigonometric functions:
FP16 Math Functions have the following requirements:
• Version 2021.4 or higher of the Intel® oneAPI DPC++/C++ Compiler.
• A next-generation Intel® Xeon® Scalable processor, code name Sapphire Rapids.

## 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);
_Float16 acosf16(_Float16 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);
_Float16 acosdf16(_Float16 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);
_Float16 acospif16(_Float16 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);
_Float16 asinf16(_Float16 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);
_Float16 asindf16(_Float16 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);
_Float16 asinpif16(_Float16 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);
_Float16 atanf16(_Float16 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);
_Float16 atan2f16(_Float16 y, _Float16 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);
_Float16 atan2pif16(_Float16 y, _Float16 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);
_Float16 atandf16(_Float16 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);
_Float16 atan2df16(_Float16 x, _Float16 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);
_Float16 atand2f16(_Float16 x, _Float16 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);
_Float16 atanpif16(_Float16 x);

## cos

Description:
The
cos
function returns the cosine of
x
Calling interface:
double cos(double x);
long double cosl(long double x);
float cosf(float x);
_Float16 float cosf16(_Float16 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);
_Float16 cosdf16(_Float16 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);
_Float16 cospif16(_Float16);

## cot

Description:
The
cot
function returns the cotangent of
x
errno
: ERANGE, for overflow conditions at x = 0.
Calling interface:
double cot(double x);
long double cotl(long double x);
float cotf(float x);
_Float16 cotf16(_Float16 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);
_Float16 cotdf16(_Float16 x);

## sin

Description:
The
sin
function returns the sine of
x
Calling interface:
double sin(double x);
long double sinl(long double x);
float sinf(float x);
_Float16 sinf16(_Float16 x);

## sincos

Description:
The
sincos
function returns both the sine and cosine of
x
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);
void sincosf16(_Float16 x, _Float16 *sinval, _Float16 *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);
void sincosdf16(_Float16 x, _Float16 *sinval, _Float16 *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);
_Float16 sindf16((_Float16 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);
_Float16 sinpif16(_Float16 x);

## tan

Description:
The
tan
function returns the tangent of
x
Calling interface:
double tan(double x);
long double tanl(long double x);
float tanf(float x);
_Float16 tanf16(_Float16 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);
_Float16 tandf16(_Float16 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);
_Float16 tanpif16(_Float16 x);

#### Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.