Synopsis

namespace std {
    namespace tr1 {
    // UTILITIES
 template<class Engine,
    class Dist>
    class variate_generator;

    // SIMPLE ENGINES
 template<class UIntType,
    UIntType A, UIntType C, UIntType M>
    class linear_congruential;
 template<class UIntType,
    int W, int N, int M, int R,
    UIntType A, int U, int S,
    UIntType B, int T, UIntType C, int L>
    class mersenne_twister;
 template<class IntType,
    IntType M, int S, int R>
    class subtract_with_carry;
 template<class RealType,
    int W, int S, int R>
    class subtract_with_carry_01;
 class random_device;

    // COMPOUND ENGINES
 template<class Engine,
    int P, int R>
    class discard_block;
 template<class Engine1, int S1,
    class Engine2, int S2>
    class xor_combine;

    // ENGINES WITH PREDEFINED PARAMETERS
 typedef linear_congruential<unsigned long, 16807, 0, 2147483647> minstd_rand0;
 typedef linear_congruential<unsigned long, 48271, 0, 2147483647> minstd_rand;

 typedef mersenne_twister<ui-type, 32, 624, 
    397, 31,0x9908b0df, 11, 7, 0x9d2c5680, 15, 0xefc60000, 18> mt19937;

 typedef subtract_with_carry_01<float, 24, 10, 24> ranlux_base_01;
 typedef subtract_with_carry_01<double, 48, 10, 24> ranlux64_base_01;

 typedef discard_block<subtract_with_carry<i-type, 
    1 << 24, 10, 24>, 223, 24> ranlux3;

 typedef discard_block<subtract_with_carry<i-type, 
    1 << 24, 10, 24>, 389, 24> ranlux4;

 typedef discard_block<subtract_with_carry_01<float, 24, 10, 24>, 
    223, 24> ranlux3_01;

 typedef discard_block<subtract_with_carry_01<float, 24, 10, 24>, 
    389, 24> ranlux4_01;

    // DISTRIBUTIONS
 template<class IntType = int>
    class uniform_int;
 template<class RealType = double>
    class bernoulli_distribution;
 template<class IntType = int, class RealType = double>
    class geometric_distribution;
 template<class IntType = int, class RealType = double>
    class poisson_distribution;
 template<class IntType = int, class RealType = double>
    class binomial_distribution;

 template<class RealType = double>
    class uniform_real;
 template<class RealType = double>
    class exponential_distribution;
 template<class RealType = double>
    class normal_distribution;
 template<class RealType = double>
    class gamma_distribution;
    }  // namespace tr1
}  // namespace std