# QuantLib_RandomizedLDS man page

RandomizedLDS< LDS, PRS > — Randomized (random shift) low-discrepancy sequence.

## Synopsis

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

### Public Types

typedefSample< std::vector<Real> >sample_type

### Public Member Functions

RandomizedLDS(const LDS &ldsg, const PRS &prsg)RandomizedLDS(const LDS &ldsg)RandomizedLDS(Sizedimensionality,BigNaturalldsSeed=0,BigNaturalprsSeed=0)

constsample_type&nextSequence() const

returns next sample using a given randomizing vector

constsample_type&lastSequence() const

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

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

## Referenced By

nextRandomizer(3) and RandomizedLDS(3) are aliases of QuantLib_RandomizedLDS(3).