NAME

QuantLib::RandomizedLDS - Randomized (random shift) low-discrepancy sequence.

SYNOPSIS


#include <ql/math/randomnumbers/randomizedlds.hpp>

Public Types


typedef Sample< std::vector< Real > > sample_type

Public Member Functions


RandomizedLDS (const LDS &ldsg, const PRS &prsg)

RandomizedLDS (const LDS &ldsg)

RandomizedLDS (Size dimensionality, BigNatural ldsSeed=0, BigNatural prsSeed=0)

const sample_type & nextSequence () const
returns next sample using a given randomizing vector
const sample_type & lastSequence () const

void nextRandomizer ()

Size dimension () const

Detailed Description

template<class LDS, class PRS = RandomSequenceGenerator<MersenneTwisterUniformRng>> class QuantLib::RandomizedLDS< LDS, PRS >

Randomized (random shift) low-discrepancy sequence.

Random-shifts a uniform low-discrepancy sequence of dimension $ N $ by adding (modulo 1 for each coordinate) a pseudo-random uniform deviate in $ (0, 1)^N. $ It is used for implementing Randomized Quasi Monte Carlo.

The uniform low discrepancy sequence is supplied by LDS; the uniform pseudo-random sequence is supplied by PRS.

Both class LDS and PRS must implement the following interface:

            LDS::sample_type LDS::nextSequence() const;
            Size LDS::dimension() const;

Precondition:

LDS and PRS must have the same dimension $ N $

Warning

Inverting LDS and PRS is possible, but it doesn't make sense.

Possible enhancements

implement the other randomization algorithms

Tests

correct initialization is tested.

Member Function Documentation

void nextRandomizer ()

update the randomizing vector and re-initialize the low discrepancy generator

Author

Generated automatically by Doxygen for QuantLib from the source code.