#ifndef RANDOMNUMBERGENERATORFACTORY_DEF_
#define RANDOMNUMBERGENERATORFACTORY_DEF_

/** BOOST_PP_SEQ of all random::boost distribution types,
 * see see http://www.boost.org/doc/libs/1_45_0/doc/html/boost_random/reference.html#boost_random.reference.concepts
 */
#define distribution_seq \
(uniform_smallint)\
(uniform_int)\
(uniform_01)\
(uniform_real)\
(bernoulli_distribution)\
(binomial_distribution)\
(cauchy_distribution)\
(gamma_distribution)\
(poisson_distribution)\
(geometric_distribution)\
(triangle_distribution)\
(exponential_distribution)\
(normal_distribution)\
(lognormal_distribution)
/*
(uniform_on_sphere)
*/
/** BOOST_PP_SEQ of all random::boost engine types,
 * see see http://www.boost.org/doc/libs/1_45_0/doc/html/boost_random/reference.html#boost_random.reference.concepts
 */
#define engine_seq \
(minstd_rand0) \
(mt19937)

/*
(minstd_rand)\
(rand48)\
(ecuyer1988)\
(kreutzer1986)\
(taus88)\
(hellekalek1995)\
(mt11213b)\
*/

#define engine_seq_a \
(lagged_fibonacci607)
/*
(lagged_fibonacci1279)\
(lagged_fibonacci2281)\
(lagged_fibonacci3217)\
(lagged_fibonacci4423)\
(lagged_fibonacci9689)\
(lagged_fibonacci19937)\
(lagged_fibonacci23209)\
(lagged_fibonacci44497)\
(ranlux3)\
(ranlux4)\
(ranlux64_3)\
(ranlux64_4)\
(ranlux3_01)\
(ranlux4_01)\
(ranlux64_3_01)\
(ranlux64_4_01)
*/
#endif /* RANDOMNUMBERGENERATORFACTORY_DEF_ */
