|
Boost : |
From: Cromwell Enage (sponage_at_[hidden])
Date: 2004-06-24 13:52:58
Hello, Darren.
--- Darren Cook <darren_at_[hidden]> wrote:
> What I wanted to do was generate a random number in
> the full range of an integer template parameter,
> e.g. whether I used the template with unsigned char,
> or a 128-bit integer. (in the end I decided
> to come back to this when I needed that flexibility
> and implemented using 32-bit integers and the
> standard library's srand48() and mrand48()).
>
> So, can Boost.Random generate a random number to
> match the type?
This should be possible. Try
boost::uniform_int<T>
dist(
(std::numeric_limits<T>::min)(),
(std::numeric_limits<T>::max)()
);
as your distribution. (The extra parentheses arise
from a recent thread on using min/max.) For a
user-defined type such as your 128-bit integer, you'll
have to provide a template specialization of
std::numeric_limits before creating the distribution.
Make sure your base rng engine can actually cover at
least the integer range specified in
std::numeric_limits; boost::mt19937 should be good
enough for your purposes.
HTH
Cromwell Enage
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!
http://promotions.yahoo.com/new_mail
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk