|
Boost : |
From: christopher diggins (cdiggins_at_[hidden])
Date: 2005-05-23 14:54:20
AFAICT the shortest way to emulate the std::rand() function using
boost/random.hpp would be as follows:
unsigned int longhand_boost_rand() {
boost::mt19937 rng;
boost::uniform_int<> dist(0, RAND_MAX);
boost::variate_generator
<
boost::mt19937,
boost::uniform_int<>
> generator(rng, dist);
return generator();
}
(apologies if I made any mistakes)
I was wondering if there would be any reason not to provide a utility
function which made it easier to write random number generators. For
instance, the following:
template<class Dist_T, class Rng_T>
typename boost::variate_generator<Rng_T, Dist_T>::result_type
generate_rand(Dist_T dist, Rng_T rng) {
return boost::variate_generator<Rng_T, Dist_T>(rng, dist)();
}
would allow us to rewrite our rand function as follows.
unsigned int shorthand_boost_rand() {
return generate_rand(boost::uniform_int<>(0, RAND_MAX),
boost::mt19937());
}
By the way, congratulations on an excellent product to the random.hpp team.
-- Christopher Diggins http://www.cdiggins.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk