QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.20
Public Types | List of all members
LevyFlightDistribution Class Reference

Levy Flight distribution as needed by Boost Random. More...

#include <ql/experimental/math/levyflightdistribution.hpp>

Public Types

typedef Real input_type
 
typedef Real result_type
 

Public Member Functions

Constructors
 LevyFlightDistribution (Real xm=1.0, Real alpha=1.0)
 
 LevyFlightDistribution (const param_type &parm)
 Constructs a LevyFlightDistribution from its parameters.
 

Inspectors

Real xm () const
 Returns the xm parameter of the distribution.
 
Real alpha () const
 Returns the alpha parameter of the distribution.
 
Real min BOOST_PREVENT_MACRO_SUBSTITUTION () const
 Returns the smallest value that the distribution can produce.
 
Real max BOOST_PREVENT_MACRO_SUBSTITUTION () const
 Returns the largest value that the distribution can produce.
 
param_type param () const
 Returns the parameters of the distribution.
 
void param (const param_type &parm)
 Sets the parameters of the distribution.
 
void reset ()
 
Real operator() (Real x) const
 Returns the value of the pdf for x.
 
template<class Engine >
result_type operator() (Engine &eng) const
 
template<class Engine >
result_type operator() (Engine &eng, const param_type &parm) const
 
 BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR (os, LevyFlightDistribution, ed)
 Writes the distribution to a std::ostream.
 
 BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR (is, LevyFlightDistribution, ed)
 Reads the distribution from a std::istream.
 
 BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR (LevyFlightDistribution, lhs, rhs)
 

Detailed Description

Levy Flight distribution as needed by Boost Random.

The levy flight distribution is a random distribution with the following form:

\[ p(x) = \frac{\alpha x_m^{\alpha}}{x^{\alpha+1}} \]

with support over \( x \in [x_m, \infty) \) and the parameter \( \alpha > 0 \).

Levy Flight is normally defined as \( x_m = 1 \) and \( 0 < \alpha < 2 \), which is where \( p(x) \) has an infinite variance. However, the more general version, known as Pareto Type I, is well defined for \( \alpha > 2 \), so the current implementation does not restrict \( \alpha \) to be smaller than 2.

Constructor & Destructor Documentation

◆ LevyFlightDistribution()

LevyFlightDistribution ( Real  xm = 1.0,
Real  alpha = 1.0 
)
explicit

Constructs a LevyFlightDistribution with a given xm and alpha Requires: alpha > 0

Member Function Documentation

◆ reset()

void reset ( )

Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset.

◆ operator()() [1/2]

result_type operator() ( Engine &  eng) const

Returns a random variate distributed according to the levy flight distribution.

◆ operator()() [2/2]

result_type operator() ( Engine &  eng,
const param_type &  parm 
) const

Returns a random variate distributed according to the levy flight with parameters specified by parm

◆ BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR()

BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR ( LevyFlightDistribution  ,
lhs  ,
rhs   
)

Returns true iff the two distributions will produce identical sequences of values given equal generators.