summaryrefslogtreecommitdiff
path: root/devdocs/c/numeric%2Fcomplex.html
diff options
context:
space:
mode:
Diffstat (limited to 'devdocs/c/numeric%2Fcomplex.html')
-rw-r--r--devdocs/c/numeric%2Fcomplex.html139
1 files changed, 139 insertions, 0 deletions
diff --git a/devdocs/c/numeric%2Fcomplex.html b/devdocs/c/numeric%2Fcomplex.html
new file mode 100644
index 00000000..70ae214f
--- /dev/null
+++ b/devdocs/c/numeric%2Fcomplex.html
@@ -0,0 +1,139 @@
+ <h1 id="firstHeading" class="firstHeading">Complex number arithmetic</h1> <table class="t-rev-begin"> <tr class="t-rev t-since-c11">
+<td> <p>If the macro constant <code>__STDC_NO_COMPLEX__</code> is defined by the implementation, the complex types, the header <code>&lt;complex.h&gt;</code> and all of the names listed here are not provided.</p>
+</td> <td><span class="t-mark-rev t-since-c11">(since C11)</span></td>
+</tr> </table> <p>The C programming language, as of C99, supports complex number math with the three built-in types <code>double _Complex</code>, <code>float _Complex</code>, and <code>long double _Complex</code> (see <a href="../keyword/_complex" title="c/keyword/ Complex"><code>_Complex</code></a>). When the header <code>&lt;complex.h&gt;</code> is included, the three complex number types are also accessible as <code><span class="kw4">double</span> <a href="http://en.cppreference.com/w/c/numeric/complex/complex"><span class="kw743">complex</span></a></code>, <code><span class="kw4">float</span> <a href="http://en.cppreference.com/w/c/numeric/complex/complex"><span class="kw743">complex</span></a></code>, <code><span class="kw4">long</span> <span class="kw4">double</span> <a href="http://en.cppreference.com/w/c/numeric/complex/complex"><span class="kw743">complex</span></a></code>.</p>
+<p>In addition to the complex types, the three imaginary types may be supported: <code>double _Imaginary</code>, <code>float _Imaginary</code>, and <code>long double _Imaginary</code> (see <a href="../keyword/_imaginary" title="c/keyword/ Imaginary"><code>_Imaginary</code></a>). When the header <code>&lt;complex.h&gt;</code> is included, the three imaginary types are also accessible as <code><span class="kw4">double</span> <a href="http://en.cppreference.com/w/c/numeric/complex/imaginary"><span class="kw745">imaginary</span></a></code>, <code><span class="kw4">float</span> <a href="http://en.cppreference.com/w/c/numeric/complex/imaginary"><span class="kw745">imaginary</span></a></code>, and <code><span class="kw4">long</span> <span class="kw4">double</span> <a href="http://en.cppreference.com/w/c/numeric/complex/imaginary"><span class="kw745">imaginary</span></a></code>.</p>
+<p>Standard arithmetic operators <code>+, -, *, /</code> can be used with real, complex, and imaginary types in any combination.</p>
+<table class="t-rev-begin"> <tr class="t-rev t-since-c99 t-until-c11">
+<td> <p>A compiler that defines <code>__STDC_IEC_559_COMPLEX__</code> is recommended, but not required to support imaginary numbers. POSIX recommends checking if the macro <code><a href="complex/imaginary_i" title="c/numeric/complex/Imaginary I">_Imaginary_I</a></code> is defined to identify imaginary number support.</p>
+</td> <td>
+<span class="t-mark-rev t-since-c99">(since C99)</span><br><span class="t-mark-rev t-until-c11">(until C11)</span>
+</td>
+</tr> <tr class="t-rev t-since-c11">
+<td> <p>Imaginary numbers are supported if <code>__STDC_IEC_559_COMPLEX__</code> <span class="t-rev-inl t-since-c23"><span>or <code>__STDC_IEC_60559_COMPLEX__</code></span><span><span class="t-mark-rev t-since-c23">(since C23)</span></span></span> is defined.</p>
+</td> <td><span class="t-mark-rev t-since-c11">(since C11)</span></td>
+</tr> </table> <table class="t-dsc-begin"> <tr class="t-dsc-header"> <th colspan="2"> Defined in header <code>&lt;complex.h&gt;</code> </th>
+</tr> <tr> <td colspan="2"> <h5 id="Types"> Types </h5> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/imaginary" title="c/numeric/complex/imaginary"> <span class="t-lines"><span>imaginary</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> imaginary type macro <br> <span class="t-mark">(keyword macro)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/complex" title="c/numeric/complex/complex"> <span class="t-lines"><span>complex</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> complex type macro <br> <span class="t-mark">(keyword macro)</span> </td>
+</tr> <tr> <td colspan="2"> <h5 id="The_imaginary_constant"> The imaginary constant </h5> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/imaginary_i" title="c/numeric/complex/Imaginary I"> <span class="t-lines"><span>_Imaginary_I</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> the imaginary unit constant i <br> <span class="t-mark">(macro constant)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/complex_i" title="c/numeric/complex/Complex I"> <span class="t-lines"><span>_Complex_I</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> the complex unit constant i <br> <span class="t-mark">(macro constant)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/i" title="c/numeric/complex/I"> <span class="t-lines"><span>I</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> the complex or imaginary unit constant i <br> <span class="t-mark">(macro constant)</span> </td>
+</tr> <tr> <td colspan="2"> <h5 id="Manipulation"> Manipulation </h5> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/cmplx" title="c/numeric/complex/CMPLX"> <span class="t-lines"><span>CMPLX</span><span>CMPLXF</span><span>CMPLXL</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c11">(C11)</span></span><span><span class="t-mark-rev t-since-c11">(C11)</span></span><span><span class="t-mark-rev t-since-c11">(C11)</span></span></span></div> </td> <td> constructs a complex number from real and imaginary parts <br> <span class="t-mark">(function macro)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/creal" title="c/numeric/complex/creal"> <span class="t-lines"><span>creal</span><span>crealf</span><span>creall</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the real part of a complex number <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/cimag" title="c/numeric/complex/cimag"> <span class="t-lines"><span>cimag</span><span>cimagf</span><span>cimagl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the imaginary part a complex number <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/cabs" title="c/numeric/complex/cabs"> <span class="t-lines"><span>cabs</span><span>cabsf</span><span>cabsl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the magnitude of a complex number <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/carg" title="c/numeric/complex/carg"> <span class="t-lines"><span>carg</span><span>cargf</span><span>cargl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the phase angle of a complex number <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/conj" title="c/numeric/complex/conj"> <span class="t-lines"><span>conj</span><span>conjf</span><span>conjl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex conjugate <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/cproj" title="c/numeric/complex/cproj"> <span class="t-lines"><span>cproj</span><span>cprojf</span><span>cprojl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the projection on Riemann sphere <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr> <td colspan="2"> <h5 id="Exponential_functions"> Exponential functions </h5> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/cexp" title="c/numeric/complex/cexp"> <span class="t-lines"><span>cexp</span><span>cexpf</span><span>cexpl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex base-e exponential <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/clog" title="c/numeric/complex/clog"> <span class="t-lines"><span>clog</span><span>clogf</span><span>clogl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex natural logarithm <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr> <td colspan="2"> <h5 id="Power_functions"> Power functions </h5> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/cpow" title="c/numeric/complex/cpow"> <span class="t-lines"><span>cpow</span><span>cpowf</span><span>cpowl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex power function <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/csqrt" title="c/numeric/complex/csqrt"> <span class="t-lines"><span>csqrt</span><span>csqrtf</span><span>csqrtl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex square root <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr> <td colspan="2"> <h5 id="Trigonometric_functions"> Trigonometric functions </h5> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/csin" title="c/numeric/complex/csin"> <span class="t-lines"><span>csin</span><span>csinf</span><span>csinl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex sine <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/ccos" title="c/numeric/complex/ccos"> <span class="t-lines"><span>ccos</span><span>ccosf</span><span>ccosl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex cosine <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/ctan" title="c/numeric/complex/ctan"> <span class="t-lines"><span>ctan</span><span>ctanf</span><span>ctanl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex tangent <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/casin" title="c/numeric/complex/casin"> <span class="t-lines"><span>casin</span><span>casinf</span><span>casinl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex arc sine <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/cacos" title="c/numeric/complex/cacos"> <span class="t-lines"><span>cacos</span><span>cacosf</span><span>cacosl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex arc cosine <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/catan" title="c/numeric/complex/catan"> <span class="t-lines"><span>catan</span><span>catanf</span><span>catanl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex arc tangent <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr> <td colspan="2"> <h5 id="Hyperbolic_functions"> Hyperbolic functions </h5> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/csinh" title="c/numeric/complex/csinh"> <span class="t-lines"><span>csinh</span><span>csinhf</span><span>csinhl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex hyperbolic sine <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/ccosh" title="c/numeric/complex/ccosh"> <span class="t-lines"><span>ccosh</span><span>ccoshf</span><span>ccoshl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex hyperbolic cosine <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/ctanh" title="c/numeric/complex/ctanh"> <span class="t-lines"><span>ctanh</span><span>ctanhf</span><span>ctanhl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex hyperbolic tangent <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/casinh" title="c/numeric/complex/casinh"> <span class="t-lines"><span>casinh</span><span>casinhf</span><span>casinhl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex arc hyperbolic sine <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/cacosh" title="c/numeric/complex/cacosh"> <span class="t-lines"><span>cacosh</span><span>cacoshf</span><span>cacoshl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex arc hyperbolic cosine <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="complex/catanh" title="c/numeric/complex/catanh"> <span class="t-lines"><span>catanh</span><span>catanhf</span><span>catanhl</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> computes the complex arc hyperbolic tangent <br> <span class="t-mark">(function)</span> </td>
+</tr> </table> <h3 id="Notes"> Notes</h3> <p>The following function names are <span class="t-rev-inl t-since-c23"><span>potentially</span><span><span class="t-mark-rev t-since-c23">(since C23)</span></span></span> reserved for future addition to <code>complex.h</code> and are not available for use in the programs that include that header: <code>cerf</code>, <code>cerfc</code>, <code>cexp2</code>, <code>cexpm1</code>, <code>clog10</code>, <code>clog1p</code>, <code>clog2</code>, <code>clgamma</code>, <code>ctgamma</code><span class="t-rev-inl t-since-c23"><span>, <code>csinpi</code>, <code>ccospi</code>, <code>ctanpi</code>, <code>casinpi</code>, <code>cacospi</code>, <code>catanpi</code>, <code>ccompoundn</code>, <code>cpown</code>, <code>cpowr</code>, <code>crootn</code>, <code>crsqrt</code>, <code>cexp10m1</code>, <code>cexp10</code>, <code>cexp2m1</code>, <code>clog10p1</code>, <code>clog2p1</code>, <code>clogp1</code></span><span><span class="t-mark-rev t-since-c23">(since C23)</span></span></span>, along with their -f and -l suffixed variants.</p>
+<p>Although the C standard names the inverse hyperbolics with "complex arc hyperbolic sine" etc., the inverse functions of the hyperbolic functions are the area functions. Their argument is the area of a hyperbolic sector, not an arc. The correct names are "complex inverse hyperbolic sine" etc. Some authors use "complex area hyperbolic sine" etc.</p>
+<p>A complex or imaginary number is infinite if one of its parts is infinite, even if the other part is NaN.</p>
+<p>A complex or imaginary number is finite if both parts are neither infinities nor NaNs.</p>
+<p>A complex or imaginary number is a zero if both parts are positive or negative zeroes.</p>
+<h3 id="Example"> Example</h3> <div class="t-example"> <div class="c source-c"><pre data-language="c">#include &lt;stdio.h&gt;
+#include &lt;complex.h&gt;
+#include &lt;tgmath.h&gt;
+
+int main(void)
+{
+ double complex z1 = I * I; // imaginary unit squared
+ printf("I * I = %.1f%+.1fi\n", creal(z1), cimag(z1));
+
+ double complex z2 = pow(I, 2); // imaginary unit squared
+ printf("pow(I, 2) = %.1f%+.1fi\n", creal(z2), cimag(z2));
+
+ double PI = acos(-1);
+ double complex z3 = exp(I * PI); // Euler's formula
+ printf("exp(I*PI) = %.1f%+.1fi\n", creal(z3), cimag(z3));
+
+ double complex z4 = 1+2*I, z5 = 1-2*I; // conjugates
+ printf("(1+2i)*(1-2i) = %.1f%+.1fi\n", creal(z4*z5), cimag(z4*z5));
+}</pre></div> <p>Output:</p>
+<div class="text source-text"><pre data-language="c">I * I = -1.0+0.0i
+pow(I, 2) = -1.0+0.0i
+exp(I*PI) = -1.0+0.0i
+(1+2i)*(1-2i) = 5.0+0.0i</pre></div> </div> <h3 id="References"> References</h3> <ul>
+<li> C17 standard (ISO/IEC 9899:2018): </li>
+<ul>
+<li> 6.10.8.3/1/2 <code>__STDC_NO_COMPLEX__</code> (p: 128) </li>
+<li> 6.10.8.3/1/2 <code>__STDC_IEC_559_COMPLEX__</code> (p: 128) </li>
+<li> 7.3 Complex arithmetic <code>&lt;complex.h&gt;</code> (p: 136-144) </li>
+<li> 7.25 Type-generic math <code>&lt;tgmath.h&gt;</code> (p: 272-273) </li>
+<li> 7.31.1 Complex arithmetic <code>&lt;complex.h&gt;</code> (p: 391) </li>
+<li> Annex G (normative) IEC 60559-compatible complex arithmetic (p: 469-479) </li>
+</ul>
+<li> C11 standard (ISO/IEC 9899:2011): </li>
+<ul>
+<li> 6.10.8.3/1/2 <code>__STDC_NO_COMPLEX__</code> (p: 177) </li>
+<li> 6.10.8.3/1/2 <code>__STDC_IEC_559_COMPLEX__</code> (p: 177) </li>
+<li> 7.3 Complex arithmetic <code>&lt;complex.h&gt;</code> (p: 188-199) </li>
+<li> 7.25 Type-generic math <code>&lt;tgmath.h&gt;</code> (p: 373-375) </li>
+<li> 7.31.1 Complex arithmetic <code>&lt;complex.h&gt;</code> (p: 455) </li>
+<li> Annex G (normative) IEC 60559-compatible complex arithmetic (p: 532-545) </li>
+</ul>
+<li> C99 standard (ISO/IEC 9899:1999): </li>
+<ul>
+<li> 6.10.8/2 <code>__STDC_IEC_559_COMPLEX__</code> (p: 161) </li>
+<li> 7.3 Complex arithmetic <code>&lt;complex.h&gt;</code> (p: 170-180) </li>
+<li> 7.22 Type-generic math <code>&lt;tgmath.h&gt;</code> (p: 335-337) </li>
+<li> 7.26.1 Complex arithmetic <code>&lt;complex.h&gt;</code> (p: 401) </li>
+<li> Annex G (informative) IEC 60559-compatible complex arithmetic (p: 467-480) </li>
+</ul>
+</ul> <h3 id="See_also"> See also</h3> <table class="t-dsc-begin"> <tr class="t-dsc"> <td colspan="2"> <span><a href="https://en.cppreference.com/w/cpp/numeric/complex" title="cpp/numeric/complex">C++ documentation</a></span> for <span class=""><span>Complex number arithmetic</span></span> </td>
+</tr> </table> <div class="_attribution">
+ <p class="_attribution-p">
+ &copy; cppreference.com<br>Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.<br>
+ <a href="https://en.cppreference.com/w/c/numeric/complex" class="_attribution-link">https://en.cppreference.com/w/c/numeric/complex</a>
+ </p>
+</div>