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">
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>
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>
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
29 </h3></div></div></div>
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>
34 <pre class=
"programlisting"><span class=
"preprocessor">#include
</span> <span class=
"special"><</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">></span>
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>
38 <span class=
"keyword">template
</span> <span class=
"special"><</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>
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>
41 <span class=
"keyword">template
</span> <span class=
"special"><</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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">></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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">&)
</span>
44 <span class=
"special">}}
</span> <span class=
"comment">// namespaces
</span>
46 <pre class=
"programlisting"><span class=
"preprocessor">#include
</span> <span class=
"special"><</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">></span>
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>
50 <span class=
"keyword">template
</span> <span class=
"special"><</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>
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>
53 <span class=
"keyword">template
</span> <span class=
"special"><</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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">></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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">&)
</span>
56 <span class=
"special">}}
</span> <span class=
"comment">// namespaces
</span>
58 <pre class=
"programlisting"><span class=
"preprocessor">#include
</span> <span class=
"special"><</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">></span>
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>
62 <span class=
"keyword">template
</span> <span class=
"special"><</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>
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>
65 <span class=
"keyword">template
</span> <span class=
"special"><</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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">></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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">&)
</span>
68 <span class=
"special">}}
</span> <span class=
"comment">// namespaces
</span>
70 <pre class=
"programlisting"><span class=
"preprocessor">#include
</span> <span class=
"special"><</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">></span>
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>
74 <span class=
"keyword">template
</span> <span class=
"special"><</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>
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>
77 <span class=
"keyword">template
</span> <span class=
"special"><</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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">></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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">&)
</span>
80 <span class=
"special">}}
</span> <span class=
"comment">// namespaces
</span>
82 <pre class=
"programlisting"><span class=
"preprocessor">#include
</span> <span class=
"special"><</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">></span>
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>
86 <span class=
"keyword">template
</span> <span class=
"special"><</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>
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>
89 <span class=
"keyword">template
</span> <span class=
"special"><</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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">></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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">&)
</span>
92 <span class=
"special">}}
</span> <span class=
"comment">// namespaces
</span>
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>
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:
104 <span class=
"inlinemediaobject"><img src=
"../../../graphs/ellint_carlson.svg" align=
"middle"></span>
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.
111 <pre class=
"programlisting"><span class=
"keyword">template
</span> <span class=
"special"><</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>
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>
114 <span class=
"keyword">template
</span> <span class=
"special"><</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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">></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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">&)
</span>
118 Returns Carlson's Elliptic Integral R
<sub>F
</sub>:
121 <span class=
"inlinemediaobject"><img src=
"../../../equations/ellint9.svg"></span>
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>.
128 The final
<a class=
"link" href=
"../../policy.html" title=
"Chapter 15. 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 15. Policies: Controlling Precision, Error Handling etc">policy
131 documentation for more details
</a>.
133 <pre class=
"programlisting"><span class=
"keyword">template
</span> <span class=
"special"><</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>
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>
136 <span class=
"keyword">template
</span> <span class=
"special"><</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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">></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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">&)
</span>
140 Returns Carlson's elliptic integral R
<sub>D
</sub>:
143 <span class=
"inlinemediaobject"><img src=
"../../../equations/ellint10.svg"></span>
146 Requires that x and y are non-negative, with at most one of them zero, and
147 that z
>=
0. Otherwise returns the result of
<a class=
"link" href=
"../error_handling.html#math_toolkit.error_handling.domain_error">domain_error
</a>.
150 The final
<a class=
"link" href=
"../../policy.html" title=
"Chapter 15. 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 15. Policies: Controlling Precision, Error Handling etc">policy
153 documentation for more details
</a>.
155 <pre class=
"programlisting"><span class=
"keyword">template
</span> <span class=
"special"><</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>
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>
158 <span class=
"keyword">template
</span> <span class=
"special"><</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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">></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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">&)
</span>
162 Returns Carlson's elliptic integral R
<sub>J
</sub>:
165 <span class=
"inlinemediaobject"><img src=
"../../../equations/ellint11.svg"></span>
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>.
172 The final
<a class=
"link" href=
"../../policy.html" title=
"Chapter 15. 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 15. Policies: Controlling Precision, Error Handling etc">policy
175 documentation for more details
</a>.
178 When
<span class=
"emphasis"><em>p
< 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:
182 <span class=
"inlinemediaobject"><img src=
"../../../equations/ellint17.svg"></span>
184 <pre class=
"programlisting"><span class=
"keyword">template
</span> <span class=
"special"><</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>
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>
187 <span class=
"keyword">template
</span> <span class=
"special"><</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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">></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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">&)
</span>
191 Returns Carlson's elliptic integral R
<sub>C
</sub>:
194 <span class=
"inlinemediaobject"><img src=
"../../../equations/ellint12.svg"></span>
197 Requires that
<span class=
"emphasis"><em>x
> 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>.
201 The final
<a class=
"link" href=
"../../policy.html" title=
"Chapter 15. 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 15. Policies: Controlling Precision, Error Handling etc">policy
204 documentation for more details
</a>.
207 When
<span class=
"emphasis"><em>y
< 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:
211 <span class=
"inlinemediaobject"><img src=
"../../../equations/ellint18.svg"></span>
213 <pre class=
"programlisting"><span class=
"keyword">template
</span> <span class=
"special"><</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>
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>
216 <span class=
"keyword">template
</span> <span class=
"special"><</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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">></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 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">&)
</span>
220 Returns Carlson's elliptic integral R
<sub>G
</sub>:
223 <span class=
"inlinemediaobject"><img src=
"../../../equations/ellint27.svg"></span>
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>.
230 The final
<a class=
"link" href=
"../../policy.html" title=
"Chapter 15. 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 15. Policies: Controlling Precision, Error Handling etc">policy
233 documentation for more details
</a>.
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>
240 There are two sets of tests.
243 Spot tests compare selected values with test data given in:
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>
251 Random test data generated using NTL::RR at
1000-bit precision and our implementation
252 checks for rounding-errors and/or regressions.
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.
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>
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.
270 <a name=
"math_toolkit.ellint.ellint_carlson.table_ellint_rc"></a><p class=
"title"><b>Table
 6.58.
 Error rates for ellint_rc
</b></p>
271 <div class=
"table-contents"><table class=
"table" summary=
"Error rates for ellint_rc">
284 Microsoft Visual C++ version
12.0<br> Win32
<br> double
289 GNU C++ version
5.1.0<br> linux
<br> double
294 GNU C++ version
5.1.0<br> linux
<br> long double
299 Sun compiler version
0x5130<br> Sun Solaris
<br> long double
311 <span class=
"blue">Max =
0.962ε (Mean =
0.407ε)
</span>
316 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span><br> <br> (
<span class=
"emphasis"><em>GSL
317 1.16:
</em></span> Max =
2.4ε (Mean =
0.624ε))
322 <span class=
"blue">Max =
0.995ε (Mean =
0.433ε)
</span>
327 <span class=
"blue">Max =
0.995ε (Mean =
0.438ε)
</span>
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
 6.59.
 Error rates for ellint_rd
</b></p>
335 <div class=
"table-contents"><table class=
"table" summary=
"Error rates for ellint_rd">
348 Microsoft Visual C++ version
12.0<br> Win32
<br> double
353 GNU C++ version
5.1.0<br> linux
<br> double
358 GNU C++ version
5.1.0<br> linux
<br> long double
363 Sun compiler version
0x5130<br> Sun Solaris
<br> long double
376 <span class=
"blue">Max =
2.16ε (Mean =
0.803ε)
</span>
381 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span><br> <br> (
<span class=
"emphasis"><em>GSL
382 1.16:
</em></span> Max =
2.59ε (Mean =
0.878ε))
387 <span class=
"blue">Max =
2.73ε (Mean =
0.831ε)
</span>
392 <span class=
"blue">Max =
2.73ε (Mean =
0.829ε)
</span>
404 <span class=
"blue">Max =
16.5ε (Mean =
0.843ε)
</span>
409 <span class=
"blue">Max =
0.896ε (Mean =
0.022ε)
</span><br> <br>
410 (
<span class=
"emphasis"><em>GSL
1.16:
</em></span> Max =
2.88ε (Mean =
0.839ε))
415 <span class=
"blue">Max =
2.65ε (Mean =
0.82ε)
</span>
420 <span class=
"blue">Max =
2.65ε (Mean =
0.819ε)
</span>
432 <span class=
"blue">Max =
3.51ε (Mean =
0.816ε)
</span>
437 <span class=
"blue">Max =
0.824ε (Mean =
0.0272ε)
</span><br>
438 <br> (
<span class=
"emphasis"><em>GSL
1.16:
</em></span> Max =
3.74ε (Mean =
0.84ε))
443 <span class=
"blue">Max =
2.85ε (Mean =
0.865ε)
</span>
448 <span class=
"blue">Max =
2.85ε (Mean =
0.865ε)
</span>
460 <span class=
"blue">Max =
1.16ε (Mean =
0.493ε)
</span>
465 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span><br> <br> (
<span class=
"emphasis"><em>GSL
466 1.16:
</em></span> Max =
2ε (Mean =
0.656ε))
471 <span class=
"blue">Max =
1.19ε (Mean =
0.522ε)
</span>
476 <span class=
"blue">Max =
1.19ε (Mean =
0.522ε)
</span>
488 <span class=
"blue">Max =
1.03ε (Mean =
0.418ε)
</span>
493 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span><br> <br> (
<span class=
"emphasis"><em>GSL
494 1.16:
</em></span> Max =
1.03ε (Mean =
0.418ε))
499 <span class=
"blue">Max =
0.998ε (Mean =
0.387ε)
</span>
504 <span class=
"blue">Max =
0.998ε (Mean =
0.387ε)
</span>
516 <span class=
"blue">Max =
2.64ε (Mean =
0.894ε)
</span>
521 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span><br> <br> (
<span class=
"emphasis"><em>GSL
522 1.16:
</em></span> Max =
2.85ε (Mean =
0.781ε))
527 <span class=
"blue">Max =
2.79ε (Mean =
0.883ε)
</span>
532 <span class=
"blue">Max =
2.79ε (Mean =
0.883ε)
</span>
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
 6.60.
 Error rates for ellint_rg
</b></p>
541 <div class=
"table-contents"><table class=
"table" summary=
"Error rates for ellint_rg">
554 Microsoft Visual C++ version
12.0<br> Win32
<br> double
559 GNU C++ version
5.1.0<br> linux
<br> double
564 GNU C++ version
5.1.0<br> linux
<br> long double
569 Sun compiler version
0x5130<br> Sun Solaris
<br> long double
582 <span class=
"blue">Max =
3.65ε (Mean =
0.929ε)
</span>
587 <span class=
"blue">Max =
0.983ε (Mean =
0.0172ε)
</span><br>
588 <br> (
<span class=
"emphasis"><em>GSL
1.16:
</em></span> Max =
0.983ε (Mean =
0.0172ε))
593 <span class=
"blue">Max =
3.95ε (Mean =
0.951ε)
</span>
598 <span class=
"blue">Max =
3.95ε (Mean =
0.951ε)
</span>
610 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span>
615 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span><br> <br> (
<span class=
"emphasis"><em>GSL
616 1.16:
</em></span> Max =
0ε (Mean =
0ε))
621 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span>
626 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span>
633 RG: All values the same or zero
638 <span class=
"blue">Max =
1.06ε (Mean =
0.348ε)
</span>
643 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span><br> <br> (
<span class=
"emphasis"><em>GSL
644 1.16:
</em></span> Max =
0ε (Mean =
0ε))
649 <span class=
"blue">Max =
0.992ε (Mean =
0.288ε)
</span>
654 <span class=
"blue">Max =
0.992ε (Mean =
0.288ε)
</span>
661 RG: two values the same
666 <span class=
"blue">Max =
1.96ε (Mean =
0.374ε)
</span>
671 <span class=
"blue">Max =
0.594ε (Mean =
0.0103ε)
</span><br>
672 <br> (
<span class=
"emphasis"><em>GSL
1.16:
</em></span> Max =
0.594ε (Mean =
0.0103ε))
677 <span class=
"blue">Max =
1.51ε (Mean =
0.404ε)
</span>
682 <span class=
"blue">Max =
1.51ε (Mean =
0.404ε)
</span>
694 <span class=
"blue">Max =
1.96ε (Mean =
0.674ε)
</span>
699 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span><br> <br> (
<span class=
"emphasis"><em>GSL
700 1.16:
</em></span> Max =
0ε (Mean =
0ε))
705 <span class=
"blue">Max =
2.14ε (Mean =
0.722ε)
</span>
710 <span class=
"blue">Max =
2.14ε (Mean =
0.722ε)
</span>
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
 6.61.
 Error rates for ellint_rf
</b></p>
719 <div class=
"table-contents"><table class=
"table" summary=
"Error rates for ellint_rf">
732 Microsoft Visual C++ version
12.0<br> Win32
<br> double
737 GNU C++ version
5.1.0<br> linux
<br> double
742 GNU C++ version
5.1.0<br> linux
<br> long double
747 Sun compiler version
0x5130<br> Sun Solaris
<br> long double
760 <span class=
"blue">Max =
2.02ε (Mean =
0.677ε)
</span>
765 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span><br> <br> (
<span class=
"emphasis"><em>GSL
766 1.16:
</em></span> Max =
2.73ε (Mean =
0.804ε))
771 <span class=
"blue">Max =
2.54ε (Mean =
0.674ε)
</span>
776 <span class=
"blue">Max =
2.54ε (Mean =
0.674ε)
</span>
788 <span class=
"blue">Max =
0.999ε (Mean =
0.335ε)
</span>
793 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span><br> <br> (
<span class=
"emphasis"><em>GSL
794 1.16:
</em></span> Max =
0.999ε (Mean =
0.34ε))
799 <span class=
"blue">Max =
0.991ε (Mean =
0.345ε)
</span>
804 <span class=
"blue">Max =
0.991ε (Mean =
0.345ε)
</span>
811 RF: x = y or y = z or x = z
816 <span class=
"blue">Max =
1.21ε (Mean =
0.394ε)
</span>
821 <span class=
"blue">Max =
0.536ε (Mean =
0.00658ε)
</span><br>
822 <br> (
<span class=
"emphasis"><em>GSL
1.16:
</em></span> Max =
2.89ε (Mean =
0.749ε))
827 <span class=
"blue">Max =
1.95ε (Mean =
0.418ε)
</span>
832 <span class=
"blue">Max =
1.57ε (Mean =
0.418ε)
</span>
844 <span class=
"blue">Max =
0.999ε (Mean =
0.407ε)
</span>
849 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span><br> <br> (
<span class=
"emphasis"><em>GSL
850 1.16:
</em></span> Max =
1.29ε (Mean =
0.527ε))
855 <span class=
"blue">Max =
0.894ε (Mean =
0.338ε)
</span>
860 <span class=
"blue">Max =
0.894ε (Mean =
0.338ε)
</span>
872 <span class=
"blue">Max =
1.89ε (Mean =
0.587ε)
</span>
877 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span><br> <br> (
<span class=
"emphasis"><em>GSL
878 1.16:
</em></span> Max =
2.54ε (Mean =
0.781ε))
883 <span class=
"blue">Max =
1.7ε (Mean =
0.539ε)
</span>
888 <span class=
"blue">Max =
1.7ε (Mean =
0.539ε)
</span>
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
 6.62.
 Error rates for ellint_rj
</b></p>
897 <div class=
"table-contents"><table class=
"table" summary=
"Error rates for ellint_rj">
910 Microsoft Visual C++ version
12.0<br> Win32
<br> double
915 GNU C++ version
5.1.0<br> linux
<br> double
920 GNU C++ version
5.1.0<br> linux
<br> long double
925 Sun compiler version
0x5130<br> Sun Solaris
<br> long double
938 <span class=
"blue">Max =
119ε (Mean =
4.32ε)
</span>
943 <span class=
"blue">Max =
0.52ε (Mean =
0.0184ε)
</span><br> <br>
944 (
<span class=
"emphasis"><em>GSL
1.16:
</em></span> Max =
3.57ε (Mean =
0.704ε)
<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
950 <span class=
"blue">Max =
186ε (Mean =
6.67ε)
</span>
955 <span class=
"blue">Max =
186ε (Mean =
6.7ε)
</span>
967 <span class=
"blue">Max =
1.03ε (Mean =
0.418ε)
</span>
972 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span><br> <br> (
<span class=
"emphasis"><em>GSL
973 1.16:
</em></span> Max =
1.03ε (Mean =
0.418ε))
978 <span class=
"blue">Max =
0.998ε (Mean =
0.387ε)
</span>
983 <span class=
"blue">Max =
0.998ε (Mean =
0.387ε)
</span>
995 <span class=
"blue">Max =
39.9ε (Mean =
1.12ε)
</span>
1000 <span class=
"blue">Max =
0ε (Mean =
0ε)
</span><br> <br> (
<span class=
"emphasis"><em>GSL
1001 1.16:
</em></span> Max =
3.96ε (Mean =
1.06ε))
1006 <span class=
"blue">Max =
20.8ε (Mean =
0.986ε)
</span>
1011 <span class=
"blue">Max =
18.2ε (Mean =
0.917ε)
</span>
1023 <span class=
"blue">Max =
214ε (Mean =
5.05ε)
</span>
1028 <span class=
"blue">Max =
0.6ε (Mean =
0.0228ε)
</span><br> <br>
1029 (
<span class=
"emphasis"><em>GSL
1.16:
</em></span> Max =
2.57ε (Mean =
0.754ε))
1034 <span class=
"blue">Max =
220ε (Mean =
6.64ε)
</span>
1039 <span class=
"blue">Max =
135ε (Mean =
5.3ε)
</span>
1051 <span class=
"blue">Max =
15.4ε (Mean =
1.05ε)
</span>
1056 <span class=
"blue">Max =
0.742ε (Mean =
0.0166ε)
</span><br>
1057 <br> (
<span class=
"emphasis"><em>GSL
1.16:
</em></span> Max =
2.62ε (Mean =
0.699ε))
1062 <span class=
"blue">Max =
17.2ε (Mean =
1.16ε)
</span>
1067 <span class=
"blue">Max =
16.6ε (Mean =
1.15ε)
</span>
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>
1079 The key of Carlson's algorithm [
<a class=
"link" href=
"ellint_intro.html#ellint_ref_carlson79">Carlson79
</a>]
1080 is the duplication theorem:
1083 <span class=
"inlinemediaobject"><img src=
"../../../equations/ellint13.svg"></span>
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
1091 <span class=
"inlinemediaobject"><img src=
"../../../equations/ellint16.svg"></span>
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
1100 For
<span class=
"emphasis"><em>p
< 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
< 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:
1106 <span class=
"inlinemediaobject"><img src=
"../../../equations/ellint17.svg"></span>
1109 <span class=
"inlinemediaobject"><img src=
"../../../equations/ellint18.svg"></span>
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
© 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
å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>)
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>