QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
Loading...
Searching...
No Matches
IsotropicRandomWalk< Distribution, Engine > Class Template Reference

Isotropic random walk. More...

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

Public Member Functions

 IsotropicRandomWalk (Engine eng, Distribution dist, Size dim, Array weights=Array(), unsigned long seed=0)
template<class InputIterator>
void nextReal (InputIterator first)
void setDimension (Size dim)
void setDimension (Size dim, const Array &weights)
void setDimension (Size dim, const Array &lowerBound, const Array &upperBound)

Protected Attributes

Engine engine_
Distribution distribution_
MersenneTwisterUniformRng rng_
Array weights_
Size dim_

Detailed Description

template<class Distribution, class Engine>
class QuantLib::IsotropicRandomWalk< Distribution, Engine >

Isotropic random walk.

A variate is used to draw from a random element of a probability distribution. The draw corresponds to the radius of a d-dimensional sphere. The position on the surface of the d-dimensional sphere is randomly chosen with all points on the surface having the same probability, i.e. all directions are isotropic and the step is randomly drawn from the given variate.

Member Function Documentation

◆ setDimension()

template<class Distribution, class Engine>
void setDimension ( Size dim,
const Array & lowerBound,
const Array & upperBound )

The isotropic random walk will not adjust its draw to be within the lower and upper bounds, but if the limits are provided, they are used to rescale the sphere so as to make it to an ellipsoid, with different radius in different dimensions.