<title>Jacobi Zeta Function</title>
<link rel="stylesheet" href="../../math.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="../../index.html" title="Math Toolkit 2.10.0">
+<link rel="home" href="../../index.html" title="Math Toolkit 2.11.0">
<link rel="up" href="../ellint.html" title="Elliptic Integrals">
<link rel="prev" href="ellint_d.html" title="Elliptic Integral D - Legendre Form">
<link rel="next" href="heuman_lambda.html" title="Heuman Lambda Function">
<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>
<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">jacobi_zeta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
-<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 19. Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">></span>
-<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">jacobi_zeta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 19. Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&);</span>
+<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 20. Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">></span>
+<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">jacobi_zeta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../../policy.html" title="Chapter 20. Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&);</span>
<span class="special">}}</span> <span class="comment">// namespaces</span>
</pre>
<p>
This function evaluates the Jacobi Zeta Function <span class="emphasis"><em>Z(φ, k)</em></span>
</p>
-<p>
- <span class="inlinemediaobject"><img src="../../../equations/jacobi_zeta.svg"></span>
- </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <span class="inlinemediaobject"><img src="../../../equations/jacobi_zeta.svg"></span>
+
+ </p></blockquote></div>
<p>
Please note the use of φ, and <span class="emphasis"><em>k</em></span> as the parameters, the
function is often defined as <span class="emphasis"><em>Z(φ, m)</em></span> with <span class="emphasis"><em>m
(outside this range the result would be complex).
</p>
<p>
- The final <a class="link" href="../../policy.html" title="Chapter 19. Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
+ The final <a class="link" href="../../policy.html" title="Chapter 20. Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
be used to control the behaviour of the function: how it handles errors,
- what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 19. Policies: Controlling Precision, Error Handling etc">policy
+ what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 20. Policies: Controlling Precision, Error Handling etc">policy
documentation for more details</a>.
</p>
<p>
issues apply.
</p>
<div class="table">
-<a name="math_toolkit.ellint.jacobi_zeta.table_jacobi_zeta"></a><p class="title"><b>Table 7.68. Error rates for jacobi_zeta</b></p>
+<a name="math_toolkit.ellint.jacobi_zeta.table_jacobi_zeta"></a><p class="title"><b>Table 8.68. Error rates for jacobi_zeta</b></p>
<div class="table-contents"><table class="table" summary="Error rates for jacobi_zeta">
<colgroup>
<col>
</h5>
<p>
The tests use a mixture of spot test values calculated using values calculated
- at wolframalpha.com, and random test data generated using MPFR at 1000-bit
- precision and a deliberately naive implementation in terms of the Legendre
- integrals.
+ at <a href="http://www.wolframalpha.com/" target="_top">Wolfram Alpha</a>, and random
+ test data generated using MPFR at 1000-bit precision and a deliberately naive
+ implementation in terms of the Legendre integrals.
</p>
<h5>
<a name="math_toolkit.ellint.jacobi_zeta.h4"></a>
<p>
The implementation for Z(φ, k) first makes the argument φ positive using:
</p>
-<p>
- <span class="emphasis"><em>Z(-φ, k) = -Z(φ, k)</em></span>
- </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <span class="serif_italic"><span class="emphasis"><em>Z(-φ, k) = -Z(φ, k)</em></span></span>
+ </p></blockquote></div>
<p>
The function is then implemented in terms of Carlson's integral R<sub>J</sub>
using the
relation:
</p>
-<p>
- <span class="inlinemediaobject"><img src="../../../equations/jacobi_zeta.svg"></span>
- </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <span class="inlinemediaobject"><img src="../../../equations/jacobi_zeta.svg"></span>
+
+ </p></blockquote></div>
<p>
There is one special case where the above relation fails: when <span class="emphasis"><em>k
= 1</em></span>, in that case the function simplifies to
</p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <span class="serif_italic"><span class="emphasis"><em>Z(φ, 1) = sign(cos(φ)) sin(φ)</em></span></span>
+ </p></blockquote></div>
+<h6>
+<a name="math_toolkit.ellint.jacobi_zeta.h5"></a>
+ <span class="phrase"><a name="math_toolkit.ellint.jacobi_zeta.jacobi_zeta_example"></a></span><a class="link" href="jacobi_zeta.html#math_toolkit.ellint.jacobi_zeta.jacobi_zeta_example">Example</a>
+ </h6>
<p>
- <span class="emphasis"><em>Z(φ, 1) = sign(cos(φ)) sin(φ)</em></span>
+ A simple example comparing use of <a href="http://www.wolframalpha.com/" target="_top">Wolfram
+ Alpha</a> with Boost.Math (including much higher precision using Boost.Multiprecision)
+ is <a href="../../../../example/jacobi_zeta_example.cpp" target="_top">jacobi_zeta_example.cpp</a>.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>