#redirect [[C mathematical functions#complex.h]]
{{lowercase|title=complex.h}}
{{C Standard library}}
'''complex.h''' is a [[header file]] in the [[C standard library|standard library]] of the [[C programming language]] that defines functionality for [[complex arithmetic]].<ref name="SUS">{{man|bd|complex.h|SUS|complex arithmetic}}</ref> These functions use the built-in type <code>complex</code> which was introduced with the [[C99]] revision of C.
This header should not be confused with the [[C++ standard library]] header <code><complex></code>, which implements complex numbers in a completely different way (as a template class, <code>complex<T></code>).
==Functions==
Each function declared in <code>complex.h</code> has three versions, each of which works with a different floating-point type (<code>double</code>, <code>float</code> and <code>long{{nbsp}}double</code>). Only the <code>double</code> version of each function is listed here; to use the <code>float</code> (or <code>long{{nbsp}}double</code>) version, append an <code>f</code> (or an <code>l<code>, respectively) to the function's name.
Note that all angles are in [[radian]]s.
{| class="wikitable"
|-
|<code>double {{spaces|7}} cabs(double complex); || [[Absolute value#Complex numbers|Complex magnitude]]
|-
|<code>double complex cacos(double complex);</code> || Complex [[inverse cosine]]
|-
|<code>double complex cacosh(double complex);</code> || Complex [[inverse hyperbolic cosine]]
|-
|<code>double {{spaces|7}} carg(double complex);</code> || [[arg (mathematics)|Complex argument]]
|-
|<code>double complex casin(double complex);</code> || Complex [[inverse sine]]
|-
|<code>double complex casinh(double complex);</code> || Complex [[inverse hyperbolic sine]]
|-
|<code>double complex catan(double complex);</code> || Complex [[inverse tangent]]
|-
|<code>double complex catanh(double complex);</code> || Complex [[inverse hyperbolic tangent]]
|-
|<code>double complex ccos(double complex);</code> || Complex [[cosine]]
|-
|<code>double complex ccosh(double complex);</code> || Complex [[hyperbolic cosine]]
|-
|<code>double complex cexp(double complex);</code> || Complex [[exponential]]
|-
|<code>double {{spaces|7}} cimag(double complex);</code> || [[Imaginary part]] of complex number
|-
|<code>double complex clog(double complex);</code> || Complex [[logarithm]]
|-
|<code>double complex conj(double complex);</code> || Complex [[conjugate]]
|-
|<code>double complex cpow(double complex, double complex);</code> || Complex [[exponentiation|power]]
|-
|<code>double complex cproj(double complex);</code> || Complex projection{{ref label|cproj|A|A}}
|-
|<code>double {{spaces|7}} creal(double complex);</code> || [[Real part]] of complex number
|-
|<code>double complex csin(double complex);</code> || Complex [[sine]]
|-
|<code>double complex csinh(double complex);</code> || Complex [[hyperbolic sine]]
|-
|<code>double complex csqrt(double complex);</code> || Complex [[square root]]
|-
|<code>double complex ctan(double complex);</code> || Complex [[tangent (trigonometric function)|tangent]]
|-
|<code>double complex ctanh(double complex);</code> || Complex [[hyperbolic tangent]]
|-
|}
:{{note label|cproj|A|A}} cproj(''z'') projects the complex number ''z'' onto the [[Riemann sphere]]; the result is ''z'' itself, except complex infinities are mapped to positive infinity on the real axis.<ref>{{man|sh|cproj|SUS|complex projection function}}</ref>
==References==
<references />
[[Category:C standard library headers]]
[[es:Complex.h]]
[[pt:Complex.h]]
[[ru:Complex.h]]
[[uk:Complex.h]]
|