mirror of
https://github.com/boostorg/math.git
synced 2026-01-19 04:22:09 +00:00
122 lines
4.0 KiB
Plaintext
122 lines
4.0 KiB
Plaintext
[section:mapairy_dist Map-Airy Distribution]
|
||
|
||
``#include <boost/math/distributions/mapairy.hpp>``
|
||
|
||
template <class RealType = double,
|
||
class ``__Policy`` = ``__policy_class`` >
|
||
class mapairy_distribution;
|
||
|
||
typedef mapairy_distribution<> mapairy;
|
||
|
||
template <class RealType, class ``__Policy``>
|
||
class mapairy_distribution
|
||
{
|
||
public:
|
||
typedef RealType value_type;
|
||
typedef Policy policy_type;
|
||
|
||
BOOST_MATH_GPU_ENABLED mapairy_distribution(RealType location = 0, RealType scale = 1);
|
||
|
||
BOOST_MATH_GPU_ENABLED RealType location()const;
|
||
BOOST_MATH_GPU_ENABLED RealType scale()const;
|
||
};
|
||
|
||
It is special case of a [@http://en.wikipedia.org/wiki/Stable_distribution stable distribution]
|
||
with shape parameter [alpha]=3/2, [beta]=1.
|
||
|
||
This distribution is also defined as [beta] = −1, which is inverted about the x-axis.
|
||
|
||
[@http://en.wikipedia.org/wiki/Probability_distribution probability distribution function PDF]
|
||
given by:
|
||
|
||
[equation mapairy_ref1] [/f(x; \mu=0, c=1/\sqrt[3]{18}) = 2 \exp \left( \frac{2}{3} x^3 \right) \left( -x \mathrm{Ai}(x^2) - \mathrm{Ai}'(x^2) \right)]
|
||
|
||
The location parameter [mu] is the location of the distribution,
|
||
while the scale parameter [c] determines the width of the distribution. If the location is
|
||
zero, and the scale 1, then the result is a standard map-airy
|
||
distribution.
|
||
|
||
The distribution describes the probability distribution of the area under a Brownian excursion over a unit interval.
|
||
|
||
The following graph shows how the distributions moves as the
|
||
location parameter changes:
|
||
|
||
[graph mapairy_pdf1]
|
||
|
||
While the following graph shows how the shape (scale) parameter alters
|
||
the distribution:
|
||
|
||
[graph mapairy_pdf2]
|
||
|
||
[h4 Member Functions]
|
||
|
||
BOOST_MATH_GPU_ENABLED mapairy_distribution(RealType location = 0, RealType scale = 1);
|
||
|
||
Constructs a mapairy distribution, with location parameter /location/
|
||
and scale parameter /scale/. When these parameters take their default
|
||
values (location = 0, scale = 1)
|
||
then the result is a Standard map-airy Distribution.
|
||
|
||
Requires scale > 0, otherwise calls __domain_error.
|
||
|
||
BOOST_MATH_GPU_ENABLED RealType location()const;
|
||
|
||
Returns the location parameter of the distribution.
|
||
|
||
BOOST_MATH_GPU_ENABLED RealType scale()const;
|
||
|
||
Returns the scale parameter of the distribution.
|
||
|
||
[h4 Non-member Accessors]
|
||
|
||
All the [link math_toolkit.dist_ref.nmp usual non-member accessor functions]
|
||
that are generic to all distributions are supported: __usual_accessors.
|
||
For this distribution all non-member accessor functions are marked with `BOOST_MATH_GPU_ENABLED` and can
|
||
be run on both host and device.
|
||
|
||
Note however that the map-airy distribution does not have a skewness,
|
||
kurtosis, etc. See __math_undefined
|
||
[/link math_toolkit.pol_ref.assert_undefined mathematically undefined function]
|
||
to control whether these should fail to compile with a BOOST_STATIC_ASSERTION_FAILURE,
|
||
which is the default.
|
||
|
||
Alternately, the functions __skewness, __kurtosis and __kurtosis_excess will all
|
||
return a __domain_error if called.
|
||
|
||
The domain of the random variable is \[-[max_value], +[min_value]\].
|
||
|
||
[h4 Accuracy]
|
||
|
||
The error is within 4 epsilon except for the rapidly decaying left tail.
|
||
|
||
Errors in the PDF at 64-bit double precision:
|
||
|
||
[$../graphs/mapairy_pdf_accuracy_64.png]
|
||
|
||
Errors in the CDF at 64-bit double precision:
|
||
|
||
[$../graphs/mapairy_cdf_accuracy_64.png]
|
||
|
||
Errors in the CDF-complement at 64-bit double precision:
|
||
|
||
[$../graphs/mapairy_ccdf_accuracy_64.png]
|
||
|
||
[h4 Implementation]
|
||
|
||
See references.
|
||
|
||
[h4 References]
|
||
|
||
* [@https://mathworld.wolfram.com/Map-AiryDistribution.html Wolfram MathWorld: Map-Airy Distribution]
|
||
* T. Yoshimura, Numerical Evaluation and High Precision Approximation Formula for Map-Airy Distribution,
|
||
DOI: 10.36227/techrxiv.172053942.27675733/v1, 2024.
|
||
|
||
[endsect][/section:mapairy_dist mapairy]
|
||
|
||
[/ mapairy.qbk
|
||
Copyright Takuma Yoshimura 2024.
|
||
Distributed under 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).
|
||
]
|