⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cx.htm

📁 复数运算库
💻 HTM
📖 第 1 页 / 共 3 页
字号:
    <td width="80%" colspan="5" align="center">      <i>Second Argument</i></td>  </tr>  <tr>    <td width="20%"><i>First Argument</i></td>    <td width="16%"><b>CX</b></td>    <td width="16%"><b>Real</b></td>    <td width="16%"><b>Imag</b></td>    <td width="16%"><b>_I_</b></td>    <td width="16%"><b>Polar</b></td>  </tr>  <tr>    <td width="20%"><b>CX</b></td>    <td width="16%">CX</td>    <td width="16%">CX</td>    <td width="16%">CX</td>    <td width="16%">CX</td>    <td width="16%">CX</td>  </tr>  <tr>    <td width="20%"><b>Real</b></td>    <td width="16%">CX</td>    <td width="16%">(Real)</td>    <td width="16%">Imag</td>    <td width="16%">Imag</td>    <td width="16%">CX</td>  </tr>  <tr>    <td width="20%"><b>Imag</b></td>    <td width="16%">CX</td>    <td width="16%">Imag</td>    <td width="16%">Imag</td>    <td width="16%">Imag</td>    <td width="16%">CX</td>  </tr>  <tr>    <td width="20%"><b>_I_</b></td>    <td width="16%">CX</td>    <td width="16%">Imag</td>    <td width="16%">Imag</td>    <td width="16%">Imag, Real</td>    <td width="16%">CX</td>  </tr>  <tr>    <td width="20%"><b>Polar</b></td>    <td width="16%">CX</td>    <td width="16%">CX</td>    <td width="16%">CX</td>    <td width="16%">CX</td>    <td width="16%">CX</td>  </tr></table><p>When additions or subtractions involve <i> Polar</i> the Polar number is converted to<i>CX</i> and a <i> CX</i> addition or subtraction performed.</p><h3><a name="Multiplicative"></a>Multiplicative</h3><table border="1" cellspacing="0" width="100%" cellpadding="2">  <tr>    <td width="20%"><TT>*</TT>, <TT>/</TT></td>    <td width="80%" colspan="5" align="center">      <i>Second Argument</i></td>  </tr>  <tr>    <td width="20%"><i>First Argument</i></td>    <td width="16%"><b>CX</b></td>    <td width="16%"><b>Real</b></td>    <td width="16%"><b>Imag</b></td>    <td width="16%"><b>_I_</b></td>    <td width="16%"><b>Polar</b></td>  </tr>  <tr>    <td width="20%"><b>CX</b></td>    <td width="16%">CX</td>    <td width="16%">CX</td>    <td width="16%">CX</td>    <td width="16%">CX</td>    <td width="16%"><i>illegal</i></td>  </tr>  <tr>    <td width="20%"><b>Real</b></td>    <td width="16%">CX</td>    <td width="16%">(Real)</td>    <td width="16%">Imag</td>    <td width="16%">Imag</td>    <td width="16%">Polar</td>  </tr>  <tr>    <td width="20%"><b>Imag</b></td>    <td width="16%">CX</td>    <td width="16%">Imag</td>    <td width="16%">Real</td>    <td width="16%">Real</td>    <td width="16%">Polar</td>  </tr>  <tr>    <td width="20%"><b>_I_</b></td>    <td width="16%">CX</td>    <td width="16%">Imag</td>    <td width="16%">Real</td>    <td width="16%">Real</td>    <td width="16%">Polar</td>  </tr>  <tr>    <td width="20%"><b>Polar</b></td>    <td width="16%"><i>illegal</i></td>    <td width="16%">Polar</td>    <td width="16%">Polar</td>    <td width="16%">Polar</td>    <td width="16%">Polar</td>  </tr></table><p>Multiplication of a <i>CX</i> variable with a <i>Polar</i> variable willresult in a compile error. Either convert the <i>CX</i> variable to <i>Polar</i>,if you want a <i>Polar</i> result or the <i>Polar</i> variable to <i>CX</i> ifyou want a <i>CX</i> result.</p><h3><a name="AdditiveSelf"></a>Additive to self</h3><table border="1" cellspacing="0" width="100%" cellpadding="2">  <tr>    <td width="20%"><TT>+=</TT>, <TT>-=</TT></td>    <td width="80%" colspan="5" align="center">      <i> Argument</i></td>  </tr>  <tr>    <td width="20%"><i>Class</i></td>    <td width="16%"><b>CX</b></td>    <td width="16%"><b>Real</b></td>    <td width="16%"><b>Imag</b></td>    <td width="16%"><b>_I_</b></td>    <td width="16%"><b>Polar</b></td>  </tr>  <tr>    <td width="20%"><b>CX</b></td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>  </tr>  <tr>    <td width="20%"><b>Real</b></td>    <td width="16%">&nbsp;</td>    <td width="16%">(Yes)</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>  </tr>  <tr>    <td width="20%"><b>Imag</b></td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>    <td width="16%">&nbsp;</td>  </tr>  <tr>    <td width="20%"><b>_I_</b></td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>  </tr>  <tr>    <td width="20%"><b>Polar</b></td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>  </tr></table><h3><a name="MultiplicativeSelf"></a>Multiplicative to self</h3><table border="1" cellspacing="0" width="100%" cellpadding="2">  <tr>    <td width="20%"><tt>*=</tt>, <TT>/=</TT></td>    <td width="80%" colspan="5" align="center">      <i>Argument</i></td>  </tr>  <tr>    <td width="20%"><i>Class</i></td>    <td width="16%"><b>CX</b></td>    <td width="16%"><b>Real</b></td>    <td width="16%"><b>Imag</b></td>    <td width="16%"><b>_I_</b></td>    <td width="16%"><b>Polar</b></td>  </tr>  <tr>    <td width="20%"><b>CX</b></td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>  </tr>  <tr>    <td width="20%"><b>Real</b></td>    <td width="16%">&nbsp;</td>    <td width="16%">(Yes)</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>  </tr>  <tr>    <td width="20%"><b>Imag</b></td>    <td width="16%">&nbsp;</td>    <td width="16%">Yes</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>  </tr>  <tr>    <td width="20%"><b>_I_</b></td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>  </tr>  <tr>    <td width="20%"><b>Polar</b></td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>    <td width="16%">Yes</td>  </tr></table><h3><a name="Equality"></a>Equality</h3><table border="1" cellspacing="0" width="100%" cellpadding="2">  <tr>    <td width="20%"><TT>==</TT>, <TT>!=</TT></td>    <td width="80%" colspan="5" align="center">      <i>Second Argument</i></td>  </tr>  <tr>    <td width="20%"><i>First Argument</i></td>    <td width="16%"><b>CX</b></td>    <td width="16%"><b>Real</b></td>    <td width="16%"><b>Imag</b></td>    <td width="16%"><b>_I_</b></td>    <td width="16%"><b>Polar</b></td>  </tr>  <tr>    <td width="20%"><b>CX</b></td>    <td width="16%">bool</td>    <td width="16%">bool</td>    <td width="16%">bool</td>    <td width="16%">bool</td>    <td width="16%"><i>illegal</i></td>  </tr>  <tr>    <td width="20%"><b>Real</b></td>    <td width="16%">bool</td>    <td width="16%">(bool)</td>    <td width="16%">bool</td>    <td width="16%"><b>false</b></td>    <td width="16%">bool</td>  </tr>  <tr>    <td width="20%"><b>Imag</b></td>    <td width="16%">bool</td>    <td width="16%">bool</td>    <td width="16%">bool</td>    <td width="16%">bool</td>    <td width="16%">bool</td>  </tr>  <tr>    <td width="20%"><b>_I_</b></td>    <td width="16%">bool</td>    <td width="16%"><b>false</b></td>    <td width="16%">bool</td>    <td width="16%"><b>true</b></td>    <td width="16%">bool</td>  </tr>  <tr>    <td width="20%"><b>Polar</b></td>    <td width="16%"><i>illegal</i></td>    <td width="16%">bool</td>    <td width="16%">bool</td>    <td width="16%">bool</td>    <td width="16%">bool</td>  </tr></table><p>Remember that, because of round-off error, testing equality of floating pointvariables is not very useful unless the variables involved have values that canbe represented exactly as binary numbers or might be equal because one is a copyof the other.</p><h3><a name="Power"></a>Power</h3><table border="1" cellspacing="0" width="100%" cellpadding="2">  <tr>    <td width="20%">pow</td>    <td width="80%" colspan="5" align="center">      <i>Second Argument</i></td>  </tr>  <tr>    <td width="20%"><i>First Argument</i></td>    <td width="16%"><b>CX</b></td>    <td width="16%"><b>Real, int</b></td>    <td width="16%"><b>Imag</b></td>    <td width="16%"><b>_I_</b></td>    <td width="16%"><b>Polar</b></td>  </tr>  <tr>    <td width="20%"><b>CX</b></td>    <td width="16%">CX</td>    <td width="16%">CX</td>    <td width="16%">CX</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>  </tr>  <tr>    <td width="20%"><b>Real</b></td>    <td width="16%">CX</td>    <td width="16%">(Real)</td>    <td width="16%">CX</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>  </tr>  <tr>    <td width="20%"><b>Imag</b></td>    <td width="16%">CX</td>    <td width="16%">CX</td>    <td width="16%">CX</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>  </tr>  <tr>    <td width="20%"><b>_I_</b></td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>  </tr>  <tr>    <td width="20%"><b>Polar</b></td>    <td width="16%">Polar</td>    <td width="16%">Polar</td>    <td width="16%">Polar</td>    <td width="16%">&nbsp;</td>    <td width="16%">&nbsp;</td>  </tr></table><p>If <i>y</i> is of type <i>int</i> and in the range -12 to 12 then <i>pow(x,y)</i> iscalculated by direct multiplication. In all other cases it is calculated with <i>exp(y *log(x))</i>.</p><p>Value of <i>pow(x,y)</i>  if <i>x</i> is zero:</p><table border="1" cellspacing="0" width="100%" cellpadding="2">  <tr>    <td width="15%"><b><i>x</i></b></td>    <td width="45%"><b><i>y</i></b></td>    <td width="40%"><b><i>pow(x,y)</i></b></td>  </tr>  <tr>    <td width="15%">0</td>    <td width="45%"><i>int</i> and negative</td>    <td width="40%">throw exception</td>  </tr>  <tr>    <td width="15%">0</td>    <td width="45%"><i>int</i> and non-negative</td>    <td width="40%">0</td>  </tr>  <tr>    <td width="15%">0</td>    <td width="45%">not <i>int</i> and non-positive real part</td>    <td width="40%">throw exception</td>  </tr>  <tr>    <td width="15%">0</td>    <td width="45%">not <i>int</i> and positive real part</td>    <td width="40%">0</td>  </tr></table><p>Make sure you understand what you are doing if you use <i>pow(x,y)</i> withcomplex <i>y</i>.</p><h2><a name="input"></a>Input and output</h2><p>I have not defined input and output functions.</p><h2><a name="GlobVarFn"></a>Global variables, functions</h2><pre>   Real pi, pi_times_2, pi_over_2, pi_over_4   Real ipow(Real x, int n)</pre><pre>   ImaginaryUnit _I_</pre><p>The variables <i>pi</i>, <i>pi_times_2</i>, <i>pi_over_2</i>, <i> pi_over_4</i>have the obvious values.</p><p>The global variable <i>_I_</i> is the representation of <i>i</i> = sqrt(-1).</p><p>The function <i>ipow</i> is <i>pow</i> with integer second argument, <i>n</i>.If <i>n</i> is in the range -12 to 12 the value is calculated by multiplication.An version of <i>pow</i> with integer argument is included in the new standardbut is not in all compilers.</p><h2><a name="example"></a>Mandelbrot set example</h2><p>The example calculates what is essentially the boundary of the Mandelbrot setusing contour integration. Details are given in the program file. The programoutputs the coordinates of the points on the boundary. Here is anExcel scatter plot of the points. The program is mostly a demonstration of the <i>CX</i>class but there is a little use of the <i>Imag</i> class and <i>_I_</i>. A copy of the output from the program is in mandel.txt. Your output will probably differ because of the formatting of the output and round-off error. </p><p align="center"><img border="0" src="images/mandel.gif" width="287" height="281"></p><p>&nbsp;</p><ul>  <li><a href="#top">Go to top</a></li>  <li><a HREF="ol_doc.htm">To online documentation page</a></li></ul><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -