• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>Airy Ai Function</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="../airy.html" title="Airy Functions">
9<link rel="prev" href="../airy.html" title="Airy Functions">
10<link rel="next" href="bi.html" title="Airy Bi Function">
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="../airy.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../airy.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="bi.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.airy.ai"></a><a class="link" href="ai.html" title="Airy Ai Function">Airy Ai Function</a>
28</h3></div></div></div>
29<h5>
30<a name="math_toolkit.airy.ai.h0"></a>
31        <span class="phrase"><a name="math_toolkit.airy.ai.synopsis"></a></span><a class="link" href="ai.html#math_toolkit.airy.ai.synopsis">Synopsis</a>
32      </h5>
33<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">airy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
34</pre>
35<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>
36
37 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
38 <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">airy_ai</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
39
40 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">&gt;</span>
41 <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">airy_ai</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&amp;);</span>
42
43<span class="special">}}</span> <span class="comment">// namespaces</span>
44</pre>
45<h5>
46<a name="math_toolkit.airy.ai.h1"></a>
47        <span class="phrase"><a name="math_toolkit.airy.ai.description"></a></span><a class="link" href="ai.html#math_toolkit.airy.ai.description">Description</a>
48      </h5>
49<p>
50        The function <a class="link" href="ai.html" title="Airy Ai Function">airy_ai</a> calculates
51        the Airy function Ai which is the first solution to the differential equation:
52      </p>
53<div class="blockquote"><blockquote class="blockquote"><p>
54          <span class="inlinemediaobject"><img src="../../../equations/airy.svg"></span>
55
56        </p></blockquote></div>
57<p>
58        See Weisstein, Eric W. "Airy Functions." From MathWorld--A Wolfram
59        Web Resource. <a href="http://mathworld.wolfram.com/AiryFunctions.html" target="_top">http://mathworld.wolfram.com/AiryFunctions.html</a>
60      </p>
61<p>
62        and <a href="https://en.wikipedia.org/wiki/Airy_zeta_function" target="_top">Airy Zeta
63        function</a>.
64      </p>
65<p>
66        The final <a class="link" href="../../policy.html" title="Chapter 21. Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
67        be used to control the behaviour of the function: how it handles errors,
68        what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 21. Policies: Controlling Precision, Error Handling etc">policy
69        documentation for more details</a>.
70      </p>
71<p>
72        The following graph illustrates how this function changes as <span class="emphasis"><em>x</em></span>
73        changes: for negative <span class="emphasis"><em>x</em></span> the function is cyclic, while
74        for positive <span class="emphasis"><em>x</em></span> the value tends to zero:
75      </p>
76<div class="blockquote"><blockquote class="blockquote"><p>
77          <span class="inlinemediaobject"><img src="../../../graphs/airy_ai.svg" align="middle"></span>
78
79        </p></blockquote></div>
80<h5>
81<a name="math_toolkit.airy.ai.h2"></a>
82        <span class="phrase"><a name="math_toolkit.airy.ai.accuracy"></a></span><a class="link" href="ai.html#math_toolkit.airy.ai.accuracy">Accuracy</a>
83      </h5>
84<p>
85        This function is implemented entirely in terms of the Bessel functions <a class="link" href="../bessel/bessel_first.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a> and <a class="link" href="../bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_k</a> - refer to those
86        functions for detailed accuracy information.
87      </p>
88<p>
89        In general though, the relative error is low (less than 100 ε) for <span class="emphasis"><em>x
90        &gt; 0</em></span> while only the absolute error is low for <span class="emphasis"><em>x &lt;
91        0</em></span> as the following error plot illustrates:
92      </p>
93<div class="blockquote"><blockquote class="blockquote"><p>
94          <span class="inlinemediaobject"><img src="../../../graphs/ai__double.svg" align="middle"></span>
95
96        </p></blockquote></div>
97<h5>
98<a name="math_toolkit.airy.ai.h3"></a>
99        <span class="phrase"><a name="math_toolkit.airy.ai.testing"></a></span><a class="link" href="ai.html#math_toolkit.airy.ai.testing">Testing</a>
100      </h5>
101<p>
102        Since this function is implemented in terms of other special functions, there
103        are only a few basic sanity checks, using test values from <a href="http://functions.wolfram.com/" target="_top">Wolfram
104        Airy Functions</a>.
105      </p>
106<h5>
107<a name="math_toolkit.airy.ai.h4"></a>
108        <span class="phrase"><a name="math_toolkit.airy.ai.implementation"></a></span><a class="link" href="ai.html#math_toolkit.airy.ai.implementation">Implementation</a>
109      </h5>
110<p>
111        This function is implemented in terms of the Bessel functions using the relations:
112      </p>
113<div class="blockquote"><blockquote class="blockquote"><p>
114          <span class="inlinemediaobject"><img src="../../../equations/airy_ai.svg"></span>
115
116        </p></blockquote></div>
117</div>
118<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
119<td align="left"></td>
120<td align="right"><div class="copyright-footer">Copyright © 2006-2019 Nikhar
121      Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos,
122      Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan
123      Råde, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg,
124      Daryle Walker and Xiaogang Zhang<p>
125        Distributed under the Boost Software License, Version 1.0. (See accompanying
126        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>)
127      </p>
128</div></td>
129</tr></table>
130<hr>
131<div class="spirit-nav">
132<a accesskey="p" href="../airy.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../airy.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="bi.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
133</div>
134</body>
135</html>
136