# Spec MersenneTwisterRng
Mersenne Twister 19937 Random Number Generator.

Extends | Rng
All Extended | Rng
Defined in | <seqan/random.h>
Signature | `template <> class Rng<MersenneTwister>;`

## Member Function Overview

- `Rng::Rng([seed]);`
  Constructor Mersenne Twister Rng.

### Member Functions Inherited From Rng

- `operator()`

## Interface Function Overview

- `void reSeed(mt[, seed]);`
  Reset and re-seed Mersenne Twister Rng.

### Interface Functions Inherited From Rng

- `pickRandomNumber`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From Rng

- `MaxValue`
- `MinValue`
- `Value`

## Member Functions Detail

### `Rng::Rng([seed]);`

Constructor Mersenne Twister Rng.

#### Parameters

`seed` | The `unsigned` value to use for seeding, defaults to 0.

#### Data Races

Thread safety unknown!

## Interface Functions Detail

### `void reSeed(mt[, seed]);`

Reset and re-seed Mersenne Twister Rng.

#### Parameters

`mt` | The MersenneTwisterRng to re-seed.
`seed` | The `unsigned` to use for re-seeding, defaults to 0.

#### Data Races

Thread safety unknown!

#### Dox Sources

    /*!
     * @class MersenneTwisterRng
     *
     * @extends Rng
     *
     * @headerfile <seqan/random.h>
     *
     * @brief Mersenne Twister 19937 Random Number Generator.
     *
     * @signature template <> class Rng<MersenneTwister>;
     *
     * @fn MersenneTwisterRng::Rng
     *
     * @brief Constructor Mersenne Twister Rng.
     *
     * @signature Rng::Rng([seed]);
     *
     * @param[in] seed The <tt>unsigned</tt> value to use for seeding, defaults to
     *                 0.
     *
     * @fn MersenneTwisterRng#reSeed
     *
     * @brief Reset and re-seed Mersenne Twister Rng.
     *
     * @signature void reSeed(mt[, seed]);
     *
     * @param[in,out] mt The MersenneTwisterRng to re-seed.
     * @param[in] seed The <tt>unsigned</tt> to use for re-seeding, defaults to 0.
     */