From 658ce378a39ea663d808d7747dba2f348ab754ce Mon Sep 17 00:00:00 2001 From: Steven Watanabe Date: Sun, 9 Oct 2011 23:13:31 +0000 Subject: [PATCH] Merge random from the trunk [SVN r74867] --- .../boost/random/geometric_distribution.hpp | 2 +- include/boost/random/mersenne_twister.hpp | 4 +- include/boost/random/seed_seq.hpp | 4 +- test/test_ecuyer1988.cpp | 2 +- test/test_geometric_distribution.cpp | 4 +- test/test_hellekalek1995.cpp | 2 +- test/test_independent_bits31.cpp | 2 +- test/test_independent_bits32.cpp | 2 +- test/test_knuth_b.cpp | 2 +- test/test_kreutzer1986.cpp | 2 +- test/test_lagged_fibonacci.cpp | 2 +- test/test_lagged_fibonacci1279.cpp | 2 +- test/test_lagged_fibonacci19937.cpp | 2 +- test/test_lagged_fibonacci2281.cpp | 2 +- test/test_lagged_fibonacci23209.cpp | 2 +- test/test_lagged_fibonacci3217.cpp | 2 +- test/test_lagged_fibonacci4423.cpp | 2 +- test/test_lagged_fibonacci44497.cpp | 2 +- test/test_lagged_fibonacci607.cpp | 2 +- test/test_lagged_fibonacci9689.cpp | 2 +- test/test_linear_feedback_shift.cpp | 2 +- test/test_minstd_rand.cpp | 2 +- test/test_minstd_rand0.cpp | 2 +- test/test_mt11213b.cpp | 2 +- test/test_mt19937.cpp | 55 ++++++++++++++++++- test/test_mt19937_64.cpp | 2 +- test/test_rand48.cpp | 2 +- test/test_ranlux24.cpp | 2 +- test/test_ranlux24_base.cpp | 2 +- test/test_ranlux3.cpp | 2 +- test/test_ranlux3_01.cpp | 2 +- test/test_ranlux4.cpp | 2 +- test/test_ranlux48.cpp | 2 +- test/test_ranlux48_base.cpp | 2 +- test/test_ranlux4_01.cpp | 2 +- test/test_ranlux64_3.cpp | 2 +- test/test_ranlux64_3_01.cpp | 2 +- test/test_ranlux64_4.cpp | 2 +- test/test_ranlux64_4_01.cpp | 2 +- test/test_seed_seq.cpp | 40 +++++++------- test/test_taus88.cpp | 2 +- 41 files changed, 116 insertions(+), 63 deletions(-) diff --git a/include/boost/random/geometric_distribution.hpp b/include/boost/random/geometric_distribution.hpp index 6342ac7..0816b67 100644 --- a/include/boost/random/geometric_distribution.hpp +++ b/include/boost/random/geometric_distribution.hpp @@ -124,7 +124,7 @@ public: RealType p() const { return _p; } /** Returns the smallest value that the distribution can produce. */ - IntType min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return IntType(1); } + IntType min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return IntType(0); } /** Returns the largest value that the distribution can produce. */ IntType max BOOST_PREVENT_MACRO_SUBSTITUTION () const diff --git a/include/boost/random/mersenne_twister.hpp b/include/boost/random/mersenne_twister.hpp index ca13bdf..e5ded29 100644 --- a/include/boost/random/mersenne_twister.hpp +++ b/include/boost/random/mersenne_twister.hpp @@ -159,7 +159,7 @@ public: // fix up the state if it's all zeroes. if((x[0] & (~static_cast(0) << r)) == 0) { - for(std::size_t j = 1; i < n; ++j) { + for(std::size_t j = 1; j < n; ++j) { if(x[j] != 0) return; } x[0] = static_cast(1) << (w-1); @@ -175,7 +175,7 @@ public: // fix up the state if it's all zeroes. if((x[0] & (~static_cast(0) << r)) == 0) { - for(std::size_t j = 1; i < n; ++j) { + for(std::size_t j = 1; j < n; ++j) { if(x[j] != 0) return; } x[0] = static_cast(1) << (w-1); diff --git a/include/boost/random/seed_seq.hpp b/include/boost/random/seed_seq.hpp index a541a53..461fba3 100644 --- a/include/boost/random/seed_seq.hpp +++ b/include/boost/random/seed_seq.hpp @@ -98,8 +98,8 @@ public: r3 = r3 ^ (r3 >> 27); r3 = (r3 * 1566083941u) & mask; value_type r4 = r3 - k%m; - *(first + (k+p)%n) ^= r4; - *(first + (k+q)%n) ^= r3; + *(first + (k+p)%n) ^= r3; + *(first + (k+q)%n) ^= r4; *(first + k%n) = r4; } } diff --git a/test/test_ecuyer1988.cpp b/test/test_ecuyer1988.cpp index 19cd1e5..81f0674 100644 --- a/test/test_ecuyer1988.cpp +++ b/test/test_ecuyer1988.cpp @@ -16,7 +16,7 @@ #define BOOST_RANDOM_SEED_WORDS 2 #define BOOST_RANDOM_VALIDATION_VALUE 2060321752U -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 1416886025U +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 1928563088U #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 776923198U #define BOOST_RANDOM_GENERATE_VALUES { 0x7AE0C087U, 0x948A8A31U, 0xBE5CCBA9U, 0x1316692CU } diff --git a/test/test_geometric_distribution.cpp b/test/test_geometric_distribution.cpp index 06b5a8d..bb54d02 100644 --- a/test/test_geometric_distribution.cpp +++ b/test/test_geometric_distribution.cpp @@ -16,9 +16,9 @@ #define BOOST_RANDOM_ARG1_DEFAULT 0.5 #define BOOST_RANDOM_ARG1_VALUE 0.25 -#define BOOST_RANDOM_DIST0_MIN 1 +#define BOOST_RANDOM_DIST0_MIN 0 #define BOOST_RANDOM_DIST0_MAX (std::numeric_limits::max)() -#define BOOST_RANDOM_DIST1_MIN 1 +#define BOOST_RANDOM_DIST1_MIN 0 #define BOOST_RANDOM_DIST1_MAX (std::numeric_limits::max)() #define BOOST_RANDOM_TEST1_PARAMS (0.9999) diff --git a/test/test_hellekalek1995.cpp b/test/test_hellekalek1995.cpp index 1388397..cc69ebd 100644 --- a/test/test_hellekalek1995.cpp +++ b/test/test_hellekalek1995.cpp @@ -16,7 +16,7 @@ #define BOOST_RANDOM_SEED_WORDS 1 #define BOOST_RANDOM_VALIDATION_VALUE 1187812169U -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 1081665111U +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 1912573642U #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 618743552U #define BOOST_RANDOM_GENERATE_VALUES { 0x5642A47BU, 0x1F6987E8U, 0xD35860E7U, 0xC8C661ABU } diff --git a/test/test_independent_bits31.cpp b/test/test_independent_bits31.cpp index 0c38f8a..aaa3f10 100644 --- a/test/test_independent_bits31.cpp +++ b/test/test_independent_bits31.cpp @@ -18,7 +18,7 @@ typedef boost::random::independent_bits_engine la #define BOOST_RANDOM_SEED_WORDS 607 #define BOOST_RANDOM_VALIDATION_VALUE 3543833U -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 7852929U +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 1364481U #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 4372778U #define BOOST_RANDOM_GENERATE_VALUES { 0xF61A5094U, 0xFC4BA046U, 0xF1C41E92U, 0x3D82FE61U } diff --git a/test/test_lagged_fibonacci1279.cpp b/test/test_lagged_fibonacci1279.cpp index b7bbba7..69a12f1 100644 --- a/test/test_lagged_fibonacci1279.cpp +++ b/test/test_lagged_fibonacci1279.cpp @@ -16,7 +16,7 @@ #define BOOST_RANDOM_SEED_WORDS 1279*2 #define BOOST_RANDOM_VALIDATION_VALUE 0.39647253381274083 -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.37536953918742455 +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.97108839261370505 #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 0.56042480761195179 #define BOOST_RANDOM_GENERATE_VALUES { 0x4D102C47U, 0xC4E610D7U, 0xF29333BEU, 0x6E45EBE7U } diff --git a/test/test_lagged_fibonacci19937.cpp b/test/test_lagged_fibonacci19937.cpp index c95972e..f28a71d 100644 --- a/test/test_lagged_fibonacci19937.cpp +++ b/test/test_lagged_fibonacci19937.cpp @@ -16,7 +16,7 @@ #define BOOST_RANDOM_SEED_WORDS 19937*2 #define BOOST_RANDOM_VALIDATION_VALUE 0.24396310480293693 -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.48319870930434661 +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.95892429604358043 #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 0.0029754638678802792 #define BOOST_RANDOM_GENERATE_VALUES { 0x5CE9850CU, 0xAA20067BU, 0x4E48643BU, 0xA4A59F4BU } diff --git a/test/test_lagged_fibonacci2281.cpp b/test/test_lagged_fibonacci2281.cpp index 39f5de8..b87ab82 100644 --- a/test/test_lagged_fibonacci2281.cpp +++ b/test/test_lagged_fibonacci2281.cpp @@ -16,7 +16,7 @@ #define BOOST_RANDOM_SEED_WORDS 2281*2 #define BOOST_RANDOM_VALIDATION_VALUE 0.91955231927349246 -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.58796187519502041 +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.4447517699440553 #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 0.087280273457821522 #define BOOST_RANDOM_GENERATE_VALUES { 0x7EB0882AU, 0xCE09BE60U, 0xD53046CFU, 0x93257E41U } diff --git a/test/test_lagged_fibonacci23209.cpp b/test/test_lagged_fibonacci23209.cpp index 08f2cfa..84918d9 100644 --- a/test/test_lagged_fibonacci23209.cpp +++ b/test/test_lagged_fibonacci23209.cpp @@ -16,7 +16,7 @@ #define BOOST_RANDOM_SEED_WORDS 23209*2 #define BOOST_RANDOM_VALIDATION_VALUE 0.086299988971202168 -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.59787206924233871 +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.63611281281476195 #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 0.0019836425785868528 #define BOOST_RANDOM_GENERATE_VALUES { 0x4301DE0AU, 0xAD2584E3U, 0x7C28463CU, 0x74848542U } diff --git a/test/test_lagged_fibonacci3217.cpp b/test/test_lagged_fibonacci3217.cpp index d2b52ce..f5bcf10 100644 --- a/test/test_lagged_fibonacci3217.cpp +++ b/test/test_lagged_fibonacci3217.cpp @@ -16,7 +16,7 @@ #define BOOST_RANDOM_SEED_WORDS 3217*2 #define BOOST_RANDOM_VALIDATION_VALUE 0.54223093970093927 -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.51719299526538975 +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.073852702370395207 #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 0.1805114746514036 #define BOOST_RANDOM_GENERATE_VALUES { 0x4938F127U, 0x86C65CFEU, 0x65356579U, 0xA6CDC325U } diff --git a/test/test_lagged_fibonacci4423.cpp b/test/test_lagged_fibonacci4423.cpp index 98a93f0..f19d4e2 100644 --- a/test/test_lagged_fibonacci4423.cpp +++ b/test/test_lagged_fibonacci4423.cpp @@ -16,7 +16,7 @@ #define BOOST_RANDOM_SEED_WORDS 4423*2 #define BOOST_RANDOM_VALIDATION_VALUE 0.23188533286820601 -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.51262293730517783 +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.3872440622693567 #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 0.012893676760814543 #define BOOST_RANDOM_GENERATE_VALUES { 0x6D4DBAFU, 0x8039C1A9U, 0x3DA53D58U, 0x95155BE5U } diff --git a/test/test_lagged_fibonacci44497.cpp b/test/test_lagged_fibonacci44497.cpp index 4447773..0983089 100644 --- a/test/test_lagged_fibonacci44497.cpp +++ b/test/test_lagged_fibonacci44497.cpp @@ -16,7 +16,7 @@ #define BOOST_RANDOM_SEED_WORDS 44497*2 #define BOOST_RANDOM_VALIDATION_VALUE 0.12519369894159738 -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.63574754742431594 +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.92285669730527431 #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 0.0019836425785868528 #define BOOST_RANDOM_GENERATE_VALUES { 0x6A2DCEA9U, 0x4668EFB4U, 0x711E352FU, 0xA963C43BU } diff --git a/test/test_lagged_fibonacci607.cpp b/test/test_lagged_fibonacci607.cpp index 393f49a..3095414 100644 --- a/test/test_lagged_fibonacci607.cpp +++ b/test/test_lagged_fibonacci607.cpp @@ -16,7 +16,7 @@ #define BOOST_RANDOM_SEED_WORDS 607*2 #define BOOST_RANDOM_VALIDATION_VALUE 0.039230772001715764 -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.73011070026216984 +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.73105942788451372 #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 0.72330291632639643 #define BOOST_RANDOM_GENERATE_VALUES { 0x78EB0905U, 0x61766547U, 0xCB507F64U, 0x94FA3EC0U } diff --git a/test/test_lagged_fibonacci9689.cpp b/test/test_lagged_fibonacci9689.cpp index af185ff..d8af5e6 100644 --- a/test/test_lagged_fibonacci9689.cpp +++ b/test/test_lagged_fibonacci9689.cpp @@ -16,7 +16,7 @@ #define BOOST_RANDOM_SEED_WORDS 9689*2 #define BOOST_RANDOM_VALIDATION_VALUE 0.059230573043926427 -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.84199156986666068 +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 0.80900890657466462 #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 0.0039672851571737056 #define BOOST_RANDOM_GENERATE_VALUES { 0x32EF18BEU, 0x79277C11U, 0xA383438U, 0x32155952U } diff --git a/test/test_linear_feedback_shift.cpp b/test/test_linear_feedback_shift.cpp index b0f0e98..7ab7001 100644 --- a/test/test_linear_feedback_shift.cpp +++ b/test/test_linear_feedback_shift.cpp @@ -17,7 +17,7 @@ typedef boost::random::linear_feedback_shift_engine +#include +#include +#include #define BOOST_RANDOM_URNG boost::random::mt19937 @@ -17,9 +20,59 @@ // validation by experiment from mt19937.c #define BOOST_RANDOM_VALIDATION_VALUE 4123659995U -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 3107690757U +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 666528879U #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 3408548740U #define BOOST_RANDOM_GENERATE_VALUES { 0xD091BB5CU, 0x22AE9EF6U, 0xE7E1FAEEU, 0xD5C31F79U } #include "test_generator.ipp" + +struct seed_seq_0 { + template + void generate(It begin, It end) const { + std::fill(begin, end, boost::uint32_t(0)); + } +}; + +struct seed_seq_1 { + template + void generate(It begin, It end) const { + std::fill(begin, end, boost::uint32_t(0)); + *(end - 1) = 1; + } +}; + +BOOST_AUTO_TEST_CASE(test_special_seed) { + { + seed_seq_1 seed; + std::vector vec(624); + seed.generate(vec.begin(), vec.end()); + + std::vector::iterator it = vec.begin(); + boost::mt19937 gen1(it, vec.end()); + BOOST_CHECK_EQUAL(gen1(), 0); + BOOST_CHECK_EQUAL(gen1(), 0); + + boost::mt19937 gen2(seed); + BOOST_CHECK_EQUAL(gen2(), 0); + BOOST_CHECK_EQUAL(gen2(), 0); + + BOOST_CHECK_EQUAL(gen1, gen2); + } + { + seed_seq_0 seed; + std::vector vec(624); + seed.generate(vec.begin(), vec.end()); + + std::vector::iterator it = vec.begin(); + boost::mt19937 gen1(it, vec.end()); + BOOST_CHECK_EQUAL(gen1(), 1141379330u); + BOOST_CHECK_EQUAL(gen1(), 0); + + boost::mt19937 gen2(seed); + BOOST_CHECK_EQUAL(gen2(), 1141379330u); + BOOST_CHECK_EQUAL(gen2(), 0); + + BOOST_CHECK_EQUAL(gen1, gen2); + } +} diff --git a/test/test_mt19937_64.cpp b/test/test_mt19937_64.cpp index 937e557..9800c1e 100644 --- a/test/test_mt19937_64.cpp +++ b/test/test_mt19937_64.cpp @@ -18,7 +18,7 @@ // validation from the C++0x draft (n3090) #define BOOST_RANDOM_VALIDATION_VALUE UINT64_C(9981545732273789042) -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE UINT64_C(10059787671936601387) +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE UINT64_C(12176471137395770412) #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE UINT64_C(13543700832025962283) #define BOOST_RANDOM_GENERATE_VALUES { 0xF6F6AEA6U, 0xC96D191CU, 0x8BC80F1CU, 0x401F7AC7U } diff --git a/test/test_rand48.cpp b/test/test_rand48.cpp index 2a61b40..79b61c1 100644 --- a/test/test_rand48.cpp +++ b/test/test_rand48.cpp @@ -18,7 +18,7 @@ // by experiment from lrand48() #define BOOST_RANDOM_VALIDATION_VALUE 1993516219U -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 1127873718U +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 1286950069U #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 839037874U #define BOOST_RANDOM_GENERATE_VALUES { 0x55424A4U, 0x3A2CCEF5U, 0x6ADB4A65U, 0x2B019719U } diff --git a/test/test_ranlux24.cpp b/test/test_ranlux24.cpp index cb3bdeb..34c9ba0 100644 --- a/test/test_ranlux24.cpp +++ b/test/test_ranlux24.cpp @@ -18,7 +18,7 @@ // validation from the C++0x draft (n3090) #define BOOST_RANDOM_VALIDATION_VALUE 9901578U -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 4870344U +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 10086048U #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 3888733U #define BOOST_RANDOM_GENERATE_VALUES { 0x55E57B2CU, 0xF2DEF915U, 0x6D1A0CD9U, 0xCA0109F9U } diff --git a/test/test_ranlux24_base.cpp b/test/test_ranlux24_base.cpp index e5cea03..615ed1f 100644 --- a/test/test_ranlux24_base.cpp +++ b/test/test_ranlux24_base.cpp @@ -17,7 +17,7 @@ // validation from the C++0x draft (n3126). #define BOOST_RANDOM_VALIDATION_VALUE 7937952U -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 836370U +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 14368281U #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 7739608U #define BOOST_RANDOM_GENERATE_VALUES { 0x55E57B2CU, 0xF2DEF915U, 0x6D1A0CD9U, 0xCA0109F9U } diff --git a/test/test_ranlux3.cpp b/test/test_ranlux3.cpp index c9c5cb6..284cf5f 100644 --- a/test/test_ranlux3.cpp +++ b/test/test_ranlux3.cpp @@ -17,7 +17,7 @@ // principal operation validated with CLHEP, values by experiment #define BOOST_RANDOM_VALIDATION_VALUE 5957620U -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 1848500U +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 11848780U #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 11620328U #define BOOST_RANDOM_GENERATE_VALUES { 0x55E57B2CU, 0xF2DEF915U, 0x6D1A0CD9U, 0xCA0109F9U } diff --git a/test/test_ranlux3_01.cpp b/test/test_ranlux3_01.cpp index 7cce77a..97b8198 100644 --- a/test/test_ranlux3_01.cpp +++ b/test/test_ranlux3_01.cpp @@ -18,7 +18,7 @@ // principal operation validated with CLHEP, values by experiment #define BOOST_RANDOM_VALIDATION_VALUE 5957620/std::pow(2.0f,24) -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 1848500/std::pow(2.0f,24) +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 11848780/std::pow(2.0f,24) #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 11620328/std::pow(2.0f,24) #define BOOST_RANDOM_GENERATE_VALUES { 0x55E57B2CU, 0xF2DEF915U, 0x6D1A0CD9U, 0xCA0109F9U } diff --git a/test/test_ranlux4.cpp b/test/test_ranlux4.cpp index 8daacb7..1ba17e9 100644 --- a/test/test_ranlux4.cpp +++ b/test/test_ranlux4.cpp @@ -17,7 +17,7 @@ // principal operation validated with CLHEP, values by experiment #define BOOST_RANDOM_VALIDATION_VALUE 8587295U -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 6375782U +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 10794046U #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 4515722U #define BOOST_RANDOM_GENERATE_VALUES { 0x55E57B2CU, 0xF2DEF915U, 0x6D1A0CD9U, 0xCA0109F9U } diff --git a/test/test_ranlux48.cpp b/test/test_ranlux48.cpp index 846b520..bd4fa09 100644 --- a/test/test_ranlux48.cpp +++ b/test/test_ranlux48.cpp @@ -18,7 +18,7 @@ // validation from the C++0x draft (n3090) #define BOOST_RANDOM_VALIDATION_VALUE UINT64_C(249142670248501) -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE UINT64_C(93216637457044) +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE UINT64_C(130319672235788) #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE UINT64_C(154356577406237) #define BOOST_RANDOM_GENERATE_VALUES { 0xFCE57B2CU, 0xF2DF1555U, 0x1A0C0CD9U, 0x490109FAU } diff --git a/test/test_ranlux48_base.cpp b/test/test_ranlux48_base.cpp index c9a3aca..3f55713 100644 --- a/test/test_ranlux48_base.cpp +++ b/test/test_ranlux48_base.cpp @@ -18,7 +18,7 @@ // validation from the C++0x draft (n3126). #define BOOST_RANDOM_VALIDATION_VALUE UINT64_C(61839128582725) -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE UINT64_C(107228250000854) +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE UINT64_C(15556320400833) #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE UINT64_C(172853405006548) #define BOOST_RANDOM_GENERATE_VALUES { 0xFCE57B2CU, 0xF2DF1555U, 0x1A0C0CD9U, 0x490109FAU } diff --git a/test/test_ranlux4_01.cpp b/test/test_ranlux4_01.cpp index 5335242..db1f6d9 100644 --- a/test/test_ranlux4_01.cpp +++ b/test/test_ranlux4_01.cpp @@ -18,7 +18,7 @@ // principal operation validated with CLHEP, values by experiment #define BOOST_RANDOM_VALIDATION_VALUE 8587295/std::pow(2.0f,24) -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 6375782/std::pow(2.0f,24) +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 10794046/std::pow(2.0f,24) #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 4515722/std::pow(2.0f,24) #define BOOST_RANDOM_GENERATE_VALUES { 0x55E57B2CU, 0xF2DEF915U, 0x6D1A0CD9U, 0xCA0109F9U } diff --git a/test/test_ranlux64_3.cpp b/test/test_ranlux64_3.cpp index 240d642..0c9fbde 100644 --- a/test/test_ranlux64_3.cpp +++ b/test/test_ranlux64_3.cpp @@ -19,7 +19,7 @@ // principal operation validated with CLHEP, values by experiment #define BOOST_RANDOM_VALIDATION_VALUE UINT64_C(141789170949364) -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE UINT64_C(97179253367494) +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE UINT64_C(85538657982635) #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE UINT64_C(101724473226966) #define BOOST_RANDOM_GENERATE_VALUES { 0xC35F616BU, 0xDC3C4DF1U, 0xF3F90D0AU, 0x206F9C9EU } diff --git a/test/test_ranlux64_3_01.cpp b/test/test_ranlux64_3_01.cpp index f3c9eab..9477677 100644 --- a/test/test_ranlux64_3_01.cpp +++ b/test/test_ranlux64_3_01.cpp @@ -18,7 +18,7 @@ // principal operation validated with CLHEP, values by experiment #define BOOST_RANDOM_VALIDATION_VALUE INT64_C(141789170949364)/std::pow(2.0, 48) -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE UINT64_C(97179253367494)/std::pow(2.0, 48) +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE UINT64_C(85538657982635)/std::pow(2.0, 48) #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE UINT64_C(101724473226966)/std::pow(2.0, 48) #define BOOST_RANDOM_GENERATE_VALUES { 0xC35F616BU, 0xDC3C4DF1U, 0xF3F90D0AU, 0x206F9C9EU } diff --git a/test/test_ranlux64_4.cpp b/test/test_ranlux64_4.cpp index 667659e..df1c542 100644 --- a/test/test_ranlux64_4.cpp +++ b/test/test_ranlux64_4.cpp @@ -19,7 +19,7 @@ // principal operation validated with CLHEP, values by experiment #define BOOST_RANDOM_VALIDATION_VALUE UINT64_C(199461971133682) -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE UINT64_C(63570328604787) +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE UINT64_C(160535400540538) #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE UINT64_C(40074210927900) #define BOOST_RANDOM_GENERATE_VALUES { 0xC35F616BU, 0xDC3C4DF1U, 0xF3F90D0AU, 0x206F9C9EU } diff --git a/test/test_ranlux64_4_01.cpp b/test/test_ranlux64_4_01.cpp index cd38a3d..1fb251d 100644 --- a/test/test_ranlux64_4_01.cpp +++ b/test/test_ranlux64_4_01.cpp @@ -18,7 +18,7 @@ // principal operation validated with CLHEP, values by experiment #define BOOST_RANDOM_VALIDATION_VALUE INT64_C(199461971133682)/std::pow(2.0, 48) -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE UINT64_C(63570328604787)/std::pow(2.0, 48) +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE UINT64_C(160535400540538)/std::pow(2.0, 48) #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE UINT64_C(40074210927900)/std::pow(2.0, 48) #define BOOST_RANDOM_GENERATE_VALUES { 0xC35F616BU, 0xDC3C4DF1U, 0xF3F90D0AU, 0x206F9C9EU } diff --git a/test/test_seed_seq.cpp b/test/test_seed_seq.cpp index 79a0e1a..f616b49 100644 --- a/test/test_seed_seq.cpp +++ b/test/test_seed_seq.cpp @@ -24,16 +24,16 @@ BOOST_AUTO_TEST_CASE(test_seed_seq) { boost::uint32_t store32[10]; boost::uint64_t store64[10]; boost::uint32_t expected[10] = { - 2571534471u, - 852093106u, - 3994144234u, - 904246505u, - 3404579686u, - 1508446734u, - 3679033230u, - 2550178480u, - 4205639301u, - 268720383u + 3155793538u, + 2047427591u, + 2886057794u, + 280666868u, + 2184015838u, + 4035763234u, + 808987374u, + 3177165994u, + 2993445429u, + 3110180644u }; std::fill_n(&store32[0], 10, 0); std::fill_n(&store64[0], 10, 0); @@ -50,16 +50,16 @@ BOOST_AUTO_TEST_CASE(test_seed_seq) { ¶m[0], ¶m[0] + 4, &expected_param[0], &expected_param[0] + 4); boost::uint32_t expected_r[10] = { - 249299179u, - 1602610063u, - 745496312u, - 3444440002u, - 1462959439u, - 4120764957u, - 2551678045u, - 2909251680u, - 3652199668u, - 1330108271u + 2681148375u, + 3302224839u, + 249244011u, + 1549723892u, + 3429166360u, + 2812310274u, + 3902694127u, + 1014283089u, + 1122383019u, + 494552679u }; std::vector data = list_of(2)(3)(4); diff --git a/test/test_taus88.cpp b/test/test_taus88.cpp index b0e77ba..6e12f61 100644 --- a/test/test_taus88.cpp +++ b/test/test_taus88.cpp @@ -16,7 +16,7 @@ #define BOOST_RANDOM_SEED_WORDS 3 #define BOOST_RANDOM_VALIDATION_VALUE 3535848941U -#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 2005586065U +#define BOOST_RANDOM_SEED_SEQ_VALIDATION_VALUE 2562639222U #define BOOST_RANDOM_ITERATOR_VALIDATION_VALUE 3762466828U #define BOOST_RANDOM_GENERATE_VALUES { 0x2B55504U, 0x5403F102U, 0xED45297EU, 0x6B84007U }