# RandomizedLDS (3) - Linux Manuals

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

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