amath/doc/html/atan_8c.html

381 lines
35 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>amath: lib/real/atan.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">amath
&#160;<span id="projectnumber">1.6.2</span>
</div>
<div id="projectbrief">Simple command line calculator</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('atan_8c.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">atan.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="real_2prim_8h_source.html">prim.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="math_8h_source.html">math.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for atan.c:</div>
<div class="dyncontent">
<div class="center"><img src="atan_8c__incl.png" border="0" usemap="#lib_2real_2atan_8c" alt=""/></div>
<map name="lib_2real_2atan_8c" id="lib_2real_2atan_8c">
<area shape="rect" id="node2" href="real_2prim_8h.html" title="prim.h" alt="" coords="5,80,64,107"/>
<area shape="rect" id="node3" href="math_8h.html" title="Functions in math library for handling real numbers. " alt="" coords="89,80,151,107"/>
</map>
</div>
</div>
<p><a href="atan_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a1e2f8f6d64eaa95131bc63fee34970ea"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atan_8c.html#a1e2f8f6d64eaa95131bc63fee34970ea">atan</a> (double x)</td></tr>
<tr class="memdesc:a1e2f8f6d64eaa95131bc63fee34970ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse trigonometric tangent function. <a href="#a1e2f8f6d64eaa95131bc63fee34970ea">More...</a><br /></td></tr>
<tr class="separator:a1e2f8f6d64eaa95131bc63fee34970ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a3ad59cecebe81954b05adb6655a3522d"><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atan_8c.html#a3ad59cecebe81954b05adb6655a3522d">atanhi</a> []</td></tr>
<tr class="separator:a3ad59cecebe81954b05adb6655a3522d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e27d24e02eed00dd09eecee7230b8a7"><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atan_8c.html#a8e27d24e02eed00dd09eecee7230b8a7">atanlo</a> []</td></tr>
<tr class="separator:a8e27d24e02eed00dd09eecee7230b8a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728d3c586fb7556699ef98d4e277da73"><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atan_8c.html#a728d3c586fb7556699ef98d4e277da73">aT</a> []</td></tr>
<tr class="separator:a728d3c586fb7556699ef98d4e277da73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada85e349d35971b32c8ea4238881ff8b"><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atan_8c.html#ada85e349d35971b32c8ea4238881ff8b">one</a> = 1.0</td></tr>
<tr class="separator:ada85e349d35971b32c8ea4238881ff8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbd466133274923cc0785707fbdeea9a"><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atan_8c.html#acbd466133274923cc0785707fbdeea9a">huge</a> = 1.0e300</td></tr>
<tr class="separator:acbd466133274923cc0785707fbdeea9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a1e2f8f6d64eaa95131bc63fee34970ea"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double atan </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Inverse trigonometric tangent function. </p>
<dl class="section version"><dt>Version</dt><dd>1.3 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>95/01/18</dd></dl>
<pre>
Method
1. Reduce x to positive by atan(x) = -atan(-x).
2. According to the integer k=4t+0.25 chopped, t=x, the argument
is further reduced to one of the following intervals and the
arctangent of t is evaluated by the corresponding formula:</pre><pre> [0,7/16] atan(x) = t-t^3*(a1+t^2*(a2+...(a10+t^2*a11)...)
[7/16,11/16] atan(x) = atan(1/2) + atan( (t-0.5)/(1+t/2) )
[11/16.19/16] atan(x) = atan( 1 ) + atan( (t-1)/(1+t) )
[19/16,39/16] atan(x) = atan(3/2) + atan( (t-1.5)/(1+1.5t) )
[39/16,INF] atan(x) = atan(INF) + atan( -1/t )</pre><pre>Constants:
The hexadecimal values are the intended ones for the following
constants. The decimal values may be used, provided that the
compiler will convert from decimal to binary accurately enough
to produce the hexadecimal values shown.
</pre> <dl class="section copyright"><dt>Copyright</dt><dd>Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. Developed at SunSoft, a Sun Microsystems, Inc. business. Permission to use, copy, modify, and distribute this software is freely granted, provided that this notice is preserved. </dd></dl>
<p>Definition at line <a class="el" href="atan_8c_source.html#l00109">109</a> of file <a class="el" href="atan_8c_source.html">atan.c</a>.</p>
<p>References <a class="el" href="atan_8c_source.html#l00061">aT</a>, <a class="el" href="atan_8c_source.html#l00047">atanhi</a>, <a class="el" href="atan_8c_source.html#l00054">atanlo</a>, <a class="el" href="atan_8c_source.html#l00077">huge</a>, and <a class="el" href="atan_8c_source.html#l00076">one</a>.</p>
<p>Referenced by <a class="el" href="real_8cpp_source.html#l00447">RealNumber::ArcCotangent()</a>, <a class="el" href="real_8cpp_source.html#l00437">RealNumber::ArcTangent()</a>, and <a class="el" href="atan2_8c_source.html#l00086">atan2()</a>.</p>
<div class="fragment"><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;{</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordtype">double</span> w,s1,s2,z;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="real_2prim_8h.html#ae91287c8a5f73a8a22a100f50dc4de77">sword</a> ix,hx,id;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="real_2prim_8h.html#ae62ee08d06ab4cc06d61dc1246b73195">GET_HIGH_WORD</a>(hx,x);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; ix = hx&amp;0x7fffffff;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(ix&gt;=0x44100000) { <span class="comment">/* if |x| &gt;= 2^66 */</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="real_2prim_8h.html#a6e60fe0e0f9f8801507e15fe2d893751">uword</a> low;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="real_2prim_8h.html#adee023704c856ea8f310e8e3fd765a22">GET_LOW_WORD</a>(low,x);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">if</span>(ix&gt;0x7ff00000||</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; (ix==0x7ff00000&amp;&amp;(low!=0)))</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> x+x; <span class="comment">/* NaN */</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span>(hx&gt;0) <span class="keywordflow">return</span> <a class="code" href="atan_8c.html#a3ad59cecebe81954b05adb6655a3522d">atanhi</a>[3]+<a class="code" href="atan_8c.html#a8e27d24e02eed00dd09eecee7230b8a7">atanlo</a>[3];</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">return</span> -<a class="code" href="atan_8c.html#a3ad59cecebe81954b05adb6655a3522d">atanhi</a>[3]-atanlo[3];</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">if</span> (ix &lt; 0x3fdc0000) { <span class="comment">/* |x| &lt; 0.4375 */</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span> (ix &lt; 0x3e200000) { <span class="comment">/* |x| &lt; 2^-29 */</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="atan_8c.html#acbd466133274923cc0785707fbdeea9a">huge</a>+x&gt;<a class="code" href="atan_8c.html#ada85e349d35971b32c8ea4238881ff8b">one</a>) <span class="keywordflow">return</span> x; <span class="comment">/* raise inexact */</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">id</span> = -1;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; x = <a class="code" href="math_8h.html#a8fb5c0b9b43a108724b355136d29d2f9">fabs</a>(x);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (ix &lt; 0x3ff30000) { <span class="comment">/* |x| &lt; 1.1875 */</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> (ix &lt; 0x3fe60000) { <span class="comment">/* 7/16 &lt;=|x|&lt;11/16 */</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">id</span> = 0;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; x = (2.0*x-<a class="code" href="atan_8c.html#ada85e349d35971b32c8ea4238881ff8b">one</a>)/(2.0+x);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">/* 11/16&lt;=|x|&lt; 19/16 */</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">id</span> = 1;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; x = (x-<a class="code" href="atan_8c.html#ada85e349d35971b32c8ea4238881ff8b">one</a>)/(x+<a class="code" href="atan_8c.html#ada85e349d35971b32c8ea4238881ff8b">one</a>);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> (ix &lt; 0x40038000) { <span class="comment">/* |x| &lt; 2.4375 */</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">id</span> = 2;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; x = (x-1.5)/(<a class="code" href="atan_8c.html#ada85e349d35971b32c8ea4238881ff8b">one</a>+1.5*x);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">/* 2.4375 &lt;= |x| &lt; 2^66 */</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">id</span> = 3;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; x = -1.0/x;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">/* end of argument reduction */</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; z = x*x;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; w = z*z;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">/* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; s1 = z*(<a class="code" href="atan_8c.html#a728d3c586fb7556699ef98d4e277da73">aT</a>[0]+w*(<a class="code" href="atan_8c.html#a728d3c586fb7556699ef98d4e277da73">aT</a>[2]+w*(<a class="code" href="atan_8c.html#a728d3c586fb7556699ef98d4e277da73">aT</a>[4]+w*(<a class="code" href="atan_8c.html#a728d3c586fb7556699ef98d4e277da73">aT</a>[6]+w*(<a class="code" href="atan_8c.html#a728d3c586fb7556699ef98d4e277da73">aT</a>[8]+w*<a class="code" href="atan_8c.html#a728d3c586fb7556699ef98d4e277da73">aT</a>[10])))));</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; s2 = w*(<a class="code" href="atan_8c.html#a728d3c586fb7556699ef98d4e277da73">aT</a>[1]+w*(<a class="code" href="atan_8c.html#a728d3c586fb7556699ef98d4e277da73">aT</a>[3]+w*(<a class="code" href="atan_8c.html#a728d3c586fb7556699ef98d4e277da73">aT</a>[5]+w*(<a class="code" href="atan_8c.html#a728d3c586fb7556699ef98d4e277da73">aT</a>[7]+w*<a class="code" href="atan_8c.html#a728d3c586fb7556699ef98d4e277da73">aT</a>[9]))));</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">id</span>&lt;0) <span class="keywordflow">return</span> x - x*(s1+s2);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; z = <a class="code" href="atan_8c.html#a3ad59cecebe81954b05adb6655a3522d">atanhi</a>[id] - ((x*(s1+s2) - <a class="code" href="atan_8c.html#a8e27d24e02eed00dd09eecee7230b8a7">atanlo</a>[<span class="keywordtype">id</span>]) - x);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> (hx&lt;0)? -z:z;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="ttc" id="real_2prim_8h_html_ae62ee08d06ab4cc06d61dc1246b73195"><div class="ttname"><a href="real_2prim_8h.html#ae62ee08d06ab4cc06d61dc1246b73195">GET_HIGH_WORD</a></div><div class="ttdeci">#define GET_HIGH_WORD(i, d)</div><div class="ttdoc">Get the more significant 32 bit int from a double. </div><div class="ttdef"><b>Definition:</b> <a href="real_2prim_8h_source.html#l00165">prim.h:165</a></div></div>
<div class="ttc" id="atan_8c_html_acbd466133274923cc0785707fbdeea9a"><div class="ttname"><a href="atan_8c.html#acbd466133274923cc0785707fbdeea9a">huge</a></div><div class="ttdeci">static const double huge</div><div class="ttdef"><b>Definition:</b> <a href="atan_8c_source.html#l00077">atan.c:77</a></div></div>
<div class="ttc" id="real_2prim_8h_html_adee023704c856ea8f310e8e3fd765a22"><div class="ttname"><a href="real_2prim_8h.html#adee023704c856ea8f310e8e3fd765a22">GET_LOW_WORD</a></div><div class="ttdeci">#define GET_LOW_WORD(i, d)</div><div class="ttdoc">Get the less significant 32 bit int from a double. </div><div class="ttdef"><b>Definition:</b> <a href="real_2prim_8h_source.html#l00176">prim.h:176</a></div></div>
<div class="ttc" id="real_2prim_8h_html_ae91287c8a5f73a8a22a100f50dc4de77"><div class="ttname"><a href="real_2prim_8h.html#ae91287c8a5f73a8a22a100f50dc4de77">sword</a></div><div class="ttdeci">signed int sword</div><div class="ttdoc">32 bit signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="real_2prim_8h_source.html#l00107">prim.h:107</a></div></div>
<div class="ttc" id="math_8h_html_a8fb5c0b9b43a108724b355136d29d2f9"><div class="ttname"><a href="math_8h.html#a8fb5c0b9b43a108724b355136d29d2f9">fabs</a></div><div class="ttdeci">double fabs(double x)</div><div class="ttdoc">Returns the absolute value of x. </div><div class="ttdef"><b>Definition:</b> <a href="fabs_8c_source.html#l00051">fabs.c:51</a></div></div>
<div class="ttc" id="atan_8c_html_a728d3c586fb7556699ef98d4e277da73"><div class="ttname"><a href="atan_8c.html#a728d3c586fb7556699ef98d4e277da73">aT</a></div><div class="ttdeci">static const double aT[]</div><div class="ttdef"><b>Definition:</b> <a href="atan_8c_source.html#l00061">atan.c:61</a></div></div>
<div class="ttc" id="real_2prim_8h_html_a6e60fe0e0f9f8801507e15fe2d893751"><div class="ttname"><a href="real_2prim_8h.html#a6e60fe0e0f9f8801507e15fe2d893751">uword</a></div><div class="ttdeci">unsigned int uword</div><div class="ttdoc">32 bit unsigned integer. </div><div class="ttdef"><b>Definition:</b> <a href="real_2prim_8h_source.html#l00101">prim.h:101</a></div></div>
<div class="ttc" id="atan_8c_html_a3ad59cecebe81954b05adb6655a3522d"><div class="ttname"><a href="atan_8c.html#a3ad59cecebe81954b05adb6655a3522d">atanhi</a></div><div class="ttdeci">static const double atanhi[]</div><div class="ttdef"><b>Definition:</b> <a href="atan_8c_source.html#l00047">atan.c:47</a></div></div>
<div class="ttc" id="atan_8c_html_ada85e349d35971b32c8ea4238881ff8b"><div class="ttname"><a href="atan_8c.html#ada85e349d35971b32c8ea4238881ff8b">one</a></div><div class="ttdeci">static const double one</div><div class="ttdef"><b>Definition:</b> <a href="atan_8c_source.html#l00076">atan.c:76</a></div></div>
<div class="ttc" id="atan_8c_html_a8e27d24e02eed00dd09eecee7230b8a7"><div class="ttname"><a href="atan_8c.html#a8e27d24e02eed00dd09eecee7230b8a7">atanlo</a></div><div class="ttdeci">static const double atanlo[]</div><div class="ttdef"><b>Definition:</b> <a href="atan_8c_source.html#l00054">atan.c:54</a></div></div>
</div><!-- fragment -->
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="atan_8c_a1e2f8f6d64eaa95131bc63fee34970ea_icgraph.png" border="0" usemap="#atan_8c_a1e2f8f6d64eaa95131bc63fee34970ea_icgraph" alt=""/></div>
<map name="atan_8c_a1e2f8f6d64eaa95131bc63fee34970ea_icgraph" id="atan_8c_a1e2f8f6d64eaa95131bc63fee34970ea_icgraph">
<area shape="rect" id="node2" href="structRealNumber.html#af805be2ef7c041b677160859da753893" title="Inverse trigonometric cotangent function. " alt="" coords="100,411,283,437"/>
<area shape="rect" id="node3" href="structRealNumber.html#a3e1c71bcd7ec27804247d5efa538b877" title="Inverse trigonometric tangent function. " alt="" coords="106,461,277,488"/>
<area shape="rect" id="node4" href="atan2_8c.html#a349377202ca14f79eb335b1a421fe4d8" title="atan2" alt="" coords="164,512,219,539"/>
<area shape="rect" id="node5" href="clog_8c.html#a888b8eb5ccc46411e68f6d7b99035888" title="Natural logarithm of a complex number. " alt="" coords="334,411,381,437"/>
<area shape="rect" id="node37" href="cpow_8c.html#a2c8af642928f3ec79a10a52983981ffa" title="Complex number raised to a power. " alt="" coords="331,715,384,741"/>
<area shape="rect" id="node6" href="cacos_8c.html#ac182d6022bdabf7f2b6eccb6a0ea497b" title="Inverse cosine of complex number. " alt="" coords="485,5,542,32"/>
<area shape="rect" id="node8" href="cacosh_8c.html#a451ef5c81d4091e547e52a9a03af260d" title="Inverse hyperbolic cosine of complex number. " alt="" coords="481,56,545,83"/>
<area shape="rect" id="node10" href="cacot_8c.html#a9fe610b52824ffaa0764c77e462c9815" title="Inverse cotangent of complex number. " alt="" coords="486,107,541,133"/>
<area shape="rect" id="node12" href="cacoth_8c.html#ab9d5fbd365098aa6a35e8599e13d7adb" title="Inverse hyperbolic cotangent of complex number. " alt="" coords="483,157,544,184"/>
<area shape="rect" id="node14" href="cacsc_8c.html#aa8a49b2418f7bbcf0a8f72a15fbb4984" title="Inverse cosecant of complex number. " alt="" coords="485,208,542,235"/>
<area shape="rect" id="node16" href="cacsch_8c.html#a1a3241a96a0225c9ef3113f5e5c48acf" title="Inverse hyperbolic cosecant of complex number. " alt="" coords="481,259,545,285"/>
<area shape="rect" id="node18" href="casec_8c.html#ae509596503bb6ea1142d470882e074a7" title="Inverse secant expressed using complex logarithms: " alt="" coords="485,309,542,336"/>
<area shape="rect" id="node20" href="casech_8c.html#ad47f8259620b339981f876087f195cb4" title="Inverse hyperbolic secant of complex numbers. " alt="" coords="481,360,545,387"/>
<area shape="rect" id="node22" href="casin_8c.html#a411c00ad70bc1b91a5de261b64d0f131" title="Inverse sine of complex number. " alt="" coords="487,411,540,437"/>
<area shape="rect" id="node24" href="casinh_8c.html#a333c9aa02a58163693f67e1d47aa9887" title="Inverse hyperbolic sine of complex number. " alt="" coords="483,461,543,488"/>
<area shape="rect" id="node26" href="catan_8c.html#aa4ec5b4617afd43de3b6c7a11e850f04" title="Inverse tangent of complex number. " alt="" coords="486,512,541,539"/>
<area shape="rect" id="node28" href="catanh_8c.html#a0808614b4e465dc4b4827382a9f77447" title="Inverse hyperbolic tangent of complex number. " alt="" coords="483,563,544,589"/>
<area shape="rect" id="node30" href="ccbrt_8c.html#a9411d07785a32ac077d24d6c8a5c5554" title="Cube root of complex number. " alt="" coords="488,613,539,640"/>
<area shape="rect" id="node32" href="clog10_8c.html#a5e20d88f7f7f17d510ddf62f269c8343" title="Base 10 logarithmic value of complex number. " alt="" coords="483,664,543,691"/>
<area shape="rect" id="node34" href="clogb_8c.html#a3951e04bc6370fb9fd7b0ff2c2558d7b" title="Base 2 logarithmic value of complex number. " alt="" coords="487,715,540,741"/>
<area shape="rect" id="node36" href="structComplexNumber.html#af2b337a76672ec647dbe707d3287d6df" title="ComplexNumber::Log" alt="" coords="439,765,588,792"/>
<area shape="rect" id="node7" href="structComplexNumber.html#a5f9bdc56dba5fc8cdf8afb8cd232e7e4" title="ComplexNumber::ArcCosine" alt="" coords="664,5,853,32"/>
<area shape="rect" id="node9" href="structComplexNumber.html#a9d1b26167fb3e3c84e18b724bcfbb48a" title="ComplexNumber::HypArcCosine" alt="" coords="652,56,865,83"/>
<area shape="rect" id="node11" href="structComplexNumber.html#a412a4480826c808d9358ccc84f24a75f" title="ComplexNumber::ArcCotangent" alt="" coords="655,107,863,133"/>
<area shape="rect" id="node13" href="structComplexNumber.html#acf624375cf09c48f5209ec3605ca01f6" title="ComplexNumber::HypArcCotangent" alt="" coords="643,157,875,184"/>
<area shape="rect" id="node15" href="structComplexNumber.html#a904a9af5470b037c1931d7d090410c94" title="ComplexNumber::ArcCosecant" alt="" coords="657,208,861,235"/>
<area shape="rect" id="node17" href="structComplexNumber.html#af53cdbbf59f07f40118cf05a51cf3d0a" title="ComplexNumber::HypArcCosecant" alt="" coords="645,259,873,285"/>
<area shape="rect" id="node19" href="structComplexNumber.html#a66cb3904e4b3127f0e3714ba23a0c981" title="ComplexNumber::ArcSecant" alt="" coords="664,309,853,336"/>
<area shape="rect" id="node21" href="structComplexNumber.html#af0d9ceb661b6bf3052d3806c84ab6faf" title="ComplexNumber::HypArcSecant" alt="" coords="652,360,865,387"/>
<area shape="rect" id="node23" href="structComplexNumber.html#ab52b2cfd9cd0ba862346408c580e385c" title="ComplexNumber::ArcSine" alt="" coords="671,411,846,437"/>
<area shape="rect" id="node25" href="structComplexNumber.html#a0081fb3057a6ab825ac0b3dbea62406b" title="ComplexNumber::HypArcSine" alt="" coords="659,461,858,488"/>
<area shape="rect" id="node27" href="structComplexNumber.html#a69dc018433e7409d5b6b6d87568ae232" title="ComplexNumber::ArcTangent" alt="" coords="661,512,856,539"/>
<area shape="rect" id="node29" href="structComplexNumber.html#a9c1090310f2f9e656467625e0137c8dc" title="ComplexNumber::HypArcTangent" alt="" coords="649,563,868,589"/>
<area shape="rect" id="node31" href="structComplexNumber.html#a1589eac796ec230625298d196fe84c25" title="ComplexNumber::CubeRoot" alt="" coords="665,613,852,640"/>
<area shape="rect" id="node33" href="structComplexNumber.html#a77a7c95712136b6beeded79210a18c00" title="ComplexNumber::Log10" alt="" coords="677,664,840,691"/>
<area shape="rect" id="node35" href="structComplexNumber.html#ae8ff446ea20c3b1e4dfa979eaed9ea86" title="ComplexNumber::Log2" alt="" coords="681,715,837,741"/>
<area shape="rect" id="node38" href="structComplexNumber.html#a0ab40e1cbe5c25629fe62643ed8b9352" title="ComplexNumber::Raise" alt="" coords="432,816,595,843"/>
<area shape="rect" id="node39" href="structRealNumber.html#aaf9c066a4b9e9d845edefd40f614a517" title="Expontation function. " alt="" coords="690,816,827,843"/>
</map>
</div>
</p>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a728d3c586fb7556699ef98d4e277da73"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const double aT[]</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line"> 3.33333333333329318027e-01, </div><div class="line"> -1.99999999998764832476e-01, </div><div class="line"> 1.42857142725034663711e-01, </div><div class="line"> -1.11111104054623557880e-01, </div><div class="line"> 9.09088713343650656196e-02, </div><div class="line"> -7.69187620504482999495e-02, </div><div class="line"> 6.66107313738753120669e-02, </div><div class="line"> -5.83357013379057348645e-02, </div><div class="line"> 4.97687799461593236017e-02, </div><div class="line"> -3.65315727442169155270e-02, </div><div class="line"> 1.62858201153657823623e-02, </div><div class="line">}</div></div><!-- fragment -->
<p>Definition at line <a class="el" href="atan_8c_source.html#l00061">61</a> of file <a class="el" href="atan_8c_source.html">atan.c</a>.</p>
<p>Referenced by <a class="el" href="atan_8c_source.html#l00109">atan()</a>.</p>
</div>
</div>
<a class="anchor" id="a3ad59cecebe81954b05adb6655a3522d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const double atanhi[]</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line"> 4.63647609000806093515e-01, </div><div class="line"> 7.85398163397448278999e-01, </div><div class="line"> 9.82793723247329054082e-01, </div><div class="line"> 1.57079632679489655800e+00, </div><div class="line">}</div></div><!-- fragment -->
<p>Definition at line <a class="el" href="atan_8c_source.html#l00047">47</a> of file <a class="el" href="atan_8c_source.html">atan.c</a>.</p>
<p>Referenced by <a class="el" href="atan_8c_source.html#l00109">atan()</a>.</p>
</div>
</div>
<a class="anchor" id="a8e27d24e02eed00dd09eecee7230b8a7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const double atanlo[]</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line"> 2.26987774529616870924e-17, </div><div class="line"> 3.06161699786838301793e-17, </div><div class="line"> 1.39033110312309984516e-17, </div><div class="line"> 6.12323399573676603587e-17, </div><div class="line">}</div></div><!-- fragment -->
<p>Definition at line <a class="el" href="atan_8c_source.html#l00054">54</a> of file <a class="el" href="atan_8c_source.html">atan.c</a>.</p>
<p>Referenced by <a class="el" href="atan_8c_source.html#l00109">atan()</a>.</p>
</div>
</div>
<a class="anchor" id="acbd466133274923cc0785707fbdeea9a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const double huge = 1.0e300</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="atan_8c_source.html#l00077">77</a> of file <a class="el" href="atan_8c_source.html">atan.c</a>.</p>
<p>Referenced by <a class="el" href="atan_8c_source.html#l00109">atan()</a>.</p>
</div>
</div>
<a class="anchor" id="ada85e349d35971b32c8ea4238881ff8b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const double one = 1.0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="atan_8c_source.html#l00076">76</a> of file <a class="el" href="atan_8c_source.html">atan.c</a>.</p>
<p>Referenced by <a class="el" href="atan_8c_source.html#l00109">atan()</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_97aefd0d527b934f1d99a682da8fe6a9.html">lib</a></li><li class="navelem"><a class="el" href="dir_ca194a09c7a767aed9138a74a7cf8e10.html">real</a></li><li class="navelem"><a class="el" href="atan_8c.html">atan.c</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
</ul>
</div>
</body>
</html>