mirror of
https://github.com/boostorg/utility.git
synced 2025-05-08 18:34:02 +00:00
minstd_rand has been moved to Core
This commit is contained in:
parent
e0ecf92764
commit
12c95c48cf
@ -11,48 +11,6 @@
|
|||||||
// An implementation of minstd_rand that does not require
|
// An implementation of minstd_rand that does not require
|
||||||
// the Random library
|
// the Random library
|
||||||
|
|
||||||
#include <boost/cstdint.hpp>
|
#include <boost/core/detail/minstd_rand.hpp>
|
||||||
|
|
||||||
namespace boost
|
|
||||||
{
|
|
||||||
namespace detail
|
|
||||||
{
|
|
||||||
|
|
||||||
class minstd_rand
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
|
|
||||||
boost::uint_least32_t x_;
|
|
||||||
|
|
||||||
enum { a = 48271, m = 2147483647 };
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
minstd_rand(): x_( 1 )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
explicit minstd_rand( boost::uint_least32_t x ): x_( x % m )
|
|
||||||
{
|
|
||||||
if( x_ == 0 )
|
|
||||||
{
|
|
||||||
x_ = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
boost::uint_least32_t operator()()
|
|
||||||
{
|
|
||||||
boost::uint_least64_t y = x_;
|
|
||||||
|
|
||||||
y = ( a * y ) % m;
|
|
||||||
|
|
||||||
x_ = static_cast<boost::uint_least32_t>( y );
|
|
||||||
|
|
||||||
return x_;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace detail
|
|
||||||
} // namespace boost
|
|
||||||
|
|
||||||
#endif // #ifndef BOOST_UTILITY_DETAIL_MINSTD_RAND_HPP_INCLUDED
|
#endif // #ifndef BOOST_UTILITY_DETAIL_MINSTD_RAND_HPP_INCLUDED
|
||||||
|
Loading…
x
Reference in New Issue
Block a user