]>
Commit | Line | Data |
---|---|---|
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"><</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> | |
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"><</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> | |
40 | ||
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> | |
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"><</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> | |
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"><</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> | |
52 | ||
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> | |
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"><</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> | |
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"><</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> | |
64 | ||
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> | |
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"><</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> | |
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"><</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> | |
76 | ||
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> | |
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"><</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> | |
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"><</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> | |
88 | ||
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> | |
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"><</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> | |
113 | ||
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> | |
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 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>. | |
132 | </p> | |
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> | |
135 | ||
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> | |
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 >= 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 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>. | |
154 | </p> | |
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> | |
157 | ||
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> | |
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 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>. | |
176 | </p> | |
177 | <p> | |
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: | |
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"><</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> | |
186 | ||
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> | |
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 > 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 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>. | |
205 | </p> | |
206 | <p> | |
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: | |
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"><</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> | |
215 | ||
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> | |
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 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>. | |
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 6.58. 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ε (Mean = 0.407ε)</span> | |
312 | </p> | |
313 | </td> | |
314 | <td> | |
315 | <p> | |
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ε)) | |
318 | </p> | |
319 | </td> | |
320 | <td> | |
321 | <p> | |
322 | <span class="blue">Max = 0.995ε (Mean = 0.433ε)</span> | |
323 | </p> | |
324 | </td> | |
325 | <td> | |
326 | <p> | |
327 | <span class="blue">Max = 0.995ε (Mean = 0.438ε)</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 6.59. 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ε (Mean = 0.803ε)</span> | |
377 | </p> | |
378 | </td> | |
379 | <td> | |
380 | <p> | |
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ε)) | |
383 | </p> | |
384 | </td> | |
385 | <td> | |
386 | <p> | |
387 | <span class="blue">Max = 2.73ε (Mean = 0.831ε)</span> | |
388 | </p> | |
389 | </td> | |
390 | <td> | |
391 | <p> | |
392 | <span class="blue">Max = 2.73ε (Mean = 0.829ε)</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ε (Mean = 0.843ε)</span> | |
405 | </p> | |
406 | </td> | |
407 | <td> | |
408 | <p> | |
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ε)) | |
411 | </p> | |
412 | </td> | |
413 | <td> | |
414 | <p> | |
415 | <span class="blue">Max = 2.65ε (Mean = 0.82ε)</span> | |
416 | </p> | |
417 | </td> | |
418 | <td> | |
419 | <p> | |
420 | <span class="blue">Max = 2.65ε (Mean = 0.819ε)</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ε (Mean = 0.816ε)</span> | |
433 | </p> | |
434 | </td> | |
435 | <td> | |
436 | <p> | |
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ε)) | |
439 | </p> | |
440 | </td> | |
441 | <td> | |
442 | <p> | |
443 | <span class="blue">Max = 2.85ε (Mean = 0.865ε)</span> | |
444 | </p> | |
445 | </td> | |
446 | <td> | |
447 | <p> | |
448 | <span class="blue">Max = 2.85ε (Mean = 0.865ε)</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ε (Mean = 0.493ε)</span> | |
461 | </p> | |
462 | </td> | |
463 | <td> | |
464 | <p> | |
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ε)) | |
467 | </p> | |
468 | </td> | |
469 | <td> | |
470 | <p> | |
471 | <span class="blue">Max = 1.19ε (Mean = 0.522ε)</span> | |
472 | </p> | |
473 | </td> | |
474 | <td> | |
475 | <p> | |
476 | <span class="blue">Max = 1.19ε (Mean = 0.522ε)</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ε (Mean = 0.418ε)</span> | |
489 | </p> | |
490 | </td> | |
491 | <td> | |
492 | <p> | |
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ε)) | |
495 | </p> | |
496 | </td> | |
497 | <td> | |
498 | <p> | |
499 | <span class="blue">Max = 0.998ε (Mean = 0.387ε)</span> | |
500 | </p> | |
501 | </td> | |
502 | <td> | |
503 | <p> | |
504 | <span class="blue">Max = 0.998ε (Mean = 0.387ε)</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ε (Mean = 0.894ε)</span> | |
517 | </p> | |
518 | </td> | |
519 | <td> | |
520 | <p> | |
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ε)) | |
523 | </p> | |
524 | </td> | |
525 | <td> | |
526 | <p> | |
527 | <span class="blue">Max = 2.79ε (Mean = 0.883ε)</span> | |
528 | </p> | |
529 | </td> | |
530 | <td> | |
531 | <p> | |
532 | <span class="blue">Max = 2.79ε (Mean = 0.883ε)</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 6.60. 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ε (Mean = 0.929ε)</span> | |
583 | </p> | |
584 | </td> | |
585 | <td> | |
586 | <p> | |
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ε)) | |
589 | </p> | |
590 | </td> | |
591 | <td> | |
592 | <p> | |
593 | <span class="blue">Max = 3.95ε (Mean = 0.951ε)</span> | |
594 | </p> | |
595 | </td> | |
596 | <td> | |
597 | <p> | |
598 | <span class="blue">Max = 3.95ε (Mean = 0.951ε)</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ε (Mean = 0ε)</span> | |
611 | </p> | |
612 | </td> | |
613 | <td> | |
614 | <p> | |
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ε)) | |
617 | </p> | |
618 | </td> | |
619 | <td> | |
620 | <p> | |
621 | <span class="blue">Max = 0ε (Mean = 0ε)</span> | |
622 | </p> | |
623 | </td> | |
624 | <td> | |
625 | <p> | |
626 | <span class="blue">Max = 0ε (Mean = 0ε)</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ε (Mean = 0.348ε)</span> | |
639 | </p> | |
640 | </td> | |
641 | <td> | |
642 | <p> | |
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ε)) | |
645 | </p> | |
646 | </td> | |
647 | <td> | |
648 | <p> | |
649 | <span class="blue">Max = 0.992ε (Mean = 0.288ε)</span> | |
650 | </p> | |
651 | </td> | |
652 | <td> | |
653 | <p> | |
654 | <span class="blue">Max = 0.992ε (Mean = 0.288ε)</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ε (Mean = 0.374ε)</span> | |
667 | </p> | |
668 | </td> | |
669 | <td> | |
670 | <p> | |
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ε)) | |
673 | </p> | |
674 | </td> | |
675 | <td> | |
676 | <p> | |
677 | <span class="blue">Max = 1.51ε (Mean = 0.404ε)</span> | |
678 | </p> | |
679 | </td> | |
680 | <td> | |
681 | <p> | |
682 | <span class="blue">Max = 1.51ε (Mean = 0.404ε)</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ε (Mean = 0.674ε)</span> | |
695 | </p> | |
696 | </td> | |
697 | <td> | |
698 | <p> | |
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ε)) | |
701 | </p> | |
702 | </td> | |
703 | <td> | |
704 | <p> | |
705 | <span class="blue">Max = 2.14ε (Mean = 0.722ε)</span> | |
706 | </p> | |
707 | </td> | |
708 | <td> | |
709 | <p> | |
710 | <span class="blue">Max = 2.14ε (Mean = 0.722ε)</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 6.61. 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ε (Mean = 0.677ε)</span> | |
761 | </p> | |
762 | </td> | |
763 | <td> | |
764 | <p> | |
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ε)) | |
767 | </p> | |
768 | </td> | |
769 | <td> | |
770 | <p> | |
771 | <span class="blue">Max = 2.54ε (Mean = 0.674ε)</span> | |
772 | </p> | |
773 | </td> | |
774 | <td> | |
775 | <p> | |
776 | <span class="blue">Max = 2.54ε (Mean = 0.674ε)</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ε (Mean = 0.335ε)</span> | |
789 | </p> | |
790 | </td> | |
791 | <td> | |
792 | <p> | |
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ε)) | |
795 | </p> | |
796 | </td> | |
797 | <td> | |
798 | <p> | |
799 | <span class="blue">Max = 0.991ε (Mean = 0.345ε)</span> | |
800 | </p> | |
801 | </td> | |
802 | <td> | |
803 | <p> | |
804 | <span class="blue">Max = 0.991ε (Mean = 0.345ε)</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ε (Mean = 0.394ε)</span> | |
817 | </p> | |
818 | </td> | |
819 | <td> | |
820 | <p> | |
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ε)) | |
823 | </p> | |
824 | </td> | |
825 | <td> | |
826 | <p> | |
827 | <span class="blue">Max = 1.95ε (Mean = 0.418ε)</span> | |
828 | </p> | |
829 | </td> | |
830 | <td> | |
831 | <p> | |
832 | <span class="blue">Max = 1.57ε (Mean = 0.418ε)</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ε (Mean = 0.407ε)</span> | |
845 | </p> | |
846 | </td> | |
847 | <td> | |
848 | <p> | |
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ε)) | |
851 | </p> | |
852 | </td> | |
853 | <td> | |
854 | <p> | |
855 | <span class="blue">Max = 0.894ε (Mean = 0.338ε)</span> | |
856 | </p> | |
857 | </td> | |
858 | <td> | |
859 | <p> | |
860 | <span class="blue">Max = 0.894ε (Mean = 0.338ε)</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ε (Mean = 0.587ε)</span> | |
873 | </p> | |
874 | </td> | |
875 | <td> | |
876 | <p> | |
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ε)) | |
879 | </p> | |
880 | </td> | |
881 | <td> | |
882 | <p> | |
883 | <span class="blue">Max = 1.7ε (Mean = 0.539ε)</span> | |
884 | </p> | |
885 | </td> | |
886 | <td> | |
887 | <p> | |
888 | <span class="blue">Max = 1.7ε (Mean = 0.539ε)</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 6.62. 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ε (Mean = 4.32ε)</span> | |
939 | </p> | |
940 | </td> | |
941 | <td> | |
942 | <p> | |
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 | |
945 | other failures.</a>) | |
946 | </p> | |
947 | </td> | |
948 | <td> | |
949 | <p> | |
950 | <span class="blue">Max = 186ε (Mean = 6.67ε)</span> | |
951 | </p> | |
952 | </td> | |
953 | <td> | |
954 | <p> | |
955 | <span class="blue">Max = 186ε (Mean = 6.7ε)</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ε (Mean = 0.418ε)</span> | |
968 | </p> | |
969 | </td> | |
970 | <td> | |
971 | <p> | |
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ε)) | |
974 | </p> | |
975 | </td> | |
976 | <td> | |
977 | <p> | |
978 | <span class="blue">Max = 0.998ε (Mean = 0.387ε)</span> | |
979 | </p> | |
980 | </td> | |
981 | <td> | |
982 | <p> | |
983 | <span class="blue">Max = 0.998ε (Mean = 0.387ε)</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ε (Mean = 1.12ε)</span> | |
996 | </p> | |
997 | </td> | |
998 | <td> | |
999 | <p> | |
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ε)) | |
1002 | </p> | |
1003 | </td> | |
1004 | <td> | |
1005 | <p> | |
1006 | <span class="blue">Max = 20.8ε (Mean = 0.986ε)</span> | |
1007 | </p> | |
1008 | </td> | |
1009 | <td> | |
1010 | <p> | |
1011 | <span class="blue">Max = 18.2ε (Mean = 0.917ε)</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ε (Mean = 5.05ε)</span> | |
1024 | </p> | |
1025 | </td> | |
1026 | <td> | |
1027 | <p> | |
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ε)) | |
1030 | </p> | |
1031 | </td> | |
1032 | <td> | |
1033 | <p> | |
1034 | <span class="blue">Max = 220ε (Mean = 6.64ε)</span> | |
1035 | </p> | |
1036 | </td> | |
1037 | <td> | |
1038 | <p> | |
1039 | <span class="blue">Max = 135ε (Mean = 5.3ε)</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ε (Mean = 1.05ε)</span> | |
1052 | </p> | |
1053 | </td> | |
1054 | <td> | |
1055 | <p> | |
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ε)) | |
1058 | </p> | |
1059 | </td> | |
1060 | <td> | |
1061 | <p> | |
1062 | <span class="blue">Max = 17.2ε (Mean = 1.16ε)</span> | |
1063 | </p> | |
1064 | </td> | |
1065 | <td> | |
1066 | <p> | |
1067 | <span class="blue">Max = 16.6ε (Mean = 1.15ε)</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 < 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: | |
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 © 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>) | |
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> |