QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.20
Public Types | Public Member Functions | Protected Attributes | List of all members
IsotropicRandomWalk< Distribution, Engine > Class Template Reference

Isotropic random walk. More...

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

Public Types

typedef boost::variate_generator< Engine, Distribution > VariateGenerator
 

Public Member Functions

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

Protected Attributes

VariateGenerator variate_
 
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()

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.