• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>TR1 C Functions Quick Reference</title>
5<link rel="stylesheet" href="../math.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7<link rel="home" href="../index.html" title="Math Toolkit 2.12.0">
8<link rel="up" href="../extern_c.html" title='Chapter 9. TR1 and C99 external "C" Functions'>
9<link rel="prev" href="c99.html" title="C99 C Functions">
10<link rel="next" href="../root_finding.html" title="Chapter 10. Root Finding &amp; Minimization Algorithms">
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="c99.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../extern_c.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="../root_finding.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
24</div>
25<div class="section">
26<div class="titlepage"><div><div><h2 class="title" style="clear: both">
27<a name="math_toolkit.tr1_ref"></a><a class="link" href="tr1_ref.html" title="TR1 C Functions Quick Reference">TR1 C Functions Quick Reference</a>
28</h2></div></div></div>
29<h5>
30<a name="math_toolkit.tr1_ref.h0"></a>
31      <span class="phrase"><a name="math_toolkit.tr1_ref.supported_tr1_functions"></a></span><a class="link" href="tr1_ref.html#math_toolkit.tr1_ref.supported_tr1_functions">Supported
32      TR1 Functions</a>
33    </h5>
34<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> <span class="keyword">namespace</span> <span class="identifier">tr1</span><span class="special">{</span> <span class="keyword">extern</span> <span class="string">"C"</span><span class="special">{</span>
35
36<span class="comment">// [5.2.1.1] associated Laguerre polynomials:</span>
37<span class="keyword">double</span> <span class="identifier">assoc_laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
38<span class="keyword">float</span> <span class="identifier">assoc_laguerref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
39<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">assoc_laguerrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
40
41<span class="comment">// [5.2.1.2] associated Legendre functions:</span>
42<span class="keyword">double</span> <span class="identifier">assoc_legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
43<span class="keyword">float</span> <span class="identifier">assoc_legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
44<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">assoc_legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
45
46<span class="comment">// [5.2.1.3] beta function:</span>
47<span class="keyword">double</span> <span class="identifier">beta</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
48<span class="keyword">float</span> <span class="identifier">betaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
49<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">betal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
50
51<span class="comment">// [5.2.1.4] (complete) elliptic integral of the first kind:</span>
52<span class="keyword">double</span> <span class="identifier">comp_ellint_1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
53<span class="keyword">float</span> <span class="identifier">comp_ellint_1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">);</span>
54<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
55
56<span class="comment">// [5.2.1.5] (complete) elliptic integral of the second kind:</span>
57<span class="keyword">double</span> <span class="identifier">comp_ellint_2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
58<span class="keyword">float</span> <span class="identifier">comp_ellint_2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">);</span>
59<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
60
61<span class="comment">// [5.2.1.6] (complete) elliptic integral of the third kind:</span>
62<span class="keyword">double</span> <span class="identifier">comp_ellint_3</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">);</span>
63<span class="keyword">float</span> <span class="identifier">comp_ellint_3f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">nu</span><span class="special">);</span>
64<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_3l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">);</span>
65
66<span class="comment">// [5.2.1.8] regular modified cylindrical Bessel functions:</span>
67<span class="keyword">double</span> <span class="identifier">cyl_bessel_i</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
68<span class="keyword">float</span> <span class="identifier">cyl_bessel_if</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
69<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_il</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
70
71<span class="comment">// [5.2.1.9] cylindrical Bessel functions (of the first kind):</span>
72<span class="keyword">double</span> <span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
73<span class="keyword">float</span> <span class="identifier">cyl_bessel_jf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
74<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_jl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
75
76<span class="comment">// [5.2.1.10] irregular modified cylindrical Bessel functions:</span>
77<span class="keyword">double</span> <span class="identifier">cyl_bessel_k</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
78<span class="keyword">float</span> <span class="identifier">cyl_bessel_kf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
79<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_kl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
80
81<span class="comment">// [5.2.1.11] cylindrical Neumann functions;</span>
82<span class="comment">// cylindrical Bessel functions (of the second kind):</span>
83<span class="keyword">double</span> <span class="identifier">cyl_neumann</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
84<span class="keyword">float</span> <span class="identifier">cyl_neumannf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
85<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_neumannl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
86
87<span class="comment">// [5.2.1.12] (incomplete) elliptic integral of the first kind:</span>
88<span class="keyword">double</span> <span class="identifier">ellint_1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
89<span class="keyword">float</span> <span class="identifier">ellint_1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
90<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
91
92<span class="comment">// [5.2.1.13] (incomplete) elliptic integral of the second kind:</span>
93<span class="keyword">double</span> <span class="identifier">ellint_2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
94<span class="keyword">float</span> <span class="identifier">ellint_2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
95<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
96
97<span class="comment">// [5.2.1.14] (incomplete) elliptic integral of the third kind:</span>
98<span class="keyword">double</span> <span class="identifier">ellint_3</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
99<span class="keyword">float</span> <span class="identifier">ellint_3f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
100<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_3l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
101
102<span class="comment">// [5.2.1.15] exponential integral:</span>
103<span class="keyword">double</span> <span class="identifier">expint</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
104<span class="keyword">float</span> <span class="identifier">expintf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
105<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">expintl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
106
107<span class="comment">// [5.2.1.16] Hermite polynomials:</span>
108<span class="keyword">double</span> <span class="identifier">hermite</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
109<span class="keyword">float</span> <span class="identifier">hermitef</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
110<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">hermitel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
111
112<span class="comment">// [5.2.1.18] Laguerre polynomials:</span>
113<span class="keyword">double</span> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
114<span class="keyword">float</span> <span class="identifier">laguerref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
115<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">laguerrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
116
117<span class="comment">// [5.2.1.19] Legendre polynomials:</span>
118<span class="keyword">double</span> <span class="identifier">legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
119<span class="keyword">float</span> <span class="identifier">legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
120<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
121
122<span class="comment">// [5.2.1.20] Riemann zeta function:</span>
123<span class="keyword">double</span> <span class="identifier">riemann_zeta</span><span class="special">(</span><span class="keyword">double</span><span class="special">);</span>
124<span class="keyword">float</span> <span class="identifier">riemann_zetaf</span><span class="special">(</span><span class="keyword">float</span><span class="special">);</span>
125<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">riemann_zetal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">);</span>
126
127<span class="comment">// [5.2.1.21] spherical Bessel functions (of the first kind):</span>
128<span class="keyword">double</span> <span class="identifier">sph_bessel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
129<span class="keyword">float</span> <span class="identifier">sph_besself</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
130<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_bessell</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
131
132<span class="comment">// [5.2.1.22] spherical associated Legendre functions:</span>
133<span class="keyword">double</span> <span class="identifier">sph_legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">theta</span><span class="special">);</span>
134<span class="keyword">float</span> <span class="identifier">sph_legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">theta</span><span class="special">);</span>
135<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">theta</span><span class="special">);</span>
136
137<span class="comment">// [5.2.1.23] spherical Neumann functions;</span>
138<span class="comment">// spherical Bessel functions (of the second kind):</span>
139<span class="keyword">double</span> <span class="identifier">sph_neumann</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
140<span class="keyword">float</span> <span class="identifier">sph_neumannf</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
141<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_neumannl</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
142
143<span class="special">}}}}</span> <span class="comment">// namespaces</span>
144</pre>
145<p>
146      In addition sufficient additional overloads of the <code class="computeroutput"><span class="keyword">double</span></code>
147      versions of the above functions are provided, so that calling the function
148      with any mixture of <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>, <code class="computeroutput"><span class="keyword">long</span>
149      <span class="keyword">double</span></code>, or <span class="emphasis"><em>integer</em></span>
150      arguments is supported, with the return type determined by the <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
151      type calculation rules</em></span></a>.
152    </p>
153<p>
154      For example:
155    </p>
156<pre class="programlisting"><span class="identifier">expintf</span><span class="special">(</span><span class="number">2.0f</span><span class="special">);</span>  <span class="comment">// float version, returns float.</span>
157<span class="identifier">expint</span><span class="special">(</span><span class="number">2.0f</span><span class="special">);</span>   <span class="comment">// also calls the float version and returns float.</span>
158<span class="identifier">expint</span><span class="special">(</span><span class="number">2.0</span><span class="special">);</span>    <span class="comment">// double version, returns double.</span>
159<span class="identifier">expintl</span><span class="special">(</span><span class="number">2.0L</span><span class="special">);</span>  <span class="comment">// long double version, returns a long double.</span>
160<span class="identifier">expint</span><span class="special">(</span><span class="number">2.0L</span><span class="special">);</span>   <span class="comment">// also calls the long double version.</span>
161<span class="identifier">expint</span><span class="special">(</span><span class="number">2</span><span class="special">);</span>      <span class="comment">// integer argument is treated as a double, returns double.</span>
162</pre>
163<h5>
164<a name="math_toolkit.tr1_ref.h1"></a>
165      <span class="phrase"><a name="math_toolkit.tr1_ref.quick_reference"></a></span><a class="link" href="tr1_ref.html#math_toolkit.tr1_ref.quick_reference">Quick
166      Reference</a>
167    </h5>
168<pre class="programlisting"><span class="comment">// [5.2.1.1] associated Laguerre polynomials:</span>
169<span class="keyword">double</span> <span class="identifier">assoc_laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
170<span class="keyword">float</span> <span class="identifier">assoc_laguerref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
171<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">assoc_laguerrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
172</pre>
173<p>
174      The assoc_laguerre functions return:
175    </p>
176<div class="blockquote"><blockquote class="blockquote"><p>
177        <span class="inlinemediaobject"><img src="../../equations/laguerre_1.svg"></span>
178
179      </p></blockquote></div>
180<p>
181      See also <a class="link" href="sf_poly/laguerre.html" title="Laguerre (and Associated) Polynomials">laguerre</a> for
182      the full template (header only) version of this function.
183    </p>
184<pre class="programlisting"><span class="comment">// [5.2.1.2] associated Legendre functions:</span>
185<span class="keyword">double</span> <span class="identifier">assoc_legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
186<span class="keyword">float</span> <span class="identifier">assoc_legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
187<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">assoc_legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
188</pre>
189<p>
190      The assoc_legendre functions return:
191    </p>
192<div class="blockquote"><blockquote class="blockquote"><p>
193        <span class="inlinemediaobject"><img src="../../equations/legendre_1b.svg"></span>
194
195      </p></blockquote></div>
196<p>
197      See also <a class="link" href="sf_poly/legendre.html" title="Legendre (and Associated) Polynomials">legendre_p</a> for
198      the full template (header only) version of this function.
199    </p>
200<pre class="programlisting"><span class="comment">// [5.2.1.3] beta function:</span>
201<span class="keyword">double</span> <span class="identifier">beta</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
202<span class="keyword">float</span> <span class="identifier">betaf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">y</span><span class="special">);</span>
203<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">betal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">);</span>
204</pre>
205<p>
206      Returns the beta function of <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>y</em></span>:
207    </p>
208<div class="blockquote"><blockquote class="blockquote"><p>
209        <span class="inlinemediaobject"><img src="../../equations/beta1.svg"></span>
210
211      </p></blockquote></div>
212<p>
213      See also <a class="link" href="sf_beta/beta_function.html" title="Beta">beta</a> for
214      the full template (header only) version of this function.
215    </p>
216<pre class="programlisting"><span class="comment">// [5.2.1.4] (complete) elliptic integral of the first kind:</span>
217<span class="keyword">double</span> <span class="identifier">comp_ellint_1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
218<span class="keyword">float</span> <span class="identifier">comp_ellint_1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">);</span>
219<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
220</pre>
221<p>
222      Returns the complete elliptic integral of the first kind of <span class="emphasis"><em>k</em></span>:
223    </p>
224<div class="blockquote"><blockquote class="blockquote"><p>
225        <span class="inlinemediaobject"><img src="../../equations/ellint6.svg"></span>
226
227      </p></blockquote></div>
228<p>
229      See also <a class="link" href="ellint/ellint_1.html" title="Elliptic Integrals of the First Kind - Legendre Form">ellint_1</a> for the
230      full template (header only) version of this function.
231    </p>
232<pre class="programlisting"><span class="comment">// [5.2.1.5] (complete) elliptic integral of the second kind:</span>
233<span class="keyword">double</span> <span class="identifier">comp_ellint_2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
234<span class="keyword">float</span> <span class="identifier">comp_ellint_2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">);</span>
235<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">);</span>
236</pre>
237<p>
238      Returns the complete elliptic integral of the second kind of <span class="emphasis"><em>k</em></span>:
239    </p>
240<div class="blockquote"><blockquote class="blockquote"><p>
241        <span class="inlinemediaobject"><img src="../../equations/ellint7.svg"></span>
242
243      </p></blockquote></div>
244<p>
245      See also <a class="link" href="ellint/ellint_2.html" title="Elliptic Integrals of the Second Kind - Legendre Form">ellint_2</a> for the
246      full template (header only) version of this function.
247    </p>
248<pre class="programlisting"><span class="comment">// [5.2.1.6] (complete) elliptic integral of the third kind:</span>
249<span class="keyword">double</span> <span class="identifier">comp_ellint_3</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">);</span>
250<span class="keyword">float</span> <span class="identifier">comp_ellint_3f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">nu</span><span class="special">);</span>
251<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">comp_ellint_3l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">);</span>
252</pre>
253<p>
254      Returns the complete elliptic integral of the third kind of <span class="emphasis"><em>k</em></span>
255      and <span class="emphasis"><em>nu</em></span>:
256    </p>
257<div class="blockquote"><blockquote class="blockquote"><p>
258        <span class="inlinemediaobject"><img src="../../equations/ellint8.svg"></span>
259
260      </p></blockquote></div>
261<p>
262      See also <a class="link" href="ellint/ellint_3.html" title="Elliptic Integrals of the Third Kind - Legendre Form">ellint_3</a> for the
263      full template (header only) version of this function.
264    </p>
265<pre class="programlisting"><span class="comment">// [5.2.1.8] regular modified cylindrical Bessel functions:</span>
266<span class="keyword">double</span> <span class="identifier">cyl_bessel_i</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
267<span class="keyword">float</span> <span class="identifier">cyl_bessel_if</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
268<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_il</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
269</pre>
270<p>
271      Returns the modified bessel function of the first kind of <span class="emphasis"><em>nu</em></span>
272      and <span class="emphasis"><em>x</em></span>:
273    </p>
274<div class="blockquote"><blockquote class="blockquote"><p>
275        <span class="inlinemediaobject"><img src="../../equations/mbessel2.svg"></span>
276
277      </p></blockquote></div>
278<p>
279      See also <a class="link" href="bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_i</a> for
280      the full template (header only) version of this function.
281    </p>
282<pre class="programlisting"><span class="comment">// [5.2.1.9] cylindrical Bessel functions (of the first kind):</span>
283<span class="keyword">double</span> <span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
284<span class="keyword">float</span> <span class="identifier">cyl_bessel_jf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
285<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_jl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
286</pre>
287<p>
288      Returns the bessel function of the first kind of <span class="emphasis"><em>nu</em></span> and
289      <span class="emphasis"><em>x</em></span>:
290    </p>
291<div class="blockquote"><blockquote class="blockquote"><p>
292        <span class="inlinemediaobject"><img src="../../equations/bessel2.svg"></span>
293
294      </p></blockquote></div>
295<p>
296      See also <a class="link" href="bessel/bessel_first.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a>
297      for the full template (header only) version of this function.
298    </p>
299<pre class="programlisting"><span class="comment">// [5.2.1.10] irregular modified cylindrical Bessel functions:</span>
300<span class="keyword">double</span> <span class="identifier">cyl_bessel_k</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
301<span class="keyword">float</span> <span class="identifier">cyl_bessel_kf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
302<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_bessel_kl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
303</pre>
304<p>
305      Returns the modified bessel function of the second kind of <span class="emphasis"><em>nu</em></span>
306      and <span class="emphasis"><em>x</em></span>:
307    </p>
308<div class="blockquote"><blockquote class="blockquote"><p>
309        <span class="inlinemediaobject"><img src="../../equations/mbessel3.svg"></span>
310
311      </p></blockquote></div>
312<p>
313      See also <a class="link" href="bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_k</a> for
314      the full template (header only) version of this function.
315    </p>
316<pre class="programlisting"><span class="comment">// [5.2.1.11] cylindrical Neumann functions;</span>
317<span class="comment">// cylindrical Bessel functions (of the second kind):</span>
318<span class="keyword">double</span> <span class="identifier">cyl_neumann</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
319<span class="keyword">float</span> <span class="identifier">cyl_neumannf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
320<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">cyl_neumannl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
321</pre>
322<p>
323      Returns the bessel function of the second kind (Neumann function) of <span class="emphasis"><em>nu</em></span>
324      and <span class="emphasis"><em>x</em></span>:
325    </p>
326<div class="blockquote"><blockquote class="blockquote"><p>
327        <span class="inlinemediaobject"><img src="../../equations/bessel3.svg"></span>
328
329      </p></blockquote></div>
330<p>
331      See also <a class="link" href="bessel/bessel_first.html" title="Bessel Functions of the First and Second Kinds">cyl_neumann</a>
332      for the full template (header only) version of this function.
333    </p>
334<pre class="programlisting"><span class="comment">// [5.2.1.12] (incomplete) elliptic integral of the first kind:</span>
335<span class="keyword">double</span> <span class="identifier">ellint_1</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
336<span class="keyword">float</span> <span class="identifier">ellint_1f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
337<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_1l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
338</pre>
339<p>
340      Returns the incomplete elliptic integral of the first kind of <span class="emphasis"><em>k</em></span>
341      and <span class="emphasis"><em>phi</em></span>:
342    </p>
343<div class="blockquote"><blockquote class="blockquote"><p>
344        <span class="inlinemediaobject"><img src="../../equations/ellint2.svg"></span>
345
346      </p></blockquote></div>
347<p>
348      See also <a class="link" href="ellint/ellint_1.html" title="Elliptic Integrals of the First Kind - Legendre Form">ellint_1</a> for the
349      full template (header only) version of this function.
350    </p>
351<pre class="programlisting"><span class="comment">// [5.2.1.13] (incomplete) elliptic integral of the second kind:</span>
352<span class="keyword">double</span> <span class="identifier">ellint_2</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
353<span class="keyword">float</span> <span class="identifier">ellint_2f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
354<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_2l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
355</pre>
356<p>
357      Returns the incomplete elliptic integral of the second kind of <span class="emphasis"><em>k</em></span>
358      and <span class="emphasis"><em>phi</em></span>:
359    </p>
360<div class="blockquote"><blockquote class="blockquote"><p>
361        <span class="inlinemediaobject"><img src="../../equations/ellint3.svg"></span>
362
363      </p></blockquote></div>
364<p>
365      See also <a class="link" href="ellint/ellint_2.html" title="Elliptic Integrals of the Second Kind - Legendre Form">ellint_2</a> for the
366      full template (header only) version of this function.
367    </p>
368<pre class="programlisting"><span class="comment">// [5.2.1.14] (incomplete) elliptic integral of the third kind:</span>
369<span class="keyword">double</span> <span class="identifier">ellint_3</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
370<span class="keyword">float</span> <span class="identifier">ellint_3f</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">phi</span><span class="special">);</span>
371<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">ellint_3l</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">k</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">nu</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">phi</span><span class="special">);</span>
372</pre>
373<p>
374      Returns the incomplete elliptic integral of the third kind of <span class="emphasis"><em>k</em></span>,
375      <span class="emphasis"><em>nu</em></span> and <span class="emphasis"><em>phi</em></span>:
376    </p>
377<div class="blockquote"><blockquote class="blockquote"><p>
378        <span class="inlinemediaobject"><img src="../../equations/ellint4.svg"></span>
379
380      </p></blockquote></div>
381<p>
382      See also <a class="link" href="ellint/ellint_3.html" title="Elliptic Integrals of the Third Kind - Legendre Form">ellint_3</a> for the
383      full template (header only) version of this function.
384    </p>
385<pre class="programlisting"><span class="comment">// [5.2.1.15] exponential integral:</span>
386<span class="keyword">double</span> <span class="identifier">expint</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
387<span class="keyword">float</span> <span class="identifier">expintf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
388<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">expintl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
389</pre>
390<p>
391      Returns the exponential integral Ei of <span class="emphasis"><em>x</em></span>:
392    </p>
393<div class="blockquote"><blockquote class="blockquote"><p>
394        <span class="inlinemediaobject"><img src="../../equations/expint_i_1.svg"></span>
395
396      </p></blockquote></div>
397<p>
398      See also <a class="link" href="expint/expint_i.html" title="Exponential Integral Ei">expint</a> for the
399      full template (header only) version of this function.
400    </p>
401<pre class="programlisting"><span class="comment">// [5.2.1.16] Hermite polynomials:</span>
402<span class="keyword">double</span> <span class="identifier">hermite</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
403<span class="keyword">float</span> <span class="identifier">hermitef</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
404<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">hermitel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
405</pre>
406<p>
407      Returns the n'th Hermite polynomial of <span class="emphasis"><em>x</em></span>:
408    </p>
409<div class="blockquote"><blockquote class="blockquote"><p>
410        <span class="inlinemediaobject"><img src="../../equations/hermite_0.svg"></span>
411
412      </p></blockquote></div>
413<p>
414      See also <a class="link" href="sf_poly/hermite.html" title="Hermite Polynomials">hermite</a> for the
415      full template (header only) version of this function.
416    </p>
417<pre class="programlisting"><span class="comment">// [5.2.1.18] Laguerre polynomials:</span>
418<span class="keyword">double</span> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
419<span class="keyword">float</span> <span class="identifier">laguerref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
420<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">laguerrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
421</pre>
422<p>
423      Returns the n'th Laguerre polynomial of <span class="emphasis"><em>x</em></span>:
424    </p>
425<div class="blockquote"><blockquote class="blockquote"><p>
426        <span class="inlinemediaobject"><img src="../../equations/laguerre_0.svg"></span>
427
428      </p></blockquote></div>
429<p>
430      See also <a class="link" href="sf_poly/laguerre.html" title="Laguerre (and Associated) Polynomials">laguerre</a> for
431      the full template (header only) version of this function.
432    </p>
433<pre class="programlisting"><span class="comment">// [5.2.1.19] Legendre polynomials:</span>
434<span class="keyword">double</span> <span class="identifier">legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
435<span class="keyword">float</span> <span class="identifier">legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
436<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
437</pre>
438<p>
439      Returns the l'th Legendre polynomial of <span class="emphasis"><em>x</em></span>:
440    </p>
441<div class="blockquote"><blockquote class="blockquote"><p>
442        <span class="inlinemediaobject"><img src="../../equations/legendre_0.svg"></span>
443
444      </p></blockquote></div>
445<p>
446      See also <a class="link" href="sf_poly/legendre.html" title="Legendre (and Associated) Polynomials">legendre_p</a> for
447      the full template (header only) version of this function.
448    </p>
449<pre class="programlisting"><span class="comment">// [5.2.1.20] Riemann zeta function:</span>
450<span class="keyword">double</span> <span class="identifier">riemann_zeta</span><span class="special">(</span><span class="keyword">double</span><span class="special">);</span>
451<span class="keyword">float</span> <span class="identifier">riemann_zetaf</span><span class="special">(</span><span class="keyword">float</span><span class="special">);</span>
452<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">riemann_zetal</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">);</span>
453</pre>
454<p>
455      Returns the Riemann Zeta function of <span class="emphasis"><em>x</em></span>:
456    </p>
457<div class="blockquote"><blockquote class="blockquote"><p>
458        <span class="inlinemediaobject"><img src="../../equations/zeta1.svg"></span>
459
460      </p></blockquote></div>
461<p>
462      See also <a class="link" href="zetas/zeta.html" title="Riemann Zeta Function">zeta</a> for the full template
463      (header only) version of this function.
464    </p>
465<pre class="programlisting"><span class="comment">// [5.2.1.21] spherical Bessel functions (of the first kind):</span>
466<span class="keyword">double</span> <span class="identifier">sph_bessel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
467<span class="keyword">float</span> <span class="identifier">sph_besself</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
468<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_bessell</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
469</pre>
470<p>
471      Returns the spherical Bessel function of the first kind of <span class="emphasis"><em>x</em></span>
472      j<sub>n</sub>(x):
473    </p>
474<div class="blockquote"><blockquote class="blockquote"><p>
475        <span class="inlinemediaobject"><img src="../../equations/sbessel2.svg"></span>
476
477      </p></blockquote></div>
478<p>
479      See also <a class="link" href="bessel/sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds">sph_bessel</a> for
480      the full template (header only) version of this function.
481    </p>
482<pre class="programlisting"><span class="comment">// [5.2.1.22] spherical associated Legendre functions:</span>
483<span class="keyword">double</span> <span class="identifier">sph_legendre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">theta</span><span class="special">);</span>
484<span class="keyword">float</span> <span class="identifier">sph_legendref</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">theta</span><span class="special">);</span>
485<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_legendrel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">theta</span><span class="special">);</span>
486</pre>
487<p>
488      Returns the spherical associated Legendre function of <span class="emphasis"><em>l</em></span>,
489      <span class="emphasis"><em>m</em></span> and <span class="emphasis"><em>theta</em></span>:
490    </p>
491<div class="blockquote"><blockquote class="blockquote"><p>
492        <span class="inlinemediaobject"><img src="../../equations/spherical_3.svg"></span>
493
494      </p></blockquote></div>
495<p>
496      See also <a class="link" href="sf_poly/sph_harm.html" title="Spherical Harmonics">spherical_harmonic</a>
497      for the full template (header only) version of this function.
498    </p>
499<pre class="programlisting"><span class="comment">// [5.2.1.23] spherical Neumann functions;</span>
500<span class="comment">// spherical Bessel functions (of the second kind):</span>
501<span class="keyword">double</span> <span class="identifier">sph_neumann</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
502<span class="keyword">float</span> <span class="identifier">sph_neumannf</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
503<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sph_neumannl</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
504</pre>
505<p>
506      Returns the spherical Neumann function of <span class="emphasis"><em>x</em></span> y<sub>n</sub>(x):
507    </p>
508<div class="blockquote"><blockquote class="blockquote"><p>
509        <span class="inlinemediaobject"><img src="../../equations/sbessel2.svg"></span>
510
511      </p></blockquote></div>
512<p>
513      See also <a class="link" href="bessel/sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds">sph_bessel</a> for
514      the full template (header only) version of this function.
515    </p>
516<h5>
517<a name="math_toolkit.tr1_ref.h2"></a>
518      <span class="phrase"><a name="math_toolkit.tr1_ref.currently_unsupported_tr1_functi"></a></span><a class="link" href="tr1_ref.html#math_toolkit.tr1_ref.currently_unsupported_tr1_functi">Currently
519      Unsupported TR1 Functions</a>
520    </h5>
521<pre class="programlisting"><span class="comment">// [5.2.1.7] confluent hypergeometric functions:</span>
522<span class="keyword">double</span> <span class="identifier">conf_hyperg</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
523<span class="keyword">float</span> <span class="identifier">conf_hypergf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
524<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">conf_hypergl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
525
526<span class="comment">// [5.2.1.17] hypergeometric functions:</span>
527<span class="keyword">double</span> <span class="identifier">hyperg</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
528<span class="keyword">float</span> <span class="identifier">hypergf</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">float</span> <span class="identifier">x</span><span class="special">);</span>
529<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">hypergl</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">c</span><span class="special">,</span>
530<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">x</span><span class="special">);</span>
531</pre>
532<div class="note"><table border="0" summary="Note">
533<tr>
534<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/src/images/note.png"></td>
535<th align="left">Note</th>
536</tr>
537<tr><td align="left" valign="top"><p>
538        These two functions are not implemented as they are not believed to be numerically
539        stable.
540      </p></td></tr>
541</table></div>
542</div>
543<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
544<td align="left"></td>
545<td align="right"><div class="copyright-footer">Copyright © 2006-2019 Nikhar
546      Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos,
547      Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan
548      Råde, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg,
549      Daryle Walker and Xiaogang Zhang<p>
550        Distributed under the Boost Software License, Version 1.0. (See accompanying
551        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>)
552      </p>
553</div></td>
554</tr></table>
555<hr>
556<div class="spirit-nav">
557<a accesskey="p" href="c99.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../extern_c.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="../root_finding.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
558</div>
559</body>
560</html>
561