# Complex 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 complex functions:

## cabs

Description: The cabs function returns the complex absolute value of `z`.

Calling interface:
`double cabs(double _Complex z);`
`long double cabsl(long double _Complex z);`
`float cabsf(float _Complex z);`

## cacos

Description: The cacos function returns the complex inverse cosine of `z`.

Calling interface:
`double _Complex cacos(double _Complex z);`
`long double _Complex cacosl(long double _Complex z);`
`float _Complex cacosf(float _Complex z);`

## cacosh

Description: The cacosh function returns the complex inverse hyperbolic cosine of `z`.

Calling interface:
`double _Complex cacosh(double _Complex z);`
`long double _Complex cacoshl(long double _Complex z);`
`float _Complex cacoshf(float _Complex z);`

## carg

Description: The carg function returns the value of the argument in the interval [-pi, +pi].

Calling interface:
`double carg(double _Complex z);`
`long double cargl(long double _Complex z);`
`float cargf(float _Complex z);`

## casin

Description: The casin function returns the complex inverse sine of `z`.

Calling interface:
`double _Complex casin(double _Complex z);`
`long double _Complex casinl(long double _Complex z);`
`float _Complex casinf(float _Complex z);`

## casinh

Description: The casinh function returns the complex inverse hyperbolic sine of `z`.

Calling interface:
`double _Complex casinh(double _Complex z);`
`long double _Complex casinhl(long double _Complex z);`
`float _Complex casinhf(float _Complex z);`

## catan

Description: The catan function returns the complex inverse tangent of `z`.

Calling interface:
`double _Complex catan(double _Complex z);`
`long double _Complex catanl(long double _Complex z);`
`float _Complex catanf(float _Complex z);`

## catanh

Description: The catanh function returns the complex inverse hyperbolic tangent of `z`.

Calling interface:
`double _Complex catanh(double _Complex z);`
`long double _Complex catanhl(long double _Complex z);`
`float _Complex catanhf(float _Complex z);`

## ccos

Description: The ccos function returns the complex cosine of `z`.

Calling interface:
`double _Complex ccos(double _Complex z);`
`long double _Complex ccosl(long double _Complex z);`
`float _Complex ccosf(float _Complex z);`

## ccosh

Description: The ccosh function returns the complex hyperbolic cosine of `z`.

Calling interface:
`double _Complex ccosh(double _Complex z);`
`long double _Complex ccoshl(long double _Complex z);`
`float _Complex ccoshf(float _Complex z);`

## cexp

Description: The cexp function returns `ez` (`e` raised to the power `z`).

Calling interface:
`double _Complex cexp(double _Complex z);`
`long double _Complex cexpl(long double _Complex z);`
`float _Complex cexpf(float _Complex z);`

## cexp2

Description: The cexp function returns `2z` (2 raised to the power `z`).

Calling interface:
`double _Complex cexp2(double _Complex z);`
`long double _Complex cexp2l(long double _Complex z);`
`float _Complex cexp2f(float _Complex z);`

## cexp10

Description: The cexp10 function returns 10`z` (10 raised to the power `z`).

Calling interface:
`double _Complex cexp10(double _Complex z);`
`long double _Complex cexp10l(long double _Complex z);`
`float _Complex cexp10f(float _Complex z);`

## cimag

Description: The cimag function returns the imaginary part value of `z`.

Calling interface:
`double cimag(double _Complex z);`
`long double cimagl(long double _Complex z);`
`float cimagf(float _Complex z);`

## cis

Description: The cis function returns the cosine and sine (as a complex value) of `z` measured in radians.

Calling interface:
`double _Complex cis(double x);`
`long double _Complex cisl(long double z);`
`float _Complex cisf(float z);`

## cisd

Description: The cisd function returns the cosine and sine (as a complex value) of `z` measured in degrees.

Calling interface:
`double _Complex cisd(double x);`
`long double _Complex cisdl(long double z);`
`float _Complex cisdf(float z);`

## clog

Description: The clog function returns the complex natural logarithm of `z`.

Calling interface:
`double _Complex clog(double _Complex z);`
`long double _Complex clogl(long double _Complex z);`
`float _Complex clogf(float _Complex z);`

## clog2

Description: The clog2 function returns the complex logarithm base 2 of `z`.

Calling interface:
`double _Complex clog2(double _Complex z);`
`long double _Complex clog2l(long double _Complex z);`
`float _Complex clog2f(float _Complex z);`

## clog10

Description: The clog10 function returns the complex logarithm base 10 of `z`.

Calling interface:
`double _Complex clog10(double _Complex z);`
`long double _Complex clog10l(long double _Complex z);`
`float _Complex clog10f(float _Complex z);`

## conj

Description: The conj function returns the complex conjugate of `z` by reversing the sign of its imaginary part.

Calling interface:
`double _Complex conj(double _Complex z);`
`long double _Complex conjl(long double _Complex z);`
`float _Complex conjf(float _Complex z);`

## cpow

Description: The cpow function returns the complex power function, `xy`.

Calling interface:
`double _Complex cpow(double _Complex x, double _Complex y);`
`long double _Complex cpowl(long double _Complex x, long double _Complex y);`
`float _Complex cpowf(float _Complex x, float _Complex y);`

## cproj

Description: The cproj function returns a projection of `z` onto the Riemann sphere.

Calling interface:
`double _Complex cproj(double _Complex z);`
`long double _Complex cprojl(long double _Complex z);`
`float _Complex cprojf(float _Complex z);`

## creal

Description: The creal function returns the real part of `z`.

Calling interface:
`double creal(double _Complex z);`
`long double creall(long double _Complex z);`
`float crealf(float _Complex z);`

## csin

Description: The csin function returns the complex sine of `z`.

Calling interface:
`double _Complex csin(double _Complex z);`
`long double _Complex csinl(long double _Complex z);`
`float _Complex csinf(float _Complex z);`

## csinh

Description: The csinh function returns the complex hyperbolic sine of `z`.

Calling interface:
`double _Complex csinh(double _Complex z);`
`long double _Complex csinhl(long double _Complex z);`
`float _Complex csinhf(float _Complex z);`

## csqrt

Description: The csqrt function returns the complex square root of `z`.

Calling interface:
`double _Complex csqrt(double _Complex z);`
`long double _Complex csqrtl(long double _Complex z);`
`float _Complex csqrtf(float _Complex z);`

## ctan

Description: The ctan function returns the complex tangent of `z`.

Calling interface:
`double _Complex ctan(double _Complex z);`
`long double _Complex ctanl(long double _Complex z);`
`float _Complex ctanf(float _Complex z);`

## ctanh

Description: The ctanh function returns the complex hyperbolic tangent of `z`.

Calling interface:
`double _Complex ctanh(double _Complex z);`
`long double _Complex ctanhl(long double _Complex z);`
`float _Complex ctanhf(float _Complex z);`

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