...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
#include <boost/math/distributions/landau.hpp>
template <class RealType = double, class Policy = policies::policy<> > class landau_distribution; typedef landau_distribution<> landau; template <class RealType, class Policy> class landau_distribution { public: typedef RealType value_type; typedef Policy policy_type; BOOST_MATH_GPU_ENABLED landau_distribution(RealType location = 0, RealType scale = 1); BOOST_MATH_GPU_ENABLED RealType location()const; BOOST_MATH_GPU_ENABLED RealType scale()const; BOOST_MATH_GPU_ENABLED RealType bias()const; };
The Landau distribution is named after Lev Landau. It is special case of a stable distribution with shape parameter α=1, β=1.
probability distribution function PDF given by:
The location parameter μ is the location of the distribution, while the scale parameter [c] determines the width of the distribution, but unlike other scalable distributions, it has a peculiarity that changes the location of the distribution. If the location is zero, and the scale 1, then the result is a standard landau distribution.
The distribution describe the statistical property of the energy loss by charged particles as they traversing a thin layer of matter.
The following graph shows how the distributions moves as the location parameter changes:
While the following graph shows how the shape (scale) parameter alters the distribution:
BOOST_MATH_GPU_ENABLED landau_distribution(RealType location = 0, RealType scale = 1);
Constructs a landau 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 landau 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.
BOOST_MATH_GPU_ENABLED RealType bias()const;
Returns the amount of translation by the scale parameter.
bias = - 2 / π log(c)
All the usual non-member accessor
functions that are generic to all distributions are supported:
Cumulative Distribution Function,
Probability Density Function,
Quantile, Hazard Function, Cumulative Hazard Function,
__logcdf, __logpdf, mean,
median, mode,
variance, standard deviation, skewness, kurtosis,
kurtosis_excess,
range and support. 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 landau distribution does not have a mean, standard deviation, etc. See mathematically undefined function to control whether these should fail to compile with a BOOST_STATIC_ASSERTION_FAILURE, which is the default.
Alternately, the functions mean, standard deviation, variance, skewness, kurtosis and kurtosis_excess will all return a domain_error if called.
The domain of the random variable is [-[max_value], +[min_value]].
The error is within 4 epsilon except for the rapidly decaying left tail.
Errors in the PDF at 64-bit double precision:
Errors in the CDF at 64-bit double precision:
Errors in the CDF-complement at 64-bit double precision:
See references.