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 (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.