]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/math/doc/html/math_toolkit/ellint/ellint_carlson.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / math / doc / html / math_toolkit / ellint / ellint_carlson.html
CommitLineData
7c673cae
FG
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>