Boost logo

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