Proposals:RandomNumbers: Difference between revisions
Stefan Klein (talk | contribs) (Boost library also has many random generators implemented) |
|||
Line 33: | Line 33: | ||
So, I would say that the MersenneTwister indeed is a good option. | So, I would say that the MersenneTwister indeed is a good option. | ||
= Current Status = |
Revision as of 19:50, 5 July 2005
Proposal
Resolve platform dependancies with current random number generation. Many registration algorithms depend on random sampling, exactly where I came across the problem.
Discussions
It would be great to standardize the random number generator to be sufficiently random, fast and generate the same sequences (from a given seed) across platforms. The discussion culminated with a post: http://www.itk.org/mailman/private/insight-developers/2005-January/006220.html I'm not sure any action happened on the suggestions.
More information on mailing list under "random number generator".
Mersenne Twister
It may be worth following the thread http://www.itk.org/mailman/private/insight-developers/2005-January/006189.html A stable portable may also be obtained from http://www-personal.engin.umich.edu/~wagnerr/MersenneTwister.html
Boost library
The Boost site has a good library for random generators:
http://www.boost.org/libs/random/index.html
Among others, it contains an implementation of the Mersenne Twister. So it may be a helpful source for writing an itkMersenneTwister class, or something like that.
In a previous email to the ITK users mailing list I described some tests to check the actual 'randomness' of two random generators, vnl_sample (which is currently used in ITK) and vnl_random (which is in a more recent version of VXL):
http://public.kitware.com/pipermail/insight-users/2005-March/012341.html
It appeared that vnl_random is much better. What I didn't mention in this email, is that I also tested the MersenneTwister from the Boost library. It gave similar results as vnl_random.
So, I would say that the MersenneTwister indeed is a good option.