]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/math/doc/html/math_toolkit/ellint/ellint_carlson.html
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / 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.77.1">
7 <link rel="home" href="../../index.html" title="Math Toolkit 2.5.1">
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;15.&#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;15.&#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;15.&#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;15.&#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;15.&#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;15.&#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;15.&#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;15.&#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;15.&#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;15.&#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 <p>
104 <span class="inlinemediaobject"><img src="../../../graphs/ellint_carlson.svg" align="middle"></span>
105 </p>
106 <p>
107 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
108 type calculation rules</em></span></a> when the arguments are of different
109 types: otherwise the return is the same type as the arguments.
110 </p>
111 <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>
112 <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>
113
114 <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;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
115 <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;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
116 </pre>
117 <p>
118 Returns Carlson's Elliptic Integral R<sub>F</sub>:
119 </p>
120 <p>
121 <span class="inlinemediaobject"><img src="../../../equations/ellint9.svg"></span>
122 </p>
123 <p>
124 Requires that all of the arguments are non-negative, and at most one may
125 be zero. Otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
126 </p>
127 <p>
128 The final <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
129 be used to control the behaviour of the function: how it handles errors,
130 what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">policy
131 documentation for more details</a>.
132 </p>
133 <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>
134 <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>
135
136 <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;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
137 <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;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
138 </pre>
139 <p>
140 Returns Carlson's elliptic integral R<sub>D</sub>:
141 </p>
142 <p>
143 <span class="inlinemediaobject"><img src="../../../equations/ellint10.svg"></span>
144 </p>
145 <p>
146 Requires that x and y are non-negative, with at most one of them zero, and
147 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>.
148 </p>
149 <p>
150 The final <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
151 be used to control the behaviour of the function: how it handles errors,
152 what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">policy
153 documentation for more details</a>.
154 </p>
155 <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>
156 <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>
157
158 <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;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><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> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
160 </pre>
161 <p>
162 Returns Carlson's elliptic integral R<sub>J</sub>:
163 </p>
164 <p>
165 <span class="inlinemediaobject"><img src="../../../equations/ellint11.svg"></span>
166 </p>
167 <p>
168 Requires that x, y and z are non-negative, with at most one of them zero,
169 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>.
170 </p>
171 <p>
172 The final <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
173 be used to control the behaviour of the function: how it handles errors,
174 what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">policy
175 documentation for more details</a>.
176 </p>
177 <p>
178 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
179 principal value</a> using the relation:
180 </p>
181 <p>
182 <span class="inlinemediaobject"><img src="../../../equations/ellint17.svg"></span>
183 </p>
184 <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>
185 <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>
186
187 <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;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
188 <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;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
189 </pre>
190 <p>
191 Returns Carlson's elliptic integral R<sub>C</sub>:
192 </p>
193 <p>
194 <span class="inlinemediaobject"><img src="../../../equations/ellint12.svg"></span>
195 </p>
196 <p>
197 Requires that <span class="emphasis"><em>x &gt; 0</em></span> and that <span class="emphasis"><em>y != 0</em></span>.
198 Otherwise returns the result of <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
199 </p>
200 <p>
201 The final <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
202 be used to control the behaviour of the function: how it handles errors,
203 what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">policy
204 documentation for more details</a>.
205 </p>
206 <p>
207 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
208 principal value</a> using the relation:
209 </p>
210 <p>
211 <span class="inlinemediaobject"><img src="../../../equations/ellint18.svg"></span>
212 </p>
213 <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>
214 <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>
215
216 <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;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
217 <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;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;)</span>
218 </pre>
219 <p>
220 Returns Carlson's elliptic integral R<sub>G</sub>:
221 </p>
222 <p>
223 <span class="inlinemediaobject"><img src="../../../equations/ellint27.svg"></span>
224 </p>
225 <p>
226 Requires that x and y are non-negative, otherwise returns the result of
227 <a class="link" href="../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
228 </p>
229 <p>
230 The final <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
231 be used to control the behaviour of the function: how it handles errors,
232 what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">policy
233 documentation for more details</a>.
234 </p>
235 <h5>
236 <a name="math_toolkit.ellint.ellint_carlson.h2"></a>
237 <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>
238 </h5>
239 <p>
240 There are two sets of tests.
241 </p>
242 <p>
243 Spot tests compare selected values with test data given in:
244 </p>
245 <div class="blockquote"><blockquote class="blockquote"><p>
246 B. C. Carlson, <span class="emphasis"><em><a href="http://arxiv.org/abs/math.CA/9409227" target="_top">Numerical
247 computation of real or complex elliptic integrals</a></em></span>. Numerical
248 Algorithms, Volume 10, Number 1 / March, 1995, pp 13-26.
249 </p></blockquote></div>
250 <p>
251 Random test data generated using NTL::RR at 1000-bit precision and our implementation
252 checks for rounding-errors and/or regressions.
253 </p>
254 <p>
255 There are also sanity checks that use the inter-relations between the integrals
256 to verify their correctness: see the above Carlson paper for details.
257 </p>
258 <h5>
259 <a name="math_toolkit.ellint.ellint_carlson.h3"></a>
260 <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>
261 </h5>
262 <p>
263 These functions are computed using only basic arithmetic operations, so there
264 isn't much variation in accuracy over differing platforms. Note that only
265 results for the widest floating-point type on the system are given as narrower
266 types have <a class="link" href="../relative_error.html#math_toolkit.relative_error.zero_error">effectively
267 zero error</a>. All values are relative errors in units of epsilon.
268 </p>
269 <div class="table">
270 <a name="math_toolkit.ellint.ellint_carlson.table_ellint_rc"></a><p class="title"><b>Table&#160;6.58.&#160;Error rates for ellint_rc</b></p>
271 <div class="table-contents"><table class="table" summary="Error rates for ellint_rc">
272 <colgroup>
273 <col>
274 <col>
275 <col>
276 <col>
277 <col>
278 </colgroup>
279 <thead><tr>
280 <th>
281 </th>
282 <th>
283 <p>
284 Microsoft Visual C++ version 12.0<br> Win32<br> double
285 </p>
286 </th>
287 <th>
288 <p>
289 GNU C++ version 5.1.0<br> linux<br> double
290 </p>
291 </th>
292 <th>
293 <p>
294 GNU C++ version 5.1.0<br> linux<br> long double
295 </p>
296 </th>
297 <th>
298 <p>
299 Sun compiler version 0x5130<br> Sun Solaris<br> long double
300 </p>
301 </th>
302 </tr></thead>
303 <tbody><tr>
304 <td>
305 <p>
306 RC: Random data
307 </p>
308 </td>
309 <td>
310 <p>
311 <span class="blue">Max = 0.962&#949; (Mean = 0.407&#949;)</span>
312 </p>
313 </td>
314 <td>
315 <p>
316 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
317 1.16:</em></span> Max = 2.4&#949; (Mean = 0.624&#949;))
318 </p>
319 </td>
320 <td>
321 <p>
322 <span class="blue">Max = 0.995&#949; (Mean = 0.433&#949;)</span>
323 </p>
324 </td>
325 <td>
326 <p>
327 <span class="blue">Max = 0.995&#949; (Mean = 0.438&#949;)</span>
328 </p>
329 </td>
330 </tr></tbody>
331 </table></div>
332 </div>
333 <br class="table-break"><div class="table">
334 <a name="math_toolkit.ellint.ellint_carlson.table_ellint_rd"></a><p class="title"><b>Table&#160;6.59.&#160;Error rates for ellint_rd</b></p>
335 <div class="table-contents"><table class="table" summary="Error rates for ellint_rd">
336 <colgroup>
337 <col>
338 <col>
339 <col>
340 <col>
341 <col>
342 </colgroup>
343 <thead><tr>
344 <th>
345 </th>
346 <th>
347 <p>
348 Microsoft Visual C++ version 12.0<br> Win32<br> double
349 </p>
350 </th>
351 <th>
352 <p>
353 GNU C++ version 5.1.0<br> linux<br> double
354 </p>
355 </th>
356 <th>
357 <p>
358 GNU C++ version 5.1.0<br> linux<br> long double
359 </p>
360 </th>
361 <th>
362 <p>
363 Sun compiler version 0x5130<br> Sun Solaris<br> long double
364 </p>
365 </th>
366 </tr></thead>
367 <tbody>
368 <tr>
369 <td>
370 <p>
371 RD: Random data
372 </p>
373 </td>
374 <td>
375 <p>
376 <span class="blue">Max = 2.16&#949; (Mean = 0.803&#949;)</span>
377 </p>
378 </td>
379 <td>
380 <p>
381 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
382 1.16:</em></span> Max = 2.59&#949; (Mean = 0.878&#949;))
383 </p>
384 </td>
385 <td>
386 <p>
387 <span class="blue">Max = 2.73&#949; (Mean = 0.831&#949;)</span>
388 </p>
389 </td>
390 <td>
391 <p>
392 <span class="blue">Max = 2.73&#949; (Mean = 0.829&#949;)</span>
393 </p>
394 </td>
395 </tr>
396 <tr>
397 <td>
398 <p>
399 RD: y = z
400 </p>
401 </td>
402 <td>
403 <p>
404 <span class="blue">Max = 16.5&#949; (Mean = 0.843&#949;)</span>
405 </p>
406 </td>
407 <td>
408 <p>
409 <span class="blue">Max = 0.896&#949; (Mean = 0.022&#949;)</span><br> <br>
410 (<span class="emphasis"><em>GSL 1.16:</em></span> Max = 2.88&#949; (Mean = 0.839&#949;))
411 </p>
412 </td>
413 <td>
414 <p>
415 <span class="blue">Max = 2.65&#949; (Mean = 0.82&#949;)</span>
416 </p>
417 </td>
418 <td>
419 <p>
420 <span class="blue">Max = 2.65&#949; (Mean = 0.819&#949;)</span>
421 </p>
422 </td>
423 </tr>
424 <tr>
425 <td>
426 <p>
427 RD: x = y
428 </p>
429 </td>
430 <td>
431 <p>
432 <span class="blue">Max = 3.51&#949; (Mean = 0.816&#949;)</span>
433 </p>
434 </td>
435 <td>
436 <p>
437 <span class="blue">Max = 0.824&#949; (Mean = 0.0272&#949;)</span><br>
438 <br> (<span class="emphasis"><em>GSL 1.16:</em></span> Max = 3.74&#949; (Mean = 0.84&#949;))
439 </p>
440 </td>
441 <td>
442 <p>
443 <span class="blue">Max = 2.85&#949; (Mean = 0.865&#949;)</span>
444 </p>
445 </td>
446 <td>
447 <p>
448 <span class="blue">Max = 2.85&#949; (Mean = 0.865&#949;)</span>
449 </p>
450 </td>
451 </tr>
452 <tr>
453 <td>
454 <p>
455 RD: x = 0, y = z
456 </p>
457 </td>
458 <td>
459 <p>
460 <span class="blue">Max = 1.16&#949; (Mean = 0.493&#949;)</span>
461 </p>
462 </td>
463 <td>
464 <p>
465 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
466 1.16:</em></span> Max = 2&#949; (Mean = 0.656&#949;))
467 </p>
468 </td>
469 <td>
470 <p>
471 <span class="blue">Max = 1.19&#949; (Mean = 0.522&#949;)</span>
472 </p>
473 </td>
474 <td>
475 <p>
476 <span class="blue">Max = 1.19&#949; (Mean = 0.522&#949;)</span>
477 </p>
478 </td>
479 </tr>
480 <tr>
481 <td>
482 <p>
483 RD: x = y = z
484 </p>
485 </td>
486 <td>
487 <p>
488 <span class="blue">Max = 1.03&#949; (Mean = 0.418&#949;)</span>
489 </p>
490 </td>
491 <td>
492 <p>
493 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
494 1.16:</em></span> Max = 1.03&#949; (Mean = 0.418&#949;))
495 </p>
496 </td>
497 <td>
498 <p>
499 <span class="blue">Max = 0.998&#949; (Mean = 0.387&#949;)</span>
500 </p>
501 </td>
502 <td>
503 <p>
504 <span class="blue">Max = 0.998&#949; (Mean = 0.387&#949;)</span>
505 </p>
506 </td>
507 </tr>
508 <tr>
509 <td>
510 <p>
511 RD: x = 0
512 </p>
513 </td>
514 <td>
515 <p>
516 <span class="blue">Max = 2.64&#949; (Mean = 0.894&#949;)</span>
517 </p>
518 </td>
519 <td>
520 <p>
521 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
522 1.16:</em></span> Max = 2.85&#949; (Mean = 0.781&#949;))
523 </p>
524 </td>
525 <td>
526 <p>
527 <span class="blue">Max = 2.79&#949; (Mean = 0.883&#949;)</span>
528 </p>
529 </td>
530 <td>
531 <p>
532 <span class="blue">Max = 2.79&#949; (Mean = 0.883&#949;)</span>
533 </p>
534 </td>
535 </tr>
536 </tbody>
537 </table></div>
538 </div>
539 <br class="table-break"><div class="table">
540 <a name="math_toolkit.ellint.ellint_carlson.table_ellint_rg"></a><p class="title"><b>Table&#160;6.60.&#160;Error rates for ellint_rg</b></p>
541 <div class="table-contents"><table class="table" summary="Error rates for ellint_rg">
542 <colgroup>
543 <col>
544 <col>
545 <col>
546 <col>
547 <col>
548 </colgroup>
549 <thead><tr>
550 <th>
551 </th>
552 <th>
553 <p>
554 Microsoft Visual C++ version 12.0<br> Win32<br> double
555 </p>
556 </th>
557 <th>
558 <p>
559 GNU C++ version 5.1.0<br> linux<br> double
560 </p>
561 </th>
562 <th>
563 <p>
564 GNU C++ version 5.1.0<br> linux<br> long double
565 </p>
566 </th>
567 <th>
568 <p>
569 Sun compiler version 0x5130<br> Sun Solaris<br> long double
570 </p>
571 </th>
572 </tr></thead>
573 <tbody>
574 <tr>
575 <td>
576 <p>
577 RG: Random Data
578 </p>
579 </td>
580 <td>
581 <p>
582 <span class="blue">Max = 3.65&#949; (Mean = 0.929&#949;)</span>
583 </p>
584 </td>
585 <td>
586 <p>
587 <span class="blue">Max = 0.983&#949; (Mean = 0.0172&#949;)</span><br>
588 <br> (<span class="emphasis"><em>GSL 1.16:</em></span> Max = 0.983&#949; (Mean = 0.0172&#949;))
589 </p>
590 </td>
591 <td>
592 <p>
593 <span class="blue">Max = 3.95&#949; (Mean = 0.951&#949;)</span>
594 </p>
595 </td>
596 <td>
597 <p>
598 <span class="blue">Max = 3.95&#949; (Mean = 0.951&#949;)</span>
599 </p>
600 </td>
601 </tr>
602 <tr>
603 <td>
604 <p>
605 RG: two values 0
606 </p>
607 </td>
608 <td>
609 <p>
610 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span>
611 </p>
612 </td>
613 <td>
614 <p>
615 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
616 1.16:</em></span> Max = 0&#949; (Mean = 0&#949;))
617 </p>
618 </td>
619 <td>
620 <p>
621 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span>
622 </p>
623 </td>
624 <td>
625 <p>
626 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span>
627 </p>
628 </td>
629 </tr>
630 <tr>
631 <td>
632 <p>
633 RG: All values the same or zero
634 </p>
635 </td>
636 <td>
637 <p>
638 <span class="blue">Max = 1.06&#949; (Mean = 0.348&#949;)</span>
639 </p>
640 </td>
641 <td>
642 <p>
643 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
644 1.16:</em></span> Max = 0&#949; (Mean = 0&#949;))
645 </p>
646 </td>
647 <td>
648 <p>
649 <span class="blue">Max = 0.992&#949; (Mean = 0.288&#949;)</span>
650 </p>
651 </td>
652 <td>
653 <p>
654 <span class="blue">Max = 0.992&#949; (Mean = 0.288&#949;)</span>
655 </p>
656 </td>
657 </tr>
658 <tr>
659 <td>
660 <p>
661 RG: two values the same
662 </p>
663 </td>
664 <td>
665 <p>
666 <span class="blue">Max = 1.96&#949; (Mean = 0.374&#949;)</span>
667 </p>
668 </td>
669 <td>
670 <p>
671 <span class="blue">Max = 0.594&#949; (Mean = 0.0103&#949;)</span><br>
672 <br> (<span class="emphasis"><em>GSL 1.16:</em></span> Max = 0.594&#949; (Mean = 0.0103&#949;))
673 </p>
674 </td>
675 <td>
676 <p>
677 <span class="blue">Max = 1.51&#949; (Mean = 0.404&#949;)</span>
678 </p>
679 </td>
680 <td>
681 <p>
682 <span class="blue">Max = 1.51&#949; (Mean = 0.404&#949;)</span>
683 </p>
684 </td>
685 </tr>
686 <tr>
687 <td>
688 <p>
689 RG: one value zero
690 </p>
691 </td>
692 <td>
693 <p>
694 <span class="blue">Max = 1.96&#949; (Mean = 0.674&#949;)</span>
695 </p>
696 </td>
697 <td>
698 <p>
699 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
700 1.16:</em></span> Max = 0&#949; (Mean = 0&#949;))
701 </p>
702 </td>
703 <td>
704 <p>
705 <span class="blue">Max = 2.14&#949; (Mean = 0.722&#949;)</span>
706 </p>
707 </td>
708 <td>
709 <p>
710 <span class="blue">Max = 2.14&#949; (Mean = 0.722&#949;)</span>
711 </p>
712 </td>
713 </tr>
714 </tbody>
715 </table></div>
716 </div>
717 <br class="table-break"><div class="table">
718 <a name="math_toolkit.ellint.ellint_carlson.table_ellint_rf"></a><p class="title"><b>Table&#160;6.61.&#160;Error rates for ellint_rf</b></p>
719 <div class="table-contents"><table class="table" summary="Error rates for ellint_rf">
720 <colgroup>
721 <col>
722 <col>
723 <col>
724 <col>
725 <col>
726 </colgroup>
727 <thead><tr>
728 <th>
729 </th>
730 <th>
731 <p>
732 Microsoft Visual C++ version 12.0<br> Win32<br> double
733 </p>
734 </th>
735 <th>
736 <p>
737 GNU C++ version 5.1.0<br> linux<br> double
738 </p>
739 </th>
740 <th>
741 <p>
742 GNU C++ version 5.1.0<br> linux<br> long double
743 </p>
744 </th>
745 <th>
746 <p>
747 Sun compiler version 0x5130<br> Sun Solaris<br> long double
748 </p>
749 </th>
750 </tr></thead>
751 <tbody>
752 <tr>
753 <td>
754 <p>
755 RF: Random data
756 </p>
757 </td>
758 <td>
759 <p>
760 <span class="blue">Max = 2.02&#949; (Mean = 0.677&#949;)</span>
761 </p>
762 </td>
763 <td>
764 <p>
765 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
766 1.16:</em></span> Max = 2.73&#949; (Mean = 0.804&#949;))
767 </p>
768 </td>
769 <td>
770 <p>
771 <span class="blue">Max = 2.54&#949; (Mean = 0.674&#949;)</span>
772 </p>
773 </td>
774 <td>
775 <p>
776 <span class="blue">Max = 2.54&#949; (Mean = 0.674&#949;)</span>
777 </p>
778 </td>
779 </tr>
780 <tr>
781 <td>
782 <p>
783 RF: x = y = z
784 </p>
785 </td>
786 <td>
787 <p>
788 <span class="blue">Max = 0.999&#949; (Mean = 0.335&#949;)</span>
789 </p>
790 </td>
791 <td>
792 <p>
793 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
794 1.16:</em></span> Max = 0.999&#949; (Mean = 0.34&#949;))
795 </p>
796 </td>
797 <td>
798 <p>
799 <span class="blue">Max = 0.991&#949; (Mean = 0.345&#949;)</span>
800 </p>
801 </td>
802 <td>
803 <p>
804 <span class="blue">Max = 0.991&#949; (Mean = 0.345&#949;)</span>
805 </p>
806 </td>
807 </tr>
808 <tr>
809 <td>
810 <p>
811 RF: x = y or y = z or x = z
812 </p>
813 </td>
814 <td>
815 <p>
816 <span class="blue">Max = 1.21&#949; (Mean = 0.394&#949;)</span>
817 </p>
818 </td>
819 <td>
820 <p>
821 <span class="blue">Max = 0.536&#949; (Mean = 0.00658&#949;)</span><br>
822 <br> (<span class="emphasis"><em>GSL 1.16:</em></span> Max = 2.89&#949; (Mean = 0.749&#949;))
823 </p>
824 </td>
825 <td>
826 <p>
827 <span class="blue">Max = 1.95&#949; (Mean = 0.418&#949;)</span>
828 </p>
829 </td>
830 <td>
831 <p>
832 <span class="blue">Max = 1.57&#949; (Mean = 0.418&#949;)</span>
833 </p>
834 </td>
835 </tr>
836 <tr>
837 <td>
838 <p>
839 RF: x = 0, y = z
840 </p>
841 </td>
842 <td>
843 <p>
844 <span class="blue">Max = 0.999&#949; (Mean = 0.407&#949;)</span>
845 </p>
846 </td>
847 <td>
848 <p>
849 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
850 1.16:</em></span> Max = 1.29&#949; (Mean = 0.527&#949;))
851 </p>
852 </td>
853 <td>
854 <p>
855 <span class="blue">Max = 0.894&#949; (Mean = 0.338&#949;)</span>
856 </p>
857 </td>
858 <td>
859 <p>
860 <span class="blue">Max = 0.894&#949; (Mean = 0.338&#949;)</span>
861 </p>
862 </td>
863 </tr>
864 <tr>
865 <td>
866 <p>
867 RF: z = 0
868 </p>
869 </td>
870 <td>
871 <p>
872 <span class="blue">Max = 1.89&#949; (Mean = 0.587&#949;)</span>
873 </p>
874 </td>
875 <td>
876 <p>
877 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
878 1.16:</em></span> Max = 2.54&#949; (Mean = 0.781&#949;))
879 </p>
880 </td>
881 <td>
882 <p>
883 <span class="blue">Max = 1.7&#949; (Mean = 0.539&#949;)</span>
884 </p>
885 </td>
886 <td>
887 <p>
888 <span class="blue">Max = 1.7&#949; (Mean = 0.539&#949;)</span>
889 </p>
890 </td>
891 </tr>
892 </tbody>
893 </table></div>
894 </div>
895 <br class="table-break"><div class="table">
896 <a name="math_toolkit.ellint.ellint_carlson.table_ellint_rj"></a><p class="title"><b>Table&#160;6.62.&#160;Error rates for ellint_rj</b></p>
897 <div class="table-contents"><table class="table" summary="Error rates for ellint_rj">
898 <colgroup>
899 <col>
900 <col>
901 <col>
902 <col>
903 <col>
904 </colgroup>
905 <thead><tr>
906 <th>
907 </th>
908 <th>
909 <p>
910 Microsoft Visual C++ version 12.0<br> Win32<br> double
911 </p>
912 </th>
913 <th>
914 <p>
915 GNU C++ version 5.1.0<br> linux<br> double
916 </p>
917 </th>
918 <th>
919 <p>
920 GNU C++ version 5.1.0<br> linux<br> long double
921 </p>
922 </th>
923 <th>
924 <p>
925 Sun compiler version 0x5130<br> Sun Solaris<br> long double
926 </p>
927 </th>
928 </tr></thead>
929 <tbody>
930 <tr>
931 <td>
932 <p>
933 RJ: Random data
934 </p>
935 </td>
936 <td>
937 <p>
938 <span class="blue">Max = 119&#949; (Mean = 4.32&#949;)</span>
939 </p>
940 </td>
941 <td>
942 <p>
943 <span class="blue">Max = 0.52&#949; (Mean = 0.0184&#949;)</span><br> <br>
944 (<span class="emphasis"><em>GSL 1.16:</em></span> Max = 3.57&#949; (Mean = 0.704&#949;) <a class="link" href="../logs_and_tables/logs.html#errors_GNU_C_version_5_1_0_linux_double_ellint_rj_GSL_1_16_RJ_Random_data">And
945 other failures.</a>)
946 </p>
947 </td>
948 <td>
949 <p>
950 <span class="blue">Max = 186&#949; (Mean = 6.67&#949;)</span>
951 </p>
952 </td>
953 <td>
954 <p>
955 <span class="blue">Max = 186&#949; (Mean = 6.7&#949;)</span>
956 </p>
957 </td>
958 </tr>
959 <tr>
960 <td>
961 <p>
962 RJ: 4 Equal Values
963 </p>
964 </td>
965 <td>
966 <p>
967 <span class="blue">Max = 1.03&#949; (Mean = 0.418&#949;)</span>
968 </p>
969 </td>
970 <td>
971 <p>
972 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
973 1.16:</em></span> Max = 1.03&#949; (Mean = 0.418&#949;))
974 </p>
975 </td>
976 <td>
977 <p>
978 <span class="blue">Max = 0.998&#949; (Mean = 0.387&#949;)</span>
979 </p>
980 </td>
981 <td>
982 <p>
983 <span class="blue">Max = 0.998&#949; (Mean = 0.387&#949;)</span>
984 </p>
985 </td>
986 </tr>
987 <tr>
988 <td>
989 <p>
990 RJ: 3 Equal Values
991 </p>
992 </td>
993 <td>
994 <p>
995 <span class="blue">Max = 39.9&#949; (Mean = 1.12&#949;)</span>
996 </p>
997 </td>
998 <td>
999 <p>
1000 <span class="blue">Max = 0&#949; (Mean = 0&#949;)</span><br> <br> (<span class="emphasis"><em>GSL
1001 1.16:</em></span> Max = 3.96&#949; (Mean = 1.06&#949;))
1002 </p>
1003 </td>
1004 <td>
1005 <p>
1006 <span class="blue">Max = 20.8&#949; (Mean = 0.986&#949;)</span>
1007 </p>
1008 </td>
1009 <td>
1010 <p>
1011 <span class="blue">Max = 18.2&#949; (Mean = 0.917&#949;)</span>
1012 </p>
1013 </td>
1014 </tr>
1015 <tr>
1016 <td>
1017 <p>
1018 RJ: 2 Equal Values
1019 </p>
1020 </td>
1021 <td>
1022 <p>
1023 <span class="blue">Max = 214&#949; (Mean = 5.05&#949;)</span>
1024 </p>
1025 </td>
1026 <td>
1027 <p>
1028 <span class="blue">Max = 0.6&#949; (Mean = 0.0228&#949;)</span><br> <br>
1029 (<span class="emphasis"><em>GSL 1.16:</em></span> Max = 2.57&#949; (Mean = 0.754&#949;))
1030 </p>
1031 </td>
1032 <td>
1033 <p>
1034 <span class="blue">Max = 220&#949; (Mean = 6.64&#949;)</span>
1035 </p>
1036 </td>
1037 <td>
1038 <p>
1039 <span class="blue">Max = 135&#949; (Mean = 5.3&#949;)</span>
1040 </p>
1041 </td>
1042 </tr>
1043 <tr>
1044 <td>
1045 <p>
1046 RJ: Equal z and p
1047 </p>
1048 </td>
1049 <td>
1050 <p>
1051 <span class="blue">Max = 15.4&#949; (Mean = 1.05&#949;)</span>
1052 </p>
1053 </td>
1054 <td>
1055 <p>
1056 <span class="blue">Max = 0.742&#949; (Mean = 0.0166&#949;)</span><br>
1057 <br> (<span class="emphasis"><em>GSL 1.16:</em></span> Max = 2.62&#949; (Mean = 0.699&#949;))
1058 </p>
1059 </td>
1060 <td>
1061 <p>
1062 <span class="blue">Max = 17.2&#949; (Mean = 1.16&#949;)</span>
1063 </p>
1064 </td>
1065 <td>
1066 <p>
1067 <span class="blue">Max = 16.6&#949; (Mean = 1.15&#949;)</span>
1068 </p>
1069 </td>
1070 </tr>
1071 </tbody>
1072 </table></div>
1073 </div>
1074 <br class="table-break"><h5>
1075 <a name="math_toolkit.ellint.ellint_carlson.h4"></a>
1076 <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>
1077 </h5>
1078 <p>
1079 The key of Carlson's algorithm [<a class="link" href="ellint_intro.html#ellint_ref_carlson79">Carlson79</a>]
1080 is the duplication theorem:
1081 </p>
1082 <p>
1083 <span class="inlinemediaobject"><img src="../../../equations/ellint13.svg"></span>
1084 </p>
1085 <p>
1086 By applying it repeatedly, <span class="emphasis"><em>x</em></span>, <span class="emphasis"><em>y</em></span>,
1087 <span class="emphasis"><em>z</em></span> get closer and closer. When they are nearly equal,
1088 the special case equation
1089 </p>
1090 <p>
1091 <span class="inlinemediaobject"><img src="../../../equations/ellint16.svg"></span>
1092 </p>
1093 <p>
1094 is used. More specifically, <span class="emphasis"><em>[R F]</em></span> is evaluated from
1095 a Taylor series expansion to the fifth order. The calculations of the other
1096 three integrals are analogous, except for R<sub>C</sub> which can be computed from elementary
1097 functions.
1098 </p>
1099 <p>
1100 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>
1101 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
1102 are singular and their <a href="http://mathworld.wolfram.com/CauchyPrincipalValue.html" target="_top">Cauchy
1103 principal values</a> are returned via the relations:
1104 </p>
1105 <p>
1106 <span class="inlinemediaobject"><img src="../../../equations/ellint17.svg"></span>
1107 </p>
1108 <p>
1109 <span class="inlinemediaobject"><img src="../../../equations/ellint18.svg"></span>
1110 </p>
1111 </div>
1112 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
1113 <td align="left"></td>
1114 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012-2014 Nikhar Agrawal,
1115 Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, Hubert
1116 Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Johan R&#229;de, Gautam Sewani,
1117 Benjamin Sobotta, Thijs van den Berg, Daryle Walker and Xiaogang Zhang<p>
1118 Distributed under the Boost Software License, Version 1.0. (See accompanying
1119 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>)
1120 </p>
1121 </div></td>
1122 </tr></table>
1123 <hr>
1124 <div class="spirit-nav">
1125 <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>
1126 </div>
1127 </body>
1128 </html>