Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / math / doc / html / math_toolkit / ellint / ellint_carlson.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Elliptic Integrals - Carlson Form</title>
5 <link rel="stylesheet" href="../../math.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="../../index.html" title="Math Toolkit 2.11.0">
8 <link rel="up" href="../ellint.html" title="Elliptic Integrals">
9 <link rel="prev" href="ellint_intro.html" title="Elliptic Integral Overview">
10 <link rel="next" href="ellint_1.html" title="Elliptic Integrals of the First Kind - Legendre Form">
11 </head>
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../../more/index.htm">More</a></td>
20 </tr></table>
21 <hr>
22 <div class="spirit-nav">
23 <a accesskey="p" href="ellint_intro.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ellint_1.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section">
26 <div class="titlepage"><div><div><h3 class="title">
27 <a name="math_toolkit.ellint.ellint_carlson"></a><a class="link" href="ellint_carlson.html" title="Elliptic Integrals - Carlson Form">Elliptic Integrals
28       - Carlson Form</a>
29 </h3></div></div></div>
30 <h5>
31 <a name="math_toolkit.ellint.ellint_carlson.h0"></a>
32         <span class="phrase"><a name="math_toolkit.ellint.ellint_carlson.synopsis"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.ellint.ellint_carlson.synopsis">Synopsis</a>
33       </h5>
34 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rf</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
35 </pre>
36 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
37
38 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
39 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rf</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">)</span>
40
41 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
42 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rf</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
43
44 <span class="special">}}</span> <span class="comment">// namespaces</span>
45 </pre>
46 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
47 </pre>
48 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
49
50 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
51 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rd</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">)</span>
52
53 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
54 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rd</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
55
56 <span class="special">}}</span> <span class="comment">// namespaces</span>
57 </pre>
58 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rj</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
59 </pre>
60 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
61
62 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">&gt;</span>
63 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rj</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">T4</span> <span class="identifier">p</span><span class="special">)</span>
64
65 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
66 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rj</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">T4</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
67
68 <span class="special">}}</span> <span class="comment">// namespaces</span>
69 </pre>
70 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
71 </pre>
72 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
73
74 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
75 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rc</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">)</span>
76
77 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
78 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rc</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
79
80 <span class="special">}}</span> <span class="comment">// namespaces</span>
81 </pre>
82 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rg</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
83 </pre>
84 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
85
86 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
87 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rg</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">)</span>
88
89 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
90 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rg</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
91
92 <span class="special">}}</span> <span class="comment">// namespaces</span>
93 </pre>
94 <h5>
95 <a name="math_toolkit.ellint.ellint_carlson.h1"></a>
96         <span class="phrase"><a name="math_toolkit.ellint.ellint_carlson.description"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.ellint.ellint_carlson.description">Description</a>
97       </h5>
98 <p>
99         These functions return Carlson's symmetrical elliptic integrals, the functions
100         have complicated behavior over all their possible domains, but the following
101         graph gives an idea of their behavior:
102       </p>
103 <div class="blockquote"><blockquote class="blockquote"><p>
104           <span class="inlinemediaobject"><img src="../../../graphs/ellint_carlson.svg" align="middle"></span>
105
106         </p></blockquote></div>
107 <p>
108         The return type of these functions is computed using the <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
109         type calculation rules</em></span></a> when the arguments are of different
110         types: otherwise the return is the same type as the arguments.
111       </p>
112 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
113 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rf</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">)</span>
114
115 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
116 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rf</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
117 </pre>
118 <p>
119         Returns Carlson's Elliptic Integral <span class="emphasis"><em>R<sub>F</sub></em></span>:
120       </p>
121 <div class="blockquote"><blockquote class="blockquote"><p>
122           <span class="inlinemediaobject"><img src="../../../equations/ellint9.svg"></span>
123
124         </p></blockquote></div>
125 <p>
126         Requires that all of the arguments are non-negative, and at most one may
127         be zero. Otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
128       </p>
129 <p>
130         The final <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
131         be used to control the behaviour of the function: how it handles errors,
132         what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">policy
133         documentation for more details</a>.
134       </p>
135 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
136 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rd</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">)</span>
137
138 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
139 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rd</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
140 </pre>
141 <p>
142         Returns Carlson's elliptic integral R<sub>D</sub>:
143       </p>
144 <div class="blockquote"><blockquote class="blockquote"><p>
145           <span class="inlinemediaobject"><img src="../../../equations/ellint10.svg"></span>
146
147         </p></blockquote></div>
148 <p>
149         Requires that x and y are non-negative, with at most one of them zero, and
150         that z &gt;= 0. Otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
151       </p>
152 <p>
153         The final <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
154         be used to control the behaviour of the function: how it handles errors,
155         what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">policy
156         documentation for more details</a>.
157       </p>
158 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">&gt;</span>
159 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rj</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">T4</span> <span class="identifier">p</span><span class="special">)</span>
160
161 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
162 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rj</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">T4</span> <span class="identifier">p</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
163 </pre>
164 <p>
165         Returns Carlson's elliptic integral R<sub>J</sub>:
166       </p>
167 <div class="blockquote"><blockquote class="blockquote"><p>
168           <span class="inlinemediaobject"><img src="../../../equations/ellint11.svg"></span>
169
170         </p></blockquote></div>
171 <p>
172         Requires that x, y and z are non-negative, with at most one of them zero,
173         and that <span class="emphasis"><em>p != 0</em></span>. Otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
174       </p>
175 <p>
176         The final <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
177         be used to control the behaviour of the function: how it handles errors,
178         what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">policy
179         documentation for more details</a>.
180       </p>
181 <p>
182         When <span class="emphasis"><em>p &lt; 0</em></span> the function returns the <a href="http://en.wikipedia.org/wiki/Cauchy_principal_value" target="_top">Cauchy
183         principal value</a> using the relation:
184       </p>
185 <div class="blockquote"><blockquote class="blockquote"><p>
186           <span class="inlinemediaobject"><img src="../../../equations/ellint17.svg"></span>
187
188         </p></blockquote></div>
189 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
190 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rc</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">)</span>
191
192 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
193 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rc</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
194 </pre>
195 <p>
196         Returns Carlson's elliptic integral R<sub>C</sub>:
197       </p>
198 <div class="blockquote"><blockquote class="blockquote"><p>
199           <span class="inlinemediaobject"><img src="../../../equations/ellint12.svg"></span>
200
201         </p></blockquote></div>
202 <p>
203         Requires that <span class="emphasis"><em>x &gt; 0</em></span> and that <span class="emphasis"><em>y != 0</em></span>.
204         Otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
205       </p>
206 <p>
207         The final <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
208         be used to control the behaviour of the function: how it handles errors,
209         what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">policy
210         documentation for more details</a>.
211       </p>
212 <p>
213         When <span class="emphasis"><em>y &lt; 0</em></span> the function returns the <a href="http://mathworld.wolfram.com/CauchyPrincipalValue.html" target="_top">Cauchy
214         principal value</a> using the relation:
215       </p>
216 <div class="blockquote"><blockquote class="blockquote"><p>
217           <span class="inlinemediaobject"><img src="../../../equations/ellint18.svg"></span>
218
219         </p></blockquote></div>
220 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
221 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rg</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">)</span>
222
223 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
224 <a class="link" href="../result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rg</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
225 </pre>
226 <p>
227         Returns Carlson's elliptic integral <span class="emphasis"><em>R<sub>G</sub>:</em></span>
228       </p>
229 <div class="blockquote"><blockquote class="blockquote"><p>
230           <span class="inlinemediaobject"><img src="../../../equations/ellint27.svg"></span>
231
232         </p></blockquote></div>
233 <p>
234         Requires that x and y are non-negative, otherwise returns the result of
235         <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
236       </p>
237 <p>
238         The final <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
239         be used to control the behaviour of the function: how it handles errors,
240         what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">policy
241         documentation for more details</a>.
242       </p>
243 <h5>
244 <a name="math_toolkit.ellint.ellint_carlson.h2"></a>
245         <span class="phrase"><a name="math_toolkit.ellint.ellint_carlson.testing"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.ellint.ellint_carlson.testing">Testing</a>
246       </h5>
247 <p>
248         There are two sets of tests.
249       </p>
250 <p>
251         Spot tests compare selected values with test data given in:
252       </p>
253 <div class="blockquote"><blockquote class="blockquote"><p>
254           B. C. Carlson, <span class="emphasis"><em><a href="http://arxiv.org/abs/math.CA/9409227" target="_top">Numerical
255           computation of real or complex elliptic integrals</a></em></span>. Numerical
256           Algorithms, Volume 10, Number 1 / March, 1995, pp 13-26.
257         </p></blockquote></div>
258 <p>
259         Random test data generated using NTL::RR at 1000-bit precision and our implementation
260         checks for rounding-errors and/or regressions.
261       </p>
262 <p>
263         There are also sanity checks that use the inter-relations between the integrals
264         to verify their correctness: see the above Carlson paper for details.
265       </p>
266 <h5>
267 <a name="math_toolkit.ellint.ellint_carlson.h3"></a>
268         <span class="phrase"><a name="math_toolkit.ellint.ellint_carlson.accuracy"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.ellint.ellint_carlson.accuracy">Accuracy</a>
269       </h5>
270 <p>
271         These functions are computed using only basic arithmetic operations, so there
272         isn't much variation in accuracy over differing platforms. Note that only
273         results for the widest floating-point type on the system are given as narrower
274         types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
275         zero error</a>. All values are relative errors in units of epsilon.
276       </p>
277 <div class="table">
278 <a name="math_toolkit.ellint.ellint_carlson.table_ellint_rc"></a><p class="title"><b>Table&#160;8.58.&#160;Error rates for ellint_rc</b></p>
279 <div class="table-contents"><table class="table" summary="Error rates for ellint_rc">
280 <colgroup>
281 <col>
282 <col>
283 <col>
284 <col>
285 </colgroup>
286 <thead><tr>
287 <th>
288               </th>
289 <th>
290                 <p>
291                   GNU C++ version 7.1.0<br> linux<br> double
292                 </p>
293               </th>
294 <th>
295                 <p>
296                   GNU C++ version 7.1.0<br> linux<br> long double
297                 </p>
298               </th>
299 <th>
300                 <p>
301                   Microsoft Visual C++ version 14.1<br> Win32<br> double
302                 </p>
303               </th>
304 </tr></thead>
305 <tbody><tr>
306 <td>
307                 <p>
308                   RC: Random data
309                 </p>
310               </td>
311 <td>
312                 <p>
313                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
314                   2.1:</em></span> Max = 2.4&#949; (Mean = 0.624&#949;))
315                 </p>
316               </td>
317 <td>
318                 <p>
319                   <span class="blue">Max = 0.995&#949; (Mean = 0.433&#949;)</span>
320                 </p>
321               </td>
322 <td>
323                 <p>
324                   <span class="blue">Max = 0.962&#949; (Mean = 0.407&#949;)</span>
325                 </p>
326               </td>
327 </tr></tbody>
328 </table></div>
329 </div>
330 <br class="table-break"><div class="table">
331 <a name="math_toolkit.ellint.ellint_carlson.table_ellint_rd"></a><p class="title"><b>Table&#160;8.59.&#160;Error rates for ellint_rd</b></p>
332 <div class="table-contents"><table class="table" summary="Error rates for ellint_rd">
333 <colgroup>
334 <col>
335 <col>
336 <col>
337 <col>
338 </colgroup>
339 <thead><tr>
340 <th>
341               </th>
342 <th>
343                 <p>
344                   GNU C++ version 7.1.0<br> linux<br> double
345                 </p>
346               </th>
347 <th>
348                 <p>
349                   GNU C++ version 7.1.0<br> linux<br> long double
350                 </p>
351               </th>
352 <th>
353                 <p>
354                   Microsoft Visual C++ version 14.1<br> Win32<br> double
355                 </p>
356               </th>
357 </tr></thead>
358 <tbody>
359 <tr>
360 <td>
361                 <p>
362                   RD: Random data
363                 </p>
364               </td>
365 <td>
366                 <p>
367                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
368                   2.1:</em></span> Max = 2.59&#949; (Mean = 0.878&#949;))
369                 </p>
370               </td>
371 <td>
372                 <p>
373                   <span class="blue">Max = 2.73&#949; (Mean = 0.831&#949;)</span>
374                 </p>
375               </td>
376 <td>
377                 <p>
378                   <span class="blue">Max = 2.16&#949; (Mean = 0.803&#949;)</span>
379                 </p>
380               </td>
381 </tr>
382 <tr>
383 <td>
384                 <p>
385                   RD: y = z
386                 </p>
387               </td>
388 <td>
389                 <p>
390                   <span class="blue">Max = 0.896&#949; (Mean = 0.022&#949;)</span><br> <br>
391                   (<span class="emphasis"><em>GSL 2.1:</em></span> Max = 2.88&#949; (Mean = 0.839&#949;))
392                 </p>
393               </td>
394 <td>
395                 <p>
396                   <span class="blue">Max = 2.65&#949; (Mean = 0.82&#949;)</span>
397                 </p>
398               </td>
399 <td>
400                 <p>
401                   <span class="blue">Max = 16.5&#949; (Mean = 0.843&#949;)</span>
402                 </p>
403               </td>
404 </tr>
405 <tr>
406 <td>
407                 <p>
408                   RD: x = y
409                 </p>
410               </td>
411 <td>
412                 <p>
413                   <span class="blue">Max = 0.824&#949; (Mean = 0.0272&#949;)</span><br>
414                   <br> (<span class="emphasis"><em>GSL 2.1:</em></span> Max = 3.74&#949; (Mean = 0.84&#949;))
415                 </p>
416               </td>
417 <td>
418                 <p>
419                   <span class="blue">Max = 2.85&#949; (Mean = 0.865&#949;)</span>
420                 </p>
421               </td>
422 <td>
423                 <p>
424                   <span class="blue">Max = 3.51&#949; (Mean = 0.816&#949;)</span>
425                 </p>
426               </td>
427 </tr>
428 <tr>
429 <td>
430                 <p>
431                   RD: x = 0, y = z
432                 </p>
433               </td>
434 <td>
435                 <p>
436                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
437                   2.1:</em></span> Max = 2&#949; (Mean = 0.656&#949;))
438                 </p>
439               </td>
440 <td>
441                 <p>
442                   <span class="blue">Max = 1.19&#949; (Mean = 0.522&#949;)</span>
443                 </p>
444               </td>
445 <td>
446                 <p>
447                   <span class="blue">Max = 1.16&#949; (Mean = 0.497&#949;)</span>
448                 </p>
449               </td>
450 </tr>
451 <tr>
452 <td>
453                 <p>
454                   RD: x = y = z
455                 </p>
456               </td>
457 <td>
458                 <p>
459                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
460                   2.1:</em></span> Max = 1.03&#949; (Mean = 0.418&#949;))
461                 </p>
462               </td>
463 <td>
464                 <p>
465                   <span class="blue">Max = 0.998&#949; (Mean = 0.387&#949;)</span>
466                 </p>
467               </td>
468 <td>
469                 <p>
470                   <span class="blue">Max = 1.03&#949; (Mean = 0.418&#949;)</span>
471                 </p>
472               </td>
473 </tr>
474 <tr>
475 <td>
476                 <p>
477                   RD: x = 0
478                 </p>
479               </td>
480 <td>
481                 <p>
482                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
483                   2.1:</em></span> Max = 2.85&#949; (Mean = 0.781&#949;))
484                 </p>
485               </td>
486 <td>
487                 <p>
488                   <span class="blue">Max = 2.79&#949; (Mean = 0.883&#949;)</span>
489                 </p>
490               </td>
491 <td>
492                 <p>
493                   <span class="blue">Max = 2.64&#949; (Mean = 0.894&#949;)</span>
494                 </p>
495               </td>
496 </tr>
497 </tbody>
498 </table></div>
499 </div>
500 <br class="table-break"><div class="table">
501 <a name="math_toolkit.ellint.ellint_carlson.table_ellint_rg"></a><p class="title"><b>Table&#160;8.60.&#160;Error rates for ellint_rg</b></p>
502 <div class="table-contents"><table class="table" summary="Error rates for ellint_rg">
503 <colgroup>
504 <col>
505 <col>
506 <col>
507 <col>
508 </colgroup>
509 <thead><tr>
510 <th>
511               </th>
512 <th>
513                 <p>
514                   GNU C++ version 7.1.0<br> linux<br> double
515                 </p>
516               </th>
517 <th>
518                 <p>
519                   GNU C++ version 7.1.0<br> linux<br> long double
520                 </p>
521               </th>
522 <th>
523                 <p>
524                   Microsoft Visual C++ version 14.1<br> Win32<br> double
525                 </p>
526               </th>
527 </tr></thead>
528 <tbody>
529 <tr>
530 <td>
531                 <p>
532                   RG: Random Data
533                 </p>
534               </td>
535 <td>
536                 <p>
537                   <span class="blue">Max = 0.983&#949; (Mean = 0.0172&#949;)</span><br>
538                   <br> (<span class="emphasis"><em>GSL 2.1:</em></span> Max = 0.983&#949; (Mean = 0.0172&#949;))
539                 </p>
540               </td>
541 <td>
542                 <p>
543                   <span class="blue">Max = 3.95&#949; (Mean = 0.951&#949;)</span>
544                 </p>
545               </td>
546 <td>
547                 <p>
548                   <span class="blue">Max = 3.65&#949; (Mean = 0.929&#949;)</span>
549                 </p>
550               </td>
551 </tr>
552 <tr>
553 <td>
554                 <p>
555                   RG: two values 0
556                 </p>
557               </td>
558 <td>
559                 <p>
560                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
561                   2.1:</em></span> Max = 0&#949; (Mean = 0&#949;))
562                 </p>
563               </td>
564 <td>
565                 <p>
566                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span>
567                 </p>
568               </td>
569 <td>
570                 <p>
571                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span>
572                 </p>
573               </td>
574 </tr>
575 <tr>
576 <td>
577                 <p>
578                   RG: All values the same or zero
579                 </p>
580               </td>
581 <td>
582                 <p>
583                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
584                   2.1:</em></span> Max = 0&#949; (Mean = 0&#949;))
585                 </p>
586               </td>
587 <td>
588                 <p>
589                   <span class="blue">Max = 0.992&#949; (Mean = 0.288&#949;)</span>
590                 </p>
591               </td>
592 <td>
593                 <p>
594                   <span class="blue">Max = 1.06&#949; (Mean = 0.348&#949;)</span>
595                 </p>
596               </td>
597 </tr>
598 <tr>
599 <td>
600                 <p>
601                   RG: two values the same
602                 </p>
603               </td>
604 <td>
605                 <p>
606                   <span class="blue">Max = 0.594&#949; (Mean = 0.0103&#949;)</span><br>
607                   <br> (<span class="emphasis"><em>GSL 2.1:</em></span> Max = 0.594&#949; (Mean = 0.0103&#949;))
608                 </p>
609               </td>
610 <td>
611                 <p>
612                   <span class="blue">Max = 1.51&#949; (Mean = 0.404&#949;)</span>
613                 </p>
614               </td>
615 <td>
616                 <p>
617                   <span class="blue">Max = 1.96&#949; (Mean = 0.374&#949;)</span>
618                 </p>
619               </td>
620 </tr>
621 <tr>
622 <td>
623                 <p>
624                   RG: one value zero
625                 </p>
626               </td>
627 <td>
628                 <p>
629                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
630                   2.1:</em></span> Max = 0&#949; (Mean = 0&#949;))
631                 </p>
632               </td>
633 <td>
634                 <p>
635                   <span class="blue">Max = 2.14&#949; (Mean = 0.722&#949;)</span>
636                 </p>
637               </td>
638 <td>
639                 <p>
640                   <span class="blue">Max = 1.96&#949; (Mean = 0.674&#949;)</span>
641                 </p>
642               </td>
643 </tr>
644 </tbody>
645 </table></div>
646 </div>
647 <br class="table-break"><div class="table">
648 <a name="math_toolkit.ellint.ellint_carlson.table_ellint_rf"></a><p class="title"><b>Table&#160;8.61.&#160;Error rates for ellint_rf</b></p>
649 <div class="table-contents"><table class="table" summary="Error rates for ellint_rf">
650 <colgroup>
651 <col>
652 <col>
653 <col>
654 <col>
655 </colgroup>
656 <thead><tr>
657 <th>
658               </th>
659 <th>
660                 <p>
661                   GNU C++ version 7.1.0<br> linux<br> double
662                 </p>
663               </th>
664 <th>
665                 <p>
666                   GNU C++ version 7.1.0<br> linux<br> long double
667                 </p>
668               </th>
669 <th>
670                 <p>
671                   Microsoft Visual C++ version 14.1<br> Win32<br> double
672                 </p>
673               </th>
674 </tr></thead>
675 <tbody>
676 <tr>
677 <td>
678                 <p>
679                   RF: Random data
680                 </p>
681               </td>
682 <td>
683                 <p>
684                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
685                   2.1:</em></span> Max = 2.73&#949; (Mean = 0.804&#949;))
686                 </p>
687               </td>
688 <td>
689                 <p>
690                   <span class="blue">Max = 2.54&#949; (Mean = 0.674&#949;)</span>
691                 </p>
692               </td>
693 <td>
694                 <p>
695                   <span class="blue">Max = 2.02&#949; (Mean = 0.677&#949;)</span>
696                 </p>
697               </td>
698 </tr>
699 <tr>
700 <td>
701                 <p>
702                   RF: x = y = z
703                 </p>
704               </td>
705 <td>
706                 <p>
707                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
708                   2.1:</em></span> Max = 0.999&#949; (Mean = 0.34&#949;))
709                 </p>
710               </td>
711 <td>
712                 <p>
713                   <span class="blue">Max = 0.991&#949; (Mean = 0.345&#949;)</span>
714                 </p>
715               </td>
716 <td>
717                 <p>
718                   <span class="blue">Max = 0.999&#949; (Mean = 0.34&#949;)</span>
719                 </p>
720               </td>
721 </tr>
722 <tr>
723 <td>
724                 <p>
725                   RF: x = y or y = z or x = z
726                 </p>
727               </td>
728 <td>
729                 <p>
730                   <span class="blue">Max = 0.536&#949; (Mean = 0.00658&#949;)</span><br>
731                   <br> (<span class="emphasis"><em>GSL 2.1:</em></span> Max = 2.89&#949; (Mean = 0.749&#949;))
732                 </p>
733               </td>
734 <td>
735                 <p>
736                   <span class="blue">Max = 1.95&#949; (Mean = 0.418&#949;)</span>
737                 </p>
738               </td>
739 <td>
740                 <p>
741                   <span class="blue">Max = 1.21&#949; (Mean = 0.394&#949;)</span>
742                 </p>
743               </td>
744 </tr>
745 <tr>
746 <td>
747                 <p>
748                   RF: x = 0, y = z
749                 </p>
750               </td>
751 <td>
752                 <p>
753                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
754                   2.1:</em></span> Max = 1.29&#949; (Mean = 0.527&#949;))
755                 </p>
756               </td>
757 <td>
758                 <p>
759                   <span class="blue">Max = 0.894&#949; (Mean = 0.338&#949;)</span>
760                 </p>
761               </td>
762 <td>
763                 <p>
764                   <span class="blue">Max = 0.999&#949; (Mean = 0.407&#949;)</span>
765                 </p>
766               </td>
767 </tr>
768 <tr>
769 <td>
770                 <p>
771                   RF: z = 0
772                 </p>
773               </td>
774 <td>
775                 <p>
776                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
777                   2.1:</em></span> Max = 2.54&#949; (Mean = 0.781&#949;))
778                 </p>
779               </td>
780 <td>
781                 <p>
782                   <span class="blue">Max = 1.7&#949; (Mean = 0.539&#949;)</span>
783                 </p>
784               </td>
785 <td>
786                 <p>
787                   <span class="blue">Max = 1.89&#949; (Mean = 0.587&#949;)</span>
788                 </p>
789               </td>
790 </tr>
791 </tbody>
792 </table></div>
793 </div>
794 <br class="table-break"><div class="table">
795 <a name="math_toolkit.ellint.ellint_carlson.table_ellint_rj"></a><p class="title"><b>Table&#160;8.62.&#160;Error rates for ellint_rj</b></p>
796 <div class="table-contents"><table class="table" summary="Error rates for ellint_rj">
797 <colgroup>
798 <col>
799 <col>
800 <col>
801 <col>
802 </colgroup>
803 <thead><tr>
804 <th>
805               </th>
806 <th>
807                 <p>
808                   GNU C++ version 7.1.0<br> linux<br> double
809                 </p>
810               </th>
811 <th>
812                 <p>
813                   GNU C++ version 7.1.0<br> linux<br> long double
814                 </p>
815               </th>
816 <th>
817                 <p>
818                   Microsoft Visual C++ version 14.1<br> Win32<br> double
819                 </p>
820               </th>
821 </tr></thead>
822 <tbody>
823 <tr>
824 <td>
825                 <p>
826                   RJ: Random data
827                 </p>
828               </td>
829 <td>
830                 <p>
831                   <span class="blue">Max = 0.52&#949; (Mean = 0.0184&#949;)</span><br> <br>
832                   (<span class="emphasis"><em>GSL 2.1:</em></span> Max = 3.57&#949; (Mean = 0.704&#949;) <a class="link" href="../logs_and_tables/logs.html#errors_GNU_C_version_7_1_0_linux_double_ellint_rj_GSL_2_1_RJ_Random_data">And
833                   other failures.</a>)
834                 </p>
835               </td>
836 <td>
837                 <p>
838                   <span class="blue">Max = 186&#949; (Mean = 6.67&#949;)</span>
839                 </p>
840               </td>
841 <td>
842                 <p>
843                   <span class="blue">Max = 215&#949; (Mean = 7.66&#949;)</span>
844                 </p>
845               </td>
846 </tr>
847 <tr>
848 <td>
849                 <p>
850                   RJ: 4 Equal Values
851                 </p>
852               </td>
853 <td>
854                 <p>
855                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
856                   2.1:</em></span> Max = 1.03&#949; (Mean = 0.418&#949;))
857                 </p>
858               </td>
859 <td>
860                 <p>
861                   <span class="blue">Max = 0.998&#949; (Mean = 0.387&#949;)</span>
862                 </p>
863               </td>
864 <td>
865                 <p>
866                   <span class="blue">Max = 1.03&#949; (Mean = 0.418&#949;)</span>
867                 </p>
868               </td>
869 </tr>
870 <tr>
871 <td>
872                 <p>
873                   RJ: 3 Equal Values
874                 </p>
875               </td>
876 <td>
877                 <p>
878                   <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
879                   2.1:</em></span> Max = 3.96&#949; (Mean = 1.06&#949;))
880                 </p>
881               </td>
882 <td>
883                 <p>
884                   <span class="blue">Max = 20.8&#949; (Mean = 0.986&#949;)</span>
885                 </p>
886               </td>
887 <td>
888                 <p>
889                   <span class="blue">Max = 39.9&#949; (Mean = 1.17&#949;)</span>
890                 </p>
891               </td>
892 </tr>
893 <tr>
894 <td>
895                 <p>
896                   RJ: 2 Equal Values
897                 </p>
898               </td>
899 <td>
900                 <p>
901                   <span class="blue">Max = 0.6&#949; (Mean = 0.0228&#949;)</span><br> <br>
902                   (<span class="emphasis"><em>GSL 2.1:</em></span> Max = 2.57&#949; (Mean = 0.754&#949;))
903                 </p>
904               </td>
905 <td>
906                 <p>
907                   <span class="blue">Max = 220&#949; (Mean = 6.64&#949;)</span>
908                 </p>
909               </td>
910 <td>
911                 <p>
912                   <span class="blue">Max = 214&#949; (Mean = 5.28&#949;)</span>
913                 </p>
914               </td>
915 </tr>
916 <tr>
917 <td>
918                 <p>
919                   RJ: Equal z and p
920                 </p>
921               </td>
922 <td>
923                 <p>
924                   <span class="blue">Max = 0.742&#949; (Mean = 0.0166&#949;)</span><br>
925                   <br> (<span class="emphasis"><em>GSL 2.1:</em></span> Max = 2.62&#949; (Mean = 0.699&#949;))
926                 </p>
927               </td>
928 <td>
929                 <p>
930                   <span class="blue">Max = 17.2&#949; (Mean = 1.16&#949;)</span>
931                 </p>
932               </td>
933 <td>
934                 <p>
935                   <span class="blue">Max = 16.1&#949; (Mean = 1.14&#949;)</span>
936                 </p>
937               </td>
938 </tr>
939 </tbody>
940 </table></div>
941 </div>
942 <br class="table-break"><h5>
943 <a name="math_toolkit.ellint.ellint_carlson.h4"></a>
944         <span class="phrase"><a name="math_toolkit.ellint.ellint_carlson.implementation"></a></span><a class="link" href="ellint_carlson.html#math_toolkit.ellint.ellint_carlson.implementation">Implementation</a>
945       </h5>
946 <p>
947         The key of Carlson's algorithm [<a class="link" href="ellint_intro.html#ellint_ref_carlson79">Carlson79</a>]
948         is the duplication theorem:
949       </p>
950 <div class="blockquote"><blockquote class="blockquote"><p>
951           <span class="inlinemediaobject"><img src="../../../equations/ellint13.svg"></span>
952
953         </p></blockquote></div>
954 <p>
955         By applying it repeatedly, <span class="emphasis"><em>x</em></span>, <span class="emphasis"><em>y</em></span>,
956         <span class="emphasis"><em>z</em></span> get closer and closer. When they are nearly equal,
957         the special case equation
958       </p>
959 <div class="blockquote"><blockquote class="blockquote"><p>
960           <span class="inlinemediaobject"><img src="../../../equations/ellint16.svg"></span>
961
962         </p></blockquote></div>
963 <p>
964         is used. More specifically, <span class="emphasis"><em>[R F]</em></span> is evaluated from
965         a Taylor series expansion to the fifth order. The calculations of the other
966         three integrals are analogous, except for R<sub>C</sub> which can be computed from elementary
967         functions.
968       </p>
969 <p>
970         For <span class="emphasis"><em>p &lt; 0</em></span> in <span class="emphasis"><em>R<sub>J</sub>(x, y, z, p)</em></span>
971         and <span class="emphasis"><em>y &lt; 0</em></span> in <span class="emphasis"><em>R<sub>C</sub>(x, y)</em></span>, the integrals
972         are singular and their <a href="http://mathworld.wolfram.com/CauchyPrincipalValue.html" target="_top">Cauchy
973         principal values</a> are returned via the relations:
974       </p>
975 <div class="blockquote"><blockquote class="blockquote"><p>
976           <span class="inlinemediaobject"><img src="../../../equations/ellint17.svg"></span>
977
978         </p></blockquote></div>
979 <div class="blockquote"><blockquote class="blockquote"><p>
980           <span class="inlinemediaobject"><img src="../../../equations/ellint18.svg"></span>
981
982         </p></blockquote></div>
983 </div>
984 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
985 <td align="left"></td>
986 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2019 Nikhar
987       Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos,
988       Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan
989       R&#229;de, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg,
990       Daryle Walker and Xiaogang Zhang<p>
991         Distributed under the Boost Software License, Version 1.0. (See accompanying
992         file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
993       </p>
994 </div></td>
995 </tr></table>
996 <hr>
997 <div class="spirit-nav">
998 <a accesskey="p" href="ellint_intro.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ellint_1.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
999 </div>
1000 </body>
1001 </html>