blob: c08c16c117bf98e3e2961e6a84e915d0f785ac19 [file] [log] [blame]
[/
Copyright (c) 2012 John Maddock
Use, modification and distribution are subject to the
Boost Software License, Version 1.0. (See accompanying file
LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
]
[section:airy Airy Functions]
[section:ai Airy Ai Function]
[heading Synopsis]
``
#include <boost/math/special_functions/airy.hpp>
``
namespace boost { namespace math {
template <class T>
``__sf_result`` airy_ai(T x);
template <class T, class Policy>
``__sf_result`` airy_ai(T x, const Policy&);
}} // namespaces
[heading Description]
The function __airy_ai calculates the Airy function Ai which is the first solution
to the differential equation:
[equation airy]
See Weisstein, Eric W. "Airy Functions." From MathWorld--A Wolfram Web Resource.
[@http://mathworld.wolfram.com/AiryFunctions.html];
[optional_policy]
The following graph illustrates how this function changes as /x/ changes: for negative /x/
the function is cyclic, while for positive /x/ the value tends to zero:
[graph airy_ai]
[heading Accuracy]
This function is implemented entirely in terms of the Bessel functions
__cyl_bessel_j and __cyl_bessel_k - refer to those functions for detailed accuracy information.
In general though, the relative error is low (less than 100 [epsilon]) for /x > 0/ while
only the absolute error is low for /x < 0/.
[heading Testing]
Since this function is implemented in terms of other special functions, there are only a few
basic sanity checks, using test values from [@http://functions.wolfram.com/ Wolfram Airy Functions].
[heading Implementation]
This function is implemented in terms of the Bessel functions using the relations:
[equation airy_ai]
[endsect]
[section:bi Airy Bi Function]
[heading Synopsis]
``
#include <boost/math/special_functions/airy.hpp>
``
namespace boost { namespace math {
template <class T>
``__sf_result`` airy_bi(T x);
template <class T, class Policy>
``__sf_result`` airy_bi(T x, const Policy&);
}} // namespaces
[heading Description]
The function __airy_bi calculates the Airy function Bi which is the second solution to the differential equation:
[equation airy]
[optional_policy]
The following graph illustrates how this function changes as /x/ changes: for negative /x/
the function is cyclic, while for positive /x/ the value tends to infinity:
[graph airy_bi]
[heading Accuracy]
This function is implemented entirely in terms of the Bessel functions
__cyl_bessel_i and __cyl_bessel_j - refer to those functions for detailed accuracy information.
In general though, the relative error is low (less than 100 [epsilon]) for /x > 0/ while
only the absolute error is low for /x < 0/.
[heading Testing]
Since this function is implemented in terms of other special functions, there are only a few
basic sanity checks, using test values from [@http://functions.wolfram.com functions.wolfram.com].
[heading Implementation]
This function is implemented in terms of the Bessel functions using the relations:
[equation airy_bi]
[endsect]
[section:aip Airy Ai' Function]
[heading Synopsis]
``
#include <boost/math/special_functions/airy.hpp>
``
namespace boost { namespace math {
template <class T>
``__sf_result`` airy_ai_prime(T x);
template <class T, class Policy>
``__sf_result`` airy_ai_prime(T x, const Policy&);
}} // namespaces
[heading Description]
The function __airy_ai_prime calculates the Airy function Ai' which is the derivative of the first solution to the differential equation:
[equation airy]
[optional_policy]
The following graph illustrates how this function changes as /x/ changes: for negative /x/
the function is cyclic, while for positive /x/ the value tends to zero:
[graph airy_aip]
[heading Accuracy]
This function is implemented entirely in terms of the Bessel functions
__cyl_bessel_j and __cyl_bessel_k - refer to those functions for detailed accuracy information.
In general though, the relative error is low (less than 100 [epsilon]) for /x > 0/ while
only the absolute error is low for /x < 0/.
[heading Testing]
Since this function is implemented in terms of other special functions, there are only a few
basic sanity checks, using test values from [@http://functions.wolfram.com functions.wolfram.com].
[heading Implementation]
This function is implemented in terms of the Bessel functions using the relations:
[equation airy_aip]
[endsect]
[section:bip Airy Bi' Function]
[heading Synopsis]
``
#include <boost/math/special_functions/airy.hpp>
``
namespace boost { namespace math {
template <class T>
``__sf_result`` airy_bi_prime(T x);
template <class T, class Policy>
``__sf_result`` airy_bi_prime(T x, const Policy&);
}} // namespaces
[heading Description]
The function __airy_bi_prime calculates the Airy function Bi' which is the derivative of the second solution to the differential equation:
[equation airy]
[optional_policy]
The following graph illustrates how this function changes as /x/ changes: for negative /x/
the function is cyclic, while for positive /x/ the value tends to infinity:
[graph airy_bi]
[heading Accuracy]
This function is implemented entirely in terms of the Bessel functions
__cyl_bessel_i and __cyl_bessel_j - refer to those functions for detailed accuracy information.
In general though, the relative error is low (less than 100 [epsilon]) for /x > 0/ while
only the absolute error is low for /x < 0/.
[heading Testing]
Since this function is implemented in terms of other special functions, there are only a few
basic sanity checks, using test values from [@http://functions.wolfram.com functions.wolfram.com].
[heading Implementation]
This function is implemented in terms of the Bessel functions using the relations:
[equation airy_bip]
[endsect]
[endsect]