Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r64298 - in sandbox/SOC/2010/quasi_random: boost/random boost/random/detail libs/random/test
From: jvd_at_[hidden]
Date: 2010-07-23 08:30:03


Author: qrng
Date: 2010-07-23 08:30:02 EDT (Fri, 23 Jul 2010)
New Revision: 64298
URL: http://svn.boost.org/trac/boost/changeset/64298

Log:
Added tests for all quasi-random number generators, dropped the GSL's notion to discard the first sobol sequence element.

Added:
   sandbox/SOC/2010/quasi_random/libs/random/test/niederreiter_base2_validade.cpp (contents, props changed)
   sandbox/SOC/2010/quasi_random/libs/random/test/sobol_validate.cpp (contents, props changed)
   sandbox/SOC/2010/quasi_random/libs/random/test/test_qrng_functions.hpp (contents, props changed)
Text files modified:
   sandbox/SOC/2010/quasi_random/boost/random/detail/gray_coded_qrng_base.hpp | 9
   sandbox/SOC/2010/quasi_random/boost/random/niederreiter_base2.hpp | 2
   sandbox/SOC/2010/quasi_random/boost/random/sobol.hpp | 3
   sandbox/SOC/2010/quasi_random/libs/random/test/faure_validate.cpp | 741 +++++++++++++++++----------------------
   sandbox/SOC/2010/quasi_random/libs/random/test/gsl_validate.cpp | 45 -
   5 files changed, 348 insertions(+), 452 deletions(-)

Modified: sandbox/SOC/2010/quasi_random/boost/random/detail/gray_coded_qrng_base.hpp
==============================================================================
--- sandbox/SOC/2010/quasi_random/boost/random/detail/gray_coded_qrng_base.hpp (original)
+++ sandbox/SOC/2010/quasi_random/boost/random/detail/gray_coded_qrng_base.hpp 2010-07-23 08:30:02 EDT (Fri, 23 Jul 2010)
@@ -90,18 +90,11 @@
     }
   }
 
- void compute_current_vector(const char *msg)
- {
- update_state(this->seq_count, msg);
- }
-
 private:
 
   void compute_next_vector()
   {
- update_state(LatticeT::next(this->seq_count),
- "compute_next_vector");
- this->seq_count++;
+ update_state(this->seq_count++, "compute_next_vector");
   }
 
   void update_state(std::size_t cnt, const char *msg)

Modified: sandbox/SOC/2010/quasi_random/boost/random/niederreiter_base2.hpp
==============================================================================
--- sandbox/SOC/2010/quasi_random/boost/random/niederreiter_base2.hpp (original)
+++ sandbox/SOC/2010/quasi_random/boost/random/niederreiter_base2.hpp 2010-07-23 08:30:02 EDT (Fri, 23 Jul 2010)
@@ -287,8 +287,6 @@
     return bits[i][j];
   }
 
- static std::size_t next(std::size_t seq) { return seq++; }
-
 private:
   IntType bits[bit_count][Dimension];
 };

Modified: sandbox/SOC/2010/quasi_random/boost/random/sobol.hpp
==============================================================================
--- sandbox/SOC/2010/quasi_random/boost/random/sobol.hpp (original)
+++ sandbox/SOC/2010/quasi_random/boost/random/sobol.hpp 2010-07-23 08:30:02 EDT (Fri, 23 Jul 2010)
@@ -286,8 +286,6 @@
     return bits[i][j];
   }
 
- static std::size_t next(std::size_t seq) { return ++seq; }
-
 private:
   IntType bits[bit_count][Dimension];
 };
@@ -351,7 +349,6 @@
   void seed()
   {
     base_t::reset_state();
- base_t::compute_current_vector("sobol::seed");
   }
 
   /** @copydoc boost::random::niederreiter_base2::seed(std::size_t) */

Modified: sandbox/SOC/2010/quasi_random/libs/random/test/faure_validate.cpp
==============================================================================
--- sandbox/SOC/2010/quasi_random/libs/random/test/faure_validate.cpp (original)
+++ sandbox/SOC/2010/quasi_random/libs/random/test/faure_validate.cpp 2010-07-23 08:30:02 EDT (Fri, 23 Jul 2010)
@@ -9,8 +9,8 @@
 
 #define BOOST_TEST_MAIN
 #include <boost/test/unit_test.hpp>
-#include <boost/test/floating_point_comparison.hpp>
 
+#include "test_qrng_functions.hpp"
 
 //
 // DESCRIPTION:
@@ -22,431 +22,352 @@
 // TOMS subdirectory in http://www.netlib.org
 
 
-//Spatial dimension: 2
-//N: 100
-//Base: 2
-//Vectors skipped: 15
-
+// Spatial dimension: 2
+// N: 100
+// Base: 2
+// Vectors skipped: 15
 double faure_02_100[100][2] =
-{ { 0.937500, 0.062500},
-{ 0.031250, 0.531250},
-{ 0.531250, 0.031250},
-{ 0.281250, 0.281250},
-{ 0.781250, 0.781250},
-{ 0.156250, 0.156250},
-{ 0.656250, 0.656250},
-{ 0.406250, 0.906250},
-{ 0.906250, 0.406250},
-{ 0.093750, 0.468750},
-{ 0.593750, 0.968750},
-{ 0.343750, 0.718750},
-{ 0.843750, 0.218750},
-{ 0.218750, 0.843750},
-{ 0.718750, 0.343750},
-{ 0.468750, 0.093750},
-{ 0.968750, 0.593750},
-{ 0.015625, 0.796875},
-{ 0.515625, 0.296875},
-{ 0.265625, 0.046875},
-{ 0.765625, 0.546875},
-{ 0.140625, 0.421875},
-{ 0.640625, 0.921875},
-{ 0.390625, 0.671875},
-{ 0.890625, 0.171875},
-{ 0.078125, 0.234375},
-{ 0.578125, 0.734375},
-{ 0.328125, 0.984375},
-{ 0.828125, 0.484375},
-{ 0.203125, 0.609375},
-{ 0.703125, 0.109375},
-{ 0.453125, 0.359375},
-{ 0.953125, 0.859375},
-{ 0.046875, 0.265625},
-{ 0.546875, 0.765625},
-{ 0.296875, 0.515625},
-{ 0.796875, 0.015625},
-{ 0.171875, 0.890625},
-{ 0.671875, 0.390625},
-{ 0.421875, 0.140625},
-{ 0.921875, 0.640625},
-{ 0.109375, 0.703125},
-{ 0.609375, 0.203125},
-{ 0.359375, 0.453125},
-{ 0.859375, 0.953125},
-{ 0.234375, 0.078125},
-{ 0.734375, 0.578125},
-{ 0.484375, 0.828125},
-{ 0.984375, 0.328125},
-{ 0.007812, 0.664062},
-{ 0.507812, 0.164062},
-{ 0.257812, 0.414062},
-{ 0.757812, 0.914062},
-{ 0.132812, 0.039062},
-{ 0.632812, 0.539062},
-{ 0.382812, 0.789062},
-{ 0.882812, 0.289062},
-{ 0.070312, 0.351562},
-{ 0.570312, 0.851562},
-{ 0.320312, 0.601562},
-{ 0.820312, 0.101562},
-{ 0.195312, 0.976562},
-{ 0.695312, 0.476562},
-{ 0.445312, 0.226562},
-{ 0.945312, 0.726562},
-{ 0.039062, 0.132812},
-{ 0.539062, 0.632812},
-{ 0.289062, 0.882812},
-{ 0.789062, 0.382812},
-{ 0.164062, 0.507812},
-{ 0.664062, 0.007812},
-{ 0.414062, 0.257812},
-{ 0.914062, 0.757812},
-{ 0.101562, 0.820312},
-{ 0.601562, 0.320312},
-{ 0.351562, 0.070312},
-{ 0.851562, 0.570312},
-{ 0.226562, 0.445312},
-{ 0.726562, 0.945312},
-{ 0.476562, 0.695312},
-{ 0.976562, 0.195312},
-{ 0.023438, 0.398438},
-{ 0.523438, 0.898438},
-{ 0.273438, 0.648438},
-{ 0.773438, 0.148438},
-{ 0.148438, 0.773438},
-{ 0.648438, 0.273438},
-{ 0.398438, 0.023438},
-{ 0.898438, 0.523438},
-{ 0.085938, 0.585938},
-{ 0.585938, 0.085938},
-{ 0.335938, 0.335938},
-{ 0.835938, 0.835938},
-{ 0.210938, 0.210938},
-{ 0.710938, 0.710938},
-{ 0.460938, 0.960938},
-{ 0.960938, 0.460938},
-{ 0.054688, 0.929688},
-{ 0.554688, 0.429688},
-{ 0.304688, 0.179688} };
-
-//Spatial dimension: 7
-//N: 100
-//Base: 7
-//Vectors skipped: 2400
-
-double faure_07_100[100][7] =
-{{ 0.999584, 0.460225, 0.941274, 0.320283, 0.985006, 0.833403, 0.110371},
-{ 0.000059, 0.243708, 0.376569, 0.649372, 0.668531, 0.358244, 0.222883},
-{ 0.142917, 0.386565, 0.519426, 0.792229, 0.811388, 0.501101, 0.365740},
-{ 0.285774, 0.529422, 0.662284, 0.935087, 0.954245, 0.643958, 0.508598},
-{ 0.428631, 0.672279, 0.805141, 0.077944, 0.097102, 0.786815, 0.651455},
-{ 0.571488, 0.815137, 0.947998, 0.220801, 0.239960, 0.929672, 0.794312},
-{ 0.714345, 0.957994, 0.090855, 0.363658, 0.382817, 0.072529, 0.937169},
-{ 0.857202, 0.100851, 0.233712, 0.506515, 0.525674, 0.215386, 0.080026},
-{ 0.020468, 0.406973, 0.682692, 0.098352, 0.260368, 0.092937, 0.100434},
-{ 0.163325, 0.549830, 0.825549, 0.241209, 0.403225, 0.235795, 0.243291},
-{ 0.306182, 0.692688, 0.968406, 0.384066, 0.546082, 0.378652, 0.386149},
-{ 0.449039, 0.835545, 0.111263, 0.526923, 0.688939, 0.521509, 0.529006},
-{ 0.591896, 0.978402, 0.254120, 0.669780, 0.831796, 0.664366, 0.671863},
-{ 0.734753, 0.121259, 0.396977, 0.812638, 0.974653, 0.807223, 0.814720},
-{ 0.877611, 0.264116, 0.539835, 0.955495, 0.117511, 0.950080, 0.957577},
-{ 0.040876, 0.570239, 0.988814, 0.547331, 0.852204, 0.827631, 0.977985},
-{ 0.183733, 0.713096, 0.131671, 0.690189, 0.995062, 0.970488, 0.120843},
-{ 0.326590, 0.855953, 0.274528, 0.833046, 0.137919, 0.113346, 0.263700},
-{ 0.469447, 0.998810, 0.417386, 0.975903, 0.280776, 0.256203, 0.406557},
-{ 0.612304, 0.141667, 0.560243, 0.118760, 0.423633, 0.399060, 0.549414},
-{ 0.755162, 0.284524, 0.703100, 0.261617, 0.566490, 0.541917, 0.692271},
-{ 0.898019, 0.427381, 0.845957, 0.404474, 0.709347, 0.684774, 0.835128},
-{ 0.061284, 0.590647, 0.152079, 0.996311, 0.301184, 0.562325, 0.855536},
-{ 0.204141, 0.733504, 0.294937, 0.139168, 0.444041, 0.705182, 0.998394},
-{ 0.346998, 0.876361, 0.437794, 0.282025, 0.586898, 0.848040, 0.141251},
-{ 0.489855, 0.019218, 0.580651, 0.424882, 0.729755, 0.990897, 0.284108},
-{ 0.632713, 0.162075, 0.723508, 0.567740, 0.872613, 0.133754, 0.426965},
-{ 0.775570, 0.304932, 0.866365, 0.710597, 0.015470, 0.276611, 0.569822},
-{ 0.918427, 0.447790, 0.009222, 0.853454, 0.158327, 0.419468, 0.712679},
-{ 0.081692, 0.753912, 0.458202, 0.302434, 0.893021, 0.154162, 0.590230},
-{ 0.224549, 0.896769, 0.601059, 0.445291, 0.035878, 0.297019, 0.733087},
-{ 0.367406, 0.039626, 0.743916, 0.588148, 0.178735, 0.439876, 0.875945},
-{ 0.510264, 0.182483, 0.886773, 0.731005, 0.321592, 0.582733, 0.018802},
-{ 0.653121, 0.325341, 0.029631, 0.873862, 0.464449, 0.725591, 0.161659},
-{ 0.795978, 0.468198, 0.172488, 0.016719, 0.607306, 0.868448, 0.304516},
-{ 0.938835, 0.611055, 0.315345, 0.159576, 0.750164, 0.011305, 0.447373},
-{ 0.102100, 0.917177, 0.764324, 0.751413, 0.484857, 0.888856, 0.467781},
-{ 0.244957, 0.060035, 0.907182, 0.894270, 0.627715, 0.031713, 0.610638},
-{ 0.387815, 0.202892, 0.050039, 0.037127, 0.770572, 0.174570, 0.753496},
-{ 0.530672, 0.345749, 0.192896, 0.179985, 0.913429, 0.317427, 0.896353},
-{ 0.673529, 0.488606, 0.335753, 0.322842, 0.056286, 0.460284, 0.039210},
-{ 0.816386, 0.631463, 0.478610, 0.465699, 0.199143, 0.603142, 0.182067},
-{ 0.959243, 0.774320, 0.621467, 0.608556, 0.342000, 0.745999, 0.324924},
-{ 0.122508, 0.080443, 0.070447, 0.200393, 0.076694, 0.623550, 0.345332},
-{ 0.265366, 0.223300, 0.213304, 0.343250, 0.219551, 0.766407, 0.488189},
-{ 0.408223, 0.366157, 0.356161, 0.486107, 0.362409, 0.909264, 0.631047},
-{ 0.551080, 0.509014, 0.499018, 0.628964, 0.505266, 0.052121, 0.773904},
-{ 0.693937, 0.651871, 0.641875, 0.771821, 0.648123, 0.194978, 0.916761},
-{ 0.836794, 0.794728, 0.784733, 0.914678, 0.790980, 0.337835, 0.059618},
-{ 0.979651, 0.937586, 0.927590, 0.057536, 0.933837, 0.480693, 0.202475},
-{ 0.002975, 0.409889, 0.889689, 0.917594, 0.977569, 0.993812, 0.307431},
-{ 0.145832, 0.552746, 0.032546, 0.060451, 0.120426, 0.136669, 0.450289},
-{ 0.288689, 0.695603, 0.175403, 0.203308, 0.263283, 0.279526, 0.593146},
-{ 0.431546, 0.838460, 0.318260, 0.346165, 0.406140, 0.422384, 0.736003},
-{ 0.574404, 0.981317, 0.461117, 0.489022, 0.548997, 0.565241, 0.878860},
-{ 0.717261, 0.124174, 0.603975, 0.631880, 0.691855, 0.708098, 0.021717},
-{ 0.860118, 0.267032, 0.746832, 0.774737, 0.834712, 0.850955, 0.164574},
-{ 0.023383, 0.430297, 0.195811, 0.366573, 0.569406, 0.585649, 0.184982},
-{ 0.166240, 0.573154, 0.338668, 0.509431, 0.712263, 0.728506, 0.327840},
-{ 0.309097, 0.716011, 0.481526, 0.652288, 0.855120, 0.871363, 0.470697},
-{ 0.451955, 0.858868, 0.624383, 0.795145, 0.997977, 0.014220, 0.613554},
-{ 0.594812, 0.001725, 0.767240, 0.938002, 0.140834, 0.157077, 0.756411},
-{ 0.737669, 0.144583, 0.910097, 0.080859, 0.283691, 0.299935, 0.899268},
-{ 0.880526, 0.287440, 0.052954, 0.223716, 0.426548, 0.442792, 0.042125},
-{ 0.043791, 0.593562, 0.501934, 0.815553, 0.018385, 0.320343, 0.062533},
-{ 0.186648, 0.736419, 0.644791, 0.958410, 0.161242, 0.463200, 0.205391},
-{ 0.329506, 0.879276, 0.787648, 0.101267, 0.304099, 0.606057, 0.348248},
-{ 0.472363, 0.022134, 0.930505, 0.244124, 0.446957, 0.748914, 0.491105},
-{ 0.615220, 0.164991, 0.073362, 0.386982, 0.589814, 0.891771, 0.633962},
-{ 0.758077, 0.307848, 0.216219, 0.529839, 0.732671, 0.034628, 0.776819},
-{ 0.900934, 0.450705, 0.359077, 0.672696, 0.875528, 0.177486, 0.919676},
-{ 0.064199, 0.756828, 0.808056, 0.264533, 0.610222, 0.055037, 0.940084},
-{ 0.207057, 0.899685, 0.950913, 0.407390, 0.753079, 0.197894, 0.082942},
-{ 0.349914, 0.042542, 0.093770, 0.550247, 0.895936, 0.340751, 0.225799},
-{ 0.492771, 0.185399, 0.236628, 0.693104, 0.038793, 0.483608, 0.368656},
-{ 0.635628, 0.328256, 0.379485, 0.835961, 0.181651, 0.626465, 0.511513},
-{ 0.778485, 0.471113, 0.522342, 0.978818, 0.324508, 0.769322, 0.654370},
-{ 0.921342, 0.613970, 0.665199, 0.121675, 0.467365, 0.912179, 0.797227},
-{ 0.084608, 0.920093, 0.114179, 0.713512, 0.202059, 0.789730, 0.817636},
-{ 0.227465, 0.062950, 0.257036, 0.856369, 0.344916, 0.932588, 0.960493},
-{ 0.370322, 0.205807, 0.399893, 0.999227, 0.487773, 0.075445, 0.103350},
-{ 0.513179, 0.348664, 0.542750, 0.142084, 0.630630, 0.218302, 0.246207},
-{ 0.656036, 0.491521, 0.685607, 0.284941, 0.773487, 0.361159, 0.389064},
-{ 0.798893, 0.634379, 0.828464, 0.427798, 0.916344, 0.504016, 0.531921},
-{ 0.941750, 0.777236, 0.971321, 0.570655, 0.059202, 0.646873, 0.674778},
-{ 0.105016, 0.083358, 0.420301, 0.019635, 0.793895, 0.524424, 0.695187},
-{ 0.247873, 0.226215, 0.563158, 0.162492, 0.936753, 0.667281, 0.838044},
-{ 0.390730, 0.369072, 0.706015, 0.305349, 0.079610, 0.810139, 0.980901},
-{ 0.533587, 0.511930, 0.848872, 0.448206, 0.222467, 0.952996, 0.123758},
-{ 0.676444, 0.654787, 0.991730, 0.591063, 0.365324, 0.095853, 0.266615},
-{ 0.819301, 0.797644, 0.134587, 0.733920, 0.508181, 0.238710, 0.409472},
-{ 0.962159, 0.940501, 0.277444, 0.876778, 0.651038, 0.381567, 0.552329},
-{ 0.125424, 0.246623, 0.583566, 0.468614, 0.385732, 0.259118, 0.429880},
-{ 0.268281, 0.389481, 0.726424, 0.611471, 0.528589, 0.401975, 0.572738},
-{ 0.411138, 0.532338, 0.869281, 0.754329, 0.671446, 0.544833, 0.715595},
-{ 0.553995, 0.675195, 0.012138, 0.897186, 0.814304, 0.687690, 0.858452},
-{ 0.696853, 0.818052, 0.154995, 0.040043, 0.957161, 0.830547, 0.001309},
-{ 0.839710, 0.960909, 0.297852, 0.182900, 0.100018, 0.973404, 0.144166},
-{ 0.982567, 0.103766, 0.440709, 0.325757, 0.242875, 0.116261, 0.287023},
-{ 0.005890, 0.453621, 0.545665, 0.165407, 0.266199, 0.486523, 0.555245} };
-
-
-//Spatial dimension: 16
-//N: 100
-//Base: 17
-//Vectors skipped: 83520
-
-double faure_16_100[100][16] =
-{ { 0.999988, 0.805606, 0.119874, 0.648675, 0.039068, 0.879288, 0.819854, 0.500904, 0.631781, 0.800721, 0.654781, 0.899846, 0.127609, 0.037033, 0.219813, 0.323009},
-{ 0.000001, 0.073934, 0.994601, 0.786222, 0.064715, 0.791814, 0.286264, 0.277967, 0.971074, 0.974378, 0.253685, 0.248238, 0.802326, 0.116438, 0.803439, 0.949630},
-{ 0.058824, 0.132758, 0.053424, 0.845046, 0.123538, 0.850637, 0.345088, 0.336790, 0.029897, 0.033202, 0.312509, 0.307061, 0.861149, 0.175262, 0.862263, 0.008454},
-{ 0.117648, 0.191581, 0.112248, 0.903869, 0.182362, 0.909461, 0.403911, 0.395614, 0.088721, 0.092025, 0.371332, 0.365885, 0.919973, 0.234086, 0.921086, 0.067277},
-{ 0.176471, 0.250405, 0.171071, 0.962693, 0.241186, 0.968284, 0.462735, 0.454437, 0.147544, 0.150849, 0.430156, 0.424708, 0.978796, 0.292909, 0.979910, 0.126101},
-{ 0.235295, 0.309228, 0.229895, 0.021516, 0.300009, 0.027108, 0.521558, 0.513261, 0.206368, 0.209673, 0.488980, 0.483532, 0.037620, 0.351733, 0.038733, 0.184924},
-{ 0.294118, 0.368052, 0.288719, 0.080340, 0.358833, 0.085931, 0.580382, 0.572084, 0.265191, 0.268496, 0.547803, 0.542355, 0.096444, 0.410556, 0.097557, 0.243748},
-{ 0.352942, 0.426875, 0.347542, 0.139163, 0.417656, 0.144755, 0.639205, 0.630908, 0.324015, 0.327320, 0.606627, 0.601179, 0.155267, 0.469380, 0.156381, 0.302571},
-{ 0.411765, 0.485699, 0.406366, 0.197987, 0.476480, 0.203578, 0.698029, 0.689731, 0.382839, 0.386143, 0.665450, 0.660002, 0.214091, 0.528203, 0.215204, 0.361395},
-{ 0.470589, 0.544522, 0.465189, 0.256810, 0.535303, 0.262402, 0.756852, 0.748555, 0.441662, 0.444967, 0.724274, 0.718826, 0.272914, 0.587027, 0.274028, 0.420218},
-{ 0.529412, 0.603346, 0.524013, 0.315634, 0.594127, 0.321225, 0.815676, 0.807378, 0.500486, 0.503790, 0.783097, 0.777649, 0.331738, 0.645850, 0.332851, 0.479042},
-{ 0.588236, 0.662170, 0.582836, 0.374457, 0.652950, 0.380049, 0.874499, 0.866202, 0.559309, 0.562614, 0.841921, 0.836473, 0.390561, 0.704674, 0.391675, 0.537865},
-{ 0.647060, 0.720993, 0.641660, 0.433281, 0.711774, 0.438872, 0.933323, 0.925026, 0.618133, 0.621437, 0.900744, 0.895296, 0.449385, 0.763497, 0.450498, 0.596689},
-{ 0.705883, 0.779817, 0.700483, 0.492104, 0.770597, 0.497696, 0.992146, 0.983849, 0.676956, 0.680261, 0.959568, 0.954120, 0.508208, 0.822321, 0.509322, 0.655512},
-{ 0.764707, 0.838640, 0.759307, 0.550928, 0.829421, 0.556519, 0.050970, 0.042673, 0.735780, 0.739084, 0.018391, 0.012944, 0.567032, 0.881144, 0.568145, 0.714336},
-{ 0.823530, 0.897464, 0.818130, 0.609752, 0.888244, 0.615343, 0.109793, 0.101496, 0.794603, 0.797908, 0.077215, 0.071767, 0.625855, 0.939968, 0.626969, 0.773160},
-{ 0.882354, 0.956287, 0.876954, 0.668575, 0.947068, 0.674166, 0.168617, 0.160320, 0.853427, 0.856731, 0.136038, 0.130591, 0.684679, 0.998791, 0.685792, 0.831983},
-{ 0.941177, 0.015111, 0.935777, 0.727399, 0.005891, 0.732990, 0.227441, 0.219143, 0.912250, 0.915555, 0.194862, 0.189414, 0.743502, 0.057615, 0.744616, 0.890807},
-{ 0.003461, 0.136218, 0.115708, 0.966153, 0.303469, 0.089391, 0.642665, 0.693192, 0.445122, 0.507250, 0.845381, 0.898757, 0.511668, 0.825781, 0.630429, 0.835443},
-{ 0.062284, 0.195041, 0.174532, 0.024976, 0.362293, 0.148215, 0.701489, 0.752015, 0.503946, 0.566074, 0.904204, 0.957580, 0.570492, 0.884605, 0.689253, 0.894267},
-{ 0.121108, 0.253865, 0.233355, 0.083800, 0.421116, 0.207038, 0.760312, 0.810839, 0.562769, 0.624897, 0.963028, 0.016404, 0.629315, 0.943428, 0.748076, 0.953090},
-{ 0.179932, 0.312689, 0.292179, 0.142624, 0.479940, 0.265862, 0.819136, 0.869662, 0.621593, 0.683721, 0.021851, 0.075227, 0.688139, 0.002252, 0.806900, 0.011914},
-{ 0.238755, 0.371512, 0.351002, 0.201447, 0.538763, 0.324686, 0.877960, 0.928486, 0.680416, 0.742544, 0.080675, 0.134051, 0.746963, 0.061075, 0.865723, 0.070737},
-{ 0.297579, 0.430336, 0.409826, 0.260271, 0.597587, 0.383509, 0.936783, 0.987309, 0.739240, 0.801368, 0.139499, 0.192874, 0.805786, 0.119899, 0.924547, 0.129561},
-{ 0.356402, 0.489159, 0.468649, 0.319094, 0.656410, 0.442333, 0.995607, 0.046133, 0.798063, 0.860192, 0.198322, 0.251698, 0.864610, 0.178722, 0.983370, 0.188384},
-{ 0.415226, 0.547983, 0.527473, 0.377918, 0.715234, 0.501156, 0.054430, 0.104956, 0.856887, 0.919015, 0.257146, 0.310521, 0.923433, 0.237546, 0.042194, 0.247208},
-{ 0.474049, 0.606806, 0.586296, 0.436741, 0.774058, 0.559980, 0.113254, 0.163780, 0.915711, 0.977839, 0.315969, 0.369345, 0.982257, 0.296369, 0.101017, 0.306032},
-{ 0.532873, 0.665630, 0.645120, 0.495565, 0.832881, 0.618803, 0.172077, 0.222603, 0.974534, 0.036662, 0.374793, 0.428168, 0.041080, 0.355193, 0.159841, 0.364855},
-{ 0.591696, 0.724453, 0.703943, 0.554388, 0.891705, 0.677627, 0.230901, 0.281427, 0.033358, 0.095486, 0.433616, 0.486992, 0.099904, 0.414016, 0.218664, 0.423679},
-{ 0.650520, 0.783277, 0.762767, 0.613212, 0.950528, 0.736450, 0.289724, 0.340250, 0.092181, 0.154309, 0.492440, 0.545816, 0.158727, 0.472840, 0.277488, 0.482502},
-{ 0.709343, 0.842100, 0.821590, 0.672035, 0.009352, 0.795274, 0.348548, 0.399074, 0.151005, 0.213133, 0.551263, 0.604639, 0.217551, 0.531663, 0.336311, 0.541326},
-{ 0.768167, 0.900924, 0.880414, 0.730859, 0.068175, 0.854097, 0.407371, 0.457898, 0.209828, 0.271956, 0.610087, 0.663463, 0.276374, 0.590487, 0.395135, 0.600149},
-{ 0.826990, 0.959747, 0.939238, 0.789682, 0.126999, 0.912921, 0.466195, 0.516721, 0.268652, 0.330780, 0.668910, 0.722286, 0.335198, 0.649310, 0.453958, 0.658973},
-{ 0.885814, 0.018571, 0.998061, 0.848506, 0.185822, 0.971744, 0.525018, 0.575545, 0.327475, 0.389603, 0.727734, 0.781110, 0.394021, 0.708134, 0.512782, 0.717796},
-{ 0.944637, 0.077394, 0.056885, 0.907329, 0.244646, 0.030568, 0.583842, 0.634368, 0.386299, 0.448427, 0.786557, 0.839933, 0.452845, 0.766958, 0.571605, 0.776620},
-{ 0.006921, 0.198502, 0.177992, 0.146084, 0.542224, 0.386969, 0.999067, 0.108417, 0.919171, 0.040122, 0.437076, 0.549276, 0.221011, 0.593947, 0.457419, 0.721256},
-{ 0.065745, 0.257325, 0.236815, 0.204907, 0.601047, 0.445793, 0.057890, 0.167240, 0.977994, 0.098946, 0.495900, 0.608099, 0.279835, 0.652771, 0.516242, 0.780080},
-{ 0.124568, 0.316149, 0.295639, 0.263731, 0.659871, 0.504616, 0.116714, 0.226064, 0.036818, 0.157769, 0.554723, 0.666923, 0.338658, 0.711594, 0.575066, 0.838903},
-{ 0.183392, 0.374972, 0.354462, 0.322554, 0.718694, 0.563440, 0.175537, 0.284887, 0.095641, 0.216593, 0.613547, 0.725746, 0.397482, 0.770418, 0.633889, 0.897727},
-{ 0.242215, 0.433796, 0.413286, 0.381378, 0.777518, 0.622263, 0.234361, 0.343711, 0.154465, 0.275416, 0.672371, 0.784570, 0.456305, 0.829241, 0.692713, 0.956551},
-{ 0.301039, 0.492619, 0.472110, 0.440201, 0.836341, 0.681087, 0.293184, 0.402534, 0.213288, 0.334240, 0.731194, 0.843393, 0.515129, 0.888065, 0.751536, 0.015374},
-{ 0.359862, 0.551443, 0.530933, 0.499025, 0.895165, 0.739910, 0.352008, 0.461358, 0.272112, 0.393064, 0.790018, 0.902217, 0.573952, 0.946888, 0.810360, 0.074198},
-{ 0.418686, 0.610266, 0.589757, 0.557848, 0.953988, 0.798734, 0.410832, 0.520181, 0.330935, 0.451887, 0.848841, 0.961040, 0.632776, 0.005712, 0.869183, 0.133021},
-{ 0.477509, 0.669090, 0.648580, 0.616672, 0.012812, 0.857557, 0.469655, 0.579005, 0.389759, 0.510711, 0.907665, 0.019864, 0.691599, 0.064535, 0.928007, 0.191845},
-{ 0.536333, 0.727913, 0.707404, 0.675495, 0.071635, 0.916381, 0.528479, 0.637828, 0.448582, 0.569534, 0.966488, 0.078688, 0.750423, 0.123359, 0.986830, 0.250668},
-{ 0.595156, 0.786737, 0.766227, 0.734319, 0.130459, 0.975205, 0.587302, 0.696652, 0.507406, 0.628358, 0.025312, 0.137511, 0.809246, 0.182182, 0.045654, 0.309492},
-{ 0.653980, 0.845561, 0.825051, 0.793143, 0.189282, 0.034028, 0.646126, 0.755475, 0.566230, 0.687181, 0.084135, 0.196335, 0.868070, 0.241006, 0.104477, 0.368315},
-{ 0.712803, 0.904384, 0.883874, 0.851966, 0.248106, 0.092852, 0.704949, 0.814299, 0.625053, 0.746005, 0.142959, 0.255158, 0.926893, 0.299829, 0.163301, 0.427139},
-{ 0.771627, 0.963208, 0.942698, 0.910790, 0.306930, 0.151675, 0.763773, 0.873122, 0.683877, 0.804828, 0.201782, 0.313982, 0.985717, 0.358653, 0.222124, 0.485962},
-{ 0.830451, 0.022031, 0.001521, 0.969613, 0.365753, 0.210499, 0.822596, 0.931946, 0.742700, 0.863652, 0.260606, 0.372805, 0.044540, 0.417477, 0.280948, 0.544786},
-{ 0.889274, 0.080855, 0.060345, 0.028437, 0.424577, 0.269322, 0.881420, 0.990769, 0.801524, 0.922475, 0.319429, 0.431629, 0.103364, 0.476300, 0.339772, 0.603609},
-{ 0.948098, 0.139678, 0.119168, 0.087260, 0.483400, 0.328146, 0.940243, 0.049593, 0.860347, 0.981299, 0.378253, 0.490452, 0.162187, 0.535124, 0.398595, 0.662433},
-{ 0.010381, 0.260785, 0.299099, 0.326015, 0.780978, 0.684547, 0.296645, 0.523641, 0.393219, 0.572994, 0.028772, 0.199795, 0.930354, 0.362113, 0.284408, 0.607070},
-{ 0.069205, 0.319609, 0.357923, 0.384838, 0.839801, 0.743371, 0.355468, 0.582465, 0.452043, 0.631818, 0.087595, 0.258618, 0.989177, 0.420937, 0.343232, 0.665893},
-{ 0.128028, 0.378432, 0.416746, 0.443662, 0.898625, 0.802194, 0.414292, 0.641289, 0.510866, 0.690641, 0.146419, 0.317442, 0.048001, 0.479760, 0.402055, 0.724717},
-{ 0.186852, 0.437256, 0.475570, 0.502485, 0.957449, 0.861018, 0.473115, 0.700112, 0.569690, 0.749465, 0.205242, 0.376265, 0.106824, 0.538584, 0.460879, 0.783540},
-{ 0.245675, 0.496080, 0.534393, 0.561309, 0.016272, 0.919841, 0.531939, 0.758936, 0.628513, 0.808288, 0.264066, 0.435089, 0.165648, 0.597407, 0.519702, 0.842364},
-{ 0.304499, 0.554903, 0.593217, 0.620132, 0.075096, 0.978665, 0.590762, 0.817759, 0.687337, 0.867112, 0.322890, 0.493912, 0.224471, 0.656231, 0.578526, 0.901187},
-{ 0.363323, 0.613727, 0.652040, 0.678956, 0.133919, 0.037488, 0.649586, 0.876583, 0.746160, 0.925935, 0.381713, 0.552736, 0.283295, 0.715054, 0.637349, 0.960011},
-{ 0.422146, 0.672550, 0.710864, 0.737779, 0.192743, 0.096312, 0.708409, 0.935406, 0.804984, 0.984759, 0.440537, 0.611559, 0.342118, 0.773878, 0.696173, 0.018834},
-{ 0.480970, 0.731374, 0.769687, 0.796603, 0.251566, 0.155135, 0.767233, 0.994230, 0.863807, 0.043583, 0.499360, 0.670383, 0.400942, 0.832701, 0.754996, 0.077658},
-{ 0.539793, 0.790197, 0.828511, 0.855426, 0.310390, 0.213959, 0.826056, 0.053053, 0.922631, 0.102406, 0.558184, 0.729207, 0.459765, 0.891525, 0.813820, 0.136481},
-{ 0.598617, 0.849021, 0.887334, 0.914250, 0.369213, 0.272782, 0.884880, 0.111877, 0.981454, 0.161230, 0.617007, 0.788030, 0.518589, 0.950349, 0.872644, 0.195305},
-{ 0.657440, 0.907844, 0.946158, 0.973073, 0.428037, 0.331606, 0.943703, 0.170700, 0.040278, 0.220053, 0.675831, 0.846854, 0.577412, 0.009172, 0.931467, 0.254128},
-{ 0.716264, 0.966668, 0.004981, 0.031897, 0.486860, 0.390429, 0.002527, 0.229524, 0.099102, 0.278877, 0.734654, 0.905677, 0.636236, 0.067996, 0.990291, 0.312952},
-{ 0.775087, 0.025491, 0.063805, 0.090720, 0.545684, 0.449253, 0.061351, 0.288347, 0.157925, 0.337700, 0.793478, 0.964501, 0.695059, 0.126819, 0.049114, 0.371775},
-{ 0.833911, 0.084315, 0.122629, 0.149544, 0.604507, 0.508077, 0.120174, 0.347171, 0.216749, 0.396524, 0.852301, 0.023324, 0.753883, 0.185643, 0.107938, 0.430599},
-{ 0.892734, 0.143138, 0.181452, 0.208367, 0.663331, 0.566900, 0.178998, 0.405994, 0.275572, 0.455347, 0.911125, 0.082148, 0.812706, 0.244466, 0.166761, 0.489423},
-{ 0.951558, 0.201962, 0.240276, 0.267191, 0.722154, 0.625724, 0.237821, 0.464818, 0.334396, 0.514171, 0.969948, 0.140971, 0.871530, 0.303290, 0.225585, 0.548246},
-{ 0.013842, 0.323069, 0.420206, 0.505945, 0.019732, 0.982125, 0.653046, 0.938866, 0.867268, 0.105866, 0.620467, 0.850314, 0.639696, 0.130279, 0.111398, 0.492883},
-{ 0.072665, 0.381893, 0.479030, 0.564769, 0.078556, 0.040948, 0.711870, 0.997690, 0.926091, 0.164690, 0.679291, 0.909137, 0.698520, 0.189103, 0.170221, 0.551706},
-{ 0.131489, 0.440716, 0.537853, 0.623592, 0.137379, 0.099772, 0.770693, 0.056513, 0.984915, 0.223513, 0.738114, 0.967961, 0.757343, 0.247926, 0.229045, 0.610530},
-{ 0.190312, 0.499540, 0.596677, 0.682416, 0.196203, 0.158596, 0.829517, 0.115337, 0.043738, 0.282337, 0.796938, 0.026784, 0.816167, 0.306750, 0.287868, 0.669353},
-{ 0.249136, 0.558363, 0.655501, 0.741239, 0.255026, 0.217419, 0.888340, 0.174160, 0.102562, 0.341160, 0.855762, 0.085608, 0.874990, 0.365573, 0.346692, 0.728177},
-{ 0.307959, 0.617187, 0.714324, 0.800063, 0.313850, 0.276243, 0.947164, 0.232984, 0.161385, 0.399984, 0.914585, 0.144431, 0.933814, 0.424397, 0.405515, 0.787000},
-{ 0.366783, 0.676010, 0.773148, 0.858886, 0.372673, 0.335066, 0.005987, 0.291808, 0.220209, 0.458807, 0.973409, 0.203255, 0.992637, 0.483220, 0.464339, 0.845824},
-{ 0.425606, 0.734834, 0.831971, 0.917710, 0.431497, 0.393890, 0.064811, 0.350631, 0.279032, 0.517631, 0.032232, 0.262079, 0.051461, 0.542044, 0.523163, 0.904647},
-{ 0.484430, 0.793657, 0.890795, 0.976534, 0.490321, 0.452713, 0.123634, 0.409455, 0.337856, 0.576455, 0.091056, 0.320902, 0.110284, 0.600868, 0.581986, 0.963471},
-{ 0.543253, 0.852481, 0.949618, 0.035357, 0.549144, 0.511537, 0.182458, 0.468278, 0.396679, 0.635278, 0.149879, 0.379726, 0.169108, 0.659691, 0.640810, 0.022294},
-{ 0.602077, 0.911304, 0.008442, 0.094181, 0.607968, 0.570360, 0.241281, 0.527102, 0.455503, 0.694102, 0.208703, 0.438549, 0.227931, 0.718515, 0.699633, 0.081118},
-{ 0.660900, 0.970128, 0.067265, 0.153004, 0.666791, 0.629184, 0.300105, 0.585925, 0.514326, 0.752925, 0.267526, 0.497373, 0.286755, 0.777338, 0.758457, 0.139942},
-{ 0.719724, 0.028952, 0.126089, 0.211828, 0.725615, 0.688007, 0.358928, 0.644749, 0.573150, 0.811749, 0.326350, 0.556196, 0.345578, 0.836162, 0.817280, 0.198765},
-{ 0.778547, 0.087775, 0.184912, 0.270651, 0.784438, 0.746831, 0.417752, 0.703572, 0.631974, 0.870572, 0.385173, 0.615020, 0.404402, 0.894985, 0.876104, 0.257589},
-{ 0.837371, 0.146599, 0.243736, 0.329475, 0.843262, 0.805654, 0.476575, 0.762396, 0.690797, 0.929396, 0.443997, 0.673843, 0.463226, 0.953809, 0.934927, 0.316412},
-{ 0.896194, 0.205422, 0.302559, 0.388298, 0.902085, 0.864478, 0.535399, 0.821219, 0.749621, 0.988219, 0.502820, 0.732667, 0.522049, 0.012632, 0.993751, 0.375236},
-{ 0.955018, 0.264246, 0.361383, 0.447122, 0.960909, 0.923301, 0.594223, 0.880043, 0.808444, 0.047043, 0.561644, 0.791490, 0.580873, 0.071456, 0.052574, 0.434059},
-{ 0.017302, 0.385353, 0.541314, 0.685876, 0.258487, 0.279703, 0.009447, 0.295268, 0.341316, 0.638738, 0.212163, 0.500833, 0.349039, 0.898445, 0.938387, 0.378696},
-{ 0.076125, 0.444176, 0.600137, 0.744700, 0.317310, 0.338526, 0.068271, 0.354091, 0.400140, 0.697562, 0.270986, 0.559656, 0.407862, 0.957269, 0.997211, 0.437519},
-{ 0.134949, 0.503000, 0.658961, 0.803523, 0.376134, 0.397350, 0.127094, 0.412915, 0.458963, 0.756385, 0.329810, 0.618480, 0.466686, 0.016092, 0.056035, 0.496343},
-{ 0.193772, 0.561823, 0.717784, 0.862347, 0.434957, 0.456173, 0.185918, 0.471738, 0.517787, 0.815209, 0.388634, 0.677303, 0.525509, 0.074916, 0.114858, 0.555166},
-{ 0.252596, 0.620647, 0.776608, 0.921170, 0.493781, 0.514997, 0.244742, 0.530562, 0.576610, 0.874032, 0.447457, 0.736127, 0.584333, 0.133740, 0.173682, 0.613990},
-{ 0.311419, 0.679471, 0.835431, 0.979994, 0.552604, 0.573820, 0.303565, 0.589385, 0.635434, 0.932856, 0.506281, 0.794950, 0.643156, 0.192563, 0.232505, 0.672814},
-{ 0.370243, 0.738294, 0.894255, 0.038817, 0.611428, 0.632644, 0.362389, 0.648209, 0.694257, 0.991679, 0.565104, 0.853774, 0.701980, 0.251387, 0.291329, 0.731637},
-{ 0.429066, 0.797118, 0.953078, 0.097641, 0.670251, 0.691468, 0.421212, 0.707032, 0.753081, 0.050503, 0.623928, 0.912598, 0.760803, 0.310210, 0.350152, 0.790461},
-{ 0.487890, 0.855941, 0.011902, 0.156464, 0.729075, 0.750291, 0.480036, 0.765856, 0.811904, 0.109327, 0.682751, 0.971421, 0.819627, 0.369034, 0.408976, 0.849284},
-{ 0.546714, 0.914765, 0.070725, 0.215288, 0.787898, 0.809115, 0.538859, 0.824680, 0.870728, 0.168150, 0.741575, 0.030245, 0.878450, 0.427857, 0.467799, 0.908108},
-{ 0.605537, 0.973588, 0.129549, 0.274111, 0.846722, 0.867938, 0.597683, 0.883503, 0.929551, 0.226974, 0.800398, 0.089068, 0.937274, 0.486681, 0.526623, 0.966931},
-{ 0.664361, 0.032412, 0.188372, 0.332935, 0.905545, 0.926762, 0.656506, 0.942327, 0.988375, 0.285797, 0.859222, 0.147892, 0.996097, 0.545504, 0.585446, 0.025755},
-{ 0.723184, 0.091235, 0.247196, 0.391758, 0.964369, 0.985585, 0.715330, 0.001150, 0.047198, 0.344621, 0.918045, 0.206715, 0.054921, 0.604328, 0.644270, 0.084578},
-{ 0.782008, 0.150059, 0.306020, 0.450582, 0.023192, 0.044409, 0.774153, 0.059974, 0.106022, 0.403444, 0.976869, 0.265539, 0.113745, 0.663151, 0.703093, 0.143402} };
-
-// Invokes operator() precisely n times. This is to check that
-// QRNG::discard(n) actually has the same effect.
-template<typename QRNG>
-void trivial_discard(QRNG &q, std::size_t n)
 {
- for( ; n != 0; --n ) q();
-}
-
-template<typename T, std::size_t Dimension, std::size_t N>
-inline void test_values(T (&dset)[N][Dimension], std::size_t skip)
+ { 0.9375000000, 0.0625000000 },
+ { 0.0312500000, 0.5312500000 },
+ { 0.5312500000, 0.0312500000 },
+ { 0.2812500000, 0.2812500000 },
+ { 0.7812500000, 0.7812500000 },
+ { 0.1562500000, 0.1562500000 },
+ { 0.6562500000, 0.6562500000 },
+ { 0.4062500000, 0.9062500000 },
+ { 0.9062500000, 0.4062500000 },
+ { 0.0937500000, 0.4687500000 },
+ { 0.5937500000, 0.9687500000 },
+ { 0.3437500000, 0.7187500000 },
+ { 0.8437500000, 0.2187500000 },
+ { 0.2187500000, 0.8437500000 },
+ { 0.7187500000, 0.3437500000 },
+ { 0.4687500000, 0.0937500000 },
+ { 0.9687500000, 0.5937500000 },
+ { 0.0156250000, 0.7968750000 },
+ { 0.5156250000, 0.2968750000 },
+ { 0.2656250000, 0.0468750000 },
+ { 0.7656250000, 0.5468750000 },
+ { 0.1406250000, 0.4218750000 },
+ { 0.6406250000, 0.9218750000 },
+ { 0.3906250000, 0.6718750000 },
+ { 0.8906250000, 0.1718750000 },
+ { 0.0781250000, 0.2343750000 },
+ { 0.5781250000, 0.7343750000 },
+ { 0.3281250000, 0.9843750000 },
+ { 0.8281250000, 0.4843750000 },
+ { 0.2031250000, 0.6093750000 },
+ { 0.7031250000, 0.1093750000 },
+ { 0.4531250000, 0.3593750000 },
+ { 0.9531250000, 0.8593750000 },
+ { 0.0468750000, 0.2656250000 },
+ { 0.5468750000, 0.7656250000 },
+ { 0.2968750000, 0.5156250000 },
+ { 0.7968750000, 0.0156250000 },
+ { 0.1718750000, 0.8906250000 },
+ { 0.6718750000, 0.3906250000 },
+ { 0.4218750000, 0.1406250000 },
+ { 0.9218750000, 0.6406250000 },
+ { 0.1093750000, 0.7031250000 },
+ { 0.6093750000, 0.2031250000 },
+ { 0.3593750000, 0.4531250000 },
+ { 0.8593750000, 0.9531250000 },
+ { 0.2343750000, 0.0781250000 },
+ { 0.7343750000, 0.5781250000 },
+ { 0.4843750000, 0.8281250000 },
+ { 0.9843750000, 0.3281250000 },
+ { 0.0078125000, 0.6640625000 },
+ { 0.5078125000, 0.1640625000 },
+ { 0.2578125000, 0.4140625000 },
+ { 0.7578125000, 0.9140625000 },
+ { 0.1328125000, 0.0390625000 },
+ { 0.6328125000, 0.5390625000 },
+ { 0.3828125000, 0.7890625000 },
+ { 0.8828125000, 0.2890625000 },
+ { 0.0703125000, 0.3515625000 },
+ { 0.5703125000, 0.8515625000 },
+ { 0.3203125000, 0.6015625000 },
+ { 0.8203125000, 0.1015625000 },
+ { 0.1953125000, 0.9765625000 },
+ { 0.6953125000, 0.4765625000 },
+ { 0.4453125000, 0.2265625000 },
+ { 0.9453125000, 0.7265625000 },
+ { 0.0390625000, 0.1328125000 },
+ { 0.5390625000, 0.6328125000 },
+ { 0.2890625000, 0.8828125000 },
+ { 0.7890625000, 0.3828125000 },
+ { 0.1640625000, 0.5078125000 },
+ { 0.6640625000, 0.0078125000 },
+ { 0.4140625000, 0.2578125000 },
+ { 0.9140625000, 0.7578125000 },
+ { 0.1015625000, 0.8203125000 },
+ { 0.6015625000, 0.3203125000 },
+ { 0.3515625000, 0.0703125000 },
+ { 0.8515625000, 0.5703125000 },
+ { 0.2265625000, 0.4453125000 },
+ { 0.7265625000, 0.9453125000 },
+ { 0.4765625000, 0.6953125000 },
+ { 0.9765625000, 0.1953125000 },
+ { 0.0234375000, 0.3984375000 },
+ { 0.5234375000, 0.8984375000 },
+ { 0.2734375000, 0.6484375000 },
+ { 0.7734375000, 0.1484375000 },
+ { 0.1484375000, 0.7734375000 },
+ { 0.6484375000, 0.2734375000 },
+ { 0.3984375000, 0.0234375000 },
+ { 0.8984375000, 0.5234375000 },
+ { 0.0859375000, 0.5859375000 },
+ { 0.5859375000, 0.0859375000 },
+ { 0.3359375000, 0.3359375000 },
+ { 0.8359375000, 0.8359375000 },
+ { 0.2109375000, 0.2109375000 },
+ { 0.7109375000, 0.7109375000 },
+ { 0.4609375000, 0.9609375000 },
+ { 0.9609375000, 0.4609375000 },
+ { 0.0546875000, 0.9296875000 },
+ { 0.5546875000, 0.4296875000 },
+ { 0.3046875000, 0.1796875000 }
+};
+
+// Spatial dimension: 7
+// N: 100
+// Base: 7
+// Vectors skipped: 2400
+double faure_07_100[100][7] =
 {
- boost::random::faure<T, Dimension> qf;
-
- qf.seed(skip);
- for( std::size_t i = 0; i != N; ++i )
- {
- for( std::size_t j = 0; j != Dimension; ++j )
- {
- T val = qf();
- // We want to check that quasi-random number generator values differ no
- // more than 1% of their value.
- // Such a coarse check is because dset is initialized from fixed point output.
- BOOST_CHECK_CLOSE_FRACTION(dset[i][j], val, 1);
- }
- }
-}
-
-template<typename T, std::size_t Dimension, std::size_t N>
-inline void test_seed(T (&dset)[N][Dimension], std::size_t skip)
+ { 0.9995835069, 0.4602249063, 0.9412744690, 0.3202832153, 0.9850062474, 0.8334027489, 0.1103706789 },
+ { 0.0000594990, 0.2437079788, 0.3765692866, 0.6493722854, 0.6685309692, 0.3582435890, 0.2228833224 },
+ { 0.1429166419, 0.3865651217, 0.5194264295, 0.7922294282, 0.8113881121, 0.5011007318, 0.3657404653 },
+ { 0.2857737847, 0.5294222645, 0.6622835723, 0.9350865711, 0.9542452550, 0.6439578747, 0.5085976081 },
+ { 0.4286309276, 0.6722794074, 0.8051407152, 0.0779437139, 0.0971023978, 0.7868150176, 0.6514547510 },
+ { 0.5714880704, 0.8151365502, 0.9479978580, 0.2208008568, 0.2399595407, 0.9296721604, 0.7943118939 },
+ { 0.7143452133, 0.9579936931, 0.0908550009, 0.3636579996, 0.3828166835, 0.0725293033, 0.9371690367 },
+ { 0.8572023562, 0.1008508360, 0.2337121437, 0.5065151425, 0.5256738264, 0.2153864461, 0.0800261796 },
+ { 0.0204676623, 0.4069732849, 0.6826917356, 0.0983518772, 0.2603677039, 0.0929374665, 0.1004343428 },
+ { 0.1633248051, 0.5498304278, 0.8255488784, 0.2412090201, 0.4032248468, 0.2357946094, 0.2432914857 },
+ { 0.3061819480, 0.6926875707, 0.9684060213, 0.3840661629, 0.5460819896, 0.3786517522, 0.3861486285 },
+ { 0.4490390909, 0.8355447135, 0.1112631642, 0.5269233058, 0.6889391325, 0.5215088951, 0.5290057714 },
+ { 0.5918962337, 0.9784018564, 0.2541203070, 0.6697804486, 0.8317962754, 0.6643660380, 0.6718629143 },
+ { 0.7347533766, 0.1212589992, 0.3969774499, 0.8126375915, 0.9746534182, 0.8072231808, 0.8147200571 },
+ { 0.8776105194, 0.2641161421, 0.5398345927, 0.9554947343, 0.1175105611, 0.9500803237, 0.9575772000 },
+ { 0.0408758255, 0.5702385911, 0.9888141846, 0.5473314690, 0.8522044386, 0.8276313441, 0.9779853632 },
+ { 0.1837329684, 0.7130957339, 0.1316713274, 0.6901886119, 0.9950615815, 0.9704884869, 0.1208425061 },
+ { 0.3265901113, 0.8559528768, 0.2745284703, 0.8330457547, 0.1379187243, 0.1133456298, 0.2636996490 },
+ { 0.4694472541, 0.9988100196, 0.4173856131, 0.9759028976, 0.2807758672, 0.2562027727, 0.4065567918 },
+ { 0.6123043970, 0.1416671625, 0.5602427560, 0.1187600405, 0.4236330101, 0.3990599155, 0.5494139347 },
+ { 0.7551615398, 0.2845243053, 0.7030998989, 0.2616171833, 0.5664901529, 0.5419170584, 0.6922710775 },
+ { 0.8980186827, 0.4273814482, 0.8459570417, 0.4044743262, 0.7093472958, 0.6847742012, 0.8351282204 },
+ { 0.0612839888, 0.5906467543, 0.1520794907, 0.9963110609, 0.3011840305, 0.5623252216, 0.8555363836 },
+ { 0.2041411317, 0.7335038972, 0.2949366335, 0.1391682037, 0.4440411733, 0.7051823645, 0.9983935265 },
+ { 0.3469982745, 0.8763610400, 0.4377937764, 0.2820253466, 0.5868983162, 0.8480395073, 0.1412506694 },
+ { 0.4898554174, 0.0192181829, 0.5806509193, 0.4248824894, 0.7297554590, 0.9908966502, 0.2841078122 },
+ { 0.6327125602, 0.1620753258, 0.7235080621, 0.5677396323, 0.8726126019, 0.1337537931, 0.4269649551 },
+ { 0.7755697031, 0.3049324686, 0.8663652050, 0.7105967752, 0.0154697447, 0.2766109359, 0.5698220979 },
+ { 0.9184268460, 0.4477896115, 0.0092223478, 0.8534539180, 0.1583268876, 0.4194680788, 0.7126792408 },
+ { 0.0816921521, 0.7539120605, 0.4582019397, 0.3024335098, 0.8930207652, 0.1541619563, 0.5902302612 },
+ { 0.2245492949, 0.8967692033, 0.6010590825, 0.4452906527, 0.0358779080, 0.2970190992, 0.7330874041 },
+ { 0.3674064378, 0.0396263462, 0.7439162254, 0.5881477956, 0.1787350509, 0.4398762420, 0.8759445469 },
+ { 0.5102635807, 0.1824834890, 0.8867733682, 0.7310049384, 0.3215921937, 0.5827333849, 0.0188016898 },
+ { 0.6531207235, 0.3253406319, 0.0296305111, 0.8738620813, 0.4644493366, 0.7255905278, 0.1616588326 },
+ { 0.7959778664, 0.4681977747, 0.1724876540, 0.0167192241, 0.6073064794, 0.8684476706, 0.3045159755 },
+ { 0.9388350092, 0.6110549176, 0.3153447968, 0.1595763670, 0.7501636223, 0.0113048135, 0.4473731183 },
+ { 0.1021003153, 0.9171773666, 0.7643243886, 0.7514131017, 0.4848574999, 0.8888558339, 0.4677812816 },
+ { 0.2449574582, 0.0600345094, 0.9071815315, 0.8942702445, 0.6277146427, 0.0317129767, 0.6106384245 },
+ { 0.3878146011, 0.2028916523, 0.0500386744, 0.0371273874, 0.7705717856, 0.1745701196, 0.7534955673 },
+ { 0.5306717439, 0.3457487951, 0.1928958172, 0.1799845303, 0.9134289284, 0.3174272625, 0.8963527102 },
+ { 0.6735288868, 0.4886059380, 0.3357529601, 0.3228416731, 0.0562860713, 0.4602844053, 0.0392098530 },
+ { 0.8163860296, 0.6314630809, 0.4786101029, 0.4656988160, 0.1991432141, 0.6031415482, 0.1820669959 },
+ { 0.9592431725, 0.7743202237, 0.6214672458, 0.6085559588, 0.3420003570, 0.7459986910, 0.3249241388 },
+ { 0.1225084786, 0.0804426727, 0.0704468376, 0.2003926935, 0.0766942345, 0.6235497114, 0.3453323020 },
+ { 0.2653656215, 0.2232998156, 0.2133039805, 0.3432498364, 0.2195513774, 0.7664068543, 0.4881894449 },
+ { 0.4082227643, 0.3661569584, 0.3561611233, 0.4861069792, 0.3624085203, 0.9092639971, 0.6310465877 },
+ { 0.5510799072, 0.5090141013, 0.4990182662, 0.6289641221, 0.5052656631, 0.0521211400, 0.7739037306 },
+ { 0.6939370500, 0.6518712441, 0.6418754091, 0.7718212649, 0.6481228060, 0.1949782829, 0.9167608734 },
+ { 0.8367941929, 0.7947283870, 0.7847325519, 0.9146784078, 0.7909799488, 0.3378354257, 0.0596180163 },
+ { 0.9796513358, 0.9375855298, 0.9275896948, 0.0575355507, 0.9338370917, 0.4806925686, 0.2024751592 },
+ { 0.0029749509, 0.4098887368, 0.8896888201, 0.9175938597, 0.9775688701, 0.9938121021, 0.3074314274 },
+ { 0.1458320938, 0.5527458797, 0.0325459630, 0.0604510026, 0.1204260130, 0.1366692450, 0.4502885702 },
+ { 0.2886892366, 0.6956030226, 0.1754031058, 0.2033081454, 0.2632831558, 0.2795263878, 0.5931457131 },
+ { 0.4315463795, 0.8384601654, 0.3182602487, 0.3461652883, 0.4061402987, 0.4223835307, 0.7360028560 },
+ { 0.5744035223, 0.9813173083, 0.4611173916, 0.4890224311, 0.5489974415, 0.5652406735, 0.8788599988 },
+ { 0.7172606652, 0.1241744511, 0.6039745344, 0.6318795740, 0.6918545844, 0.7080978164, 0.0217171417 },
+ { 0.8601178081, 0.2670315940, 0.7468316773, 0.7747367168, 0.8347117273, 0.8509549592, 0.1645742845 },
+ { 0.0233831142, 0.4302969001, 0.1958112691, 0.3665734515, 0.5694056048, 0.5856488368, 0.1849824478 },
+ { 0.1662402570, 0.5731540430, 0.3386684120, 0.5094305944, 0.7122627477, 0.7285059797, 0.3278395906 },
+ { 0.3090973999, 0.7160111858, 0.4815255548, 0.6522877373, 0.8551198905, 0.8713631225, 0.4706967335 },
+ { 0.4519545428, 0.8588683287, 0.6243826977, 0.7951448801, 0.9979770334, 0.0142202654, 0.6135538764 },
+ { 0.5948116856, 0.0017254715, 0.7672398405, 0.9380020230, 0.1408341762, 0.1570774082, 0.7564110192 },
+ { 0.7376688285, 0.1445826144, 0.9100969834, 0.0808591658, 0.2836913191, 0.2999345511, 0.8992681621 },
+ { 0.8805259713, 0.2874397572, 0.0529541263, 0.2237163087, 0.4265484620, 0.4427916939, 0.0421253049 },
+ { 0.0437912774, 0.5935622062, 0.5019337181, 0.8155530434, 0.0183851966, 0.3203427143, 0.0625334682 },
+ { 0.1866484203, 0.7364193491, 0.6447908610, 0.9584101862, 0.1612423395, 0.4631998572, 0.2053906111 },
+ { 0.3295055632, 0.8792764919, 0.7876480038, 0.1012673291, 0.3040994824, 0.6060570001, 0.3482477539 },
+ { 0.4723627060, 0.0221336348, 0.9305051467, 0.2441244719, 0.4469566252, 0.7489141429, 0.4911048968 },
+ { 0.6152198489, 0.1649907777, 0.0733622895, 0.3869816148, 0.5898137681, 0.8917712858, 0.6339620396 },
+ { 0.7580769917, 0.3078479205, 0.2162194324, 0.5298387577, 0.7326709109, 0.0346284286, 0.7768191825 },
+ { 0.9009341346, 0.4507050634, 0.3590765752, 0.6726959005, 0.8755280538, 0.1774855715, 0.9196763253 },
+ { 0.0641994407, 0.7568275123, 0.8080561671, 0.2645326352, 0.6102219313, 0.0550365919, 0.9400844886 },
+ { 0.2070565836, 0.8996846552, 0.9509133099, 0.4073897781, 0.7530790742, 0.1978937348, 0.0829416315 },
+ { 0.3499137264, 0.0425417981, 0.0937704528, 0.5502469209, 0.8959362171, 0.3407508776, 0.2257987743 },
+ { 0.4927708693, 0.1853989409, 0.2366275956, 0.6931040638, 0.0387933599, 0.4836080205, 0.3686559172 },
+ { 0.6356280121, 0.3282560838, 0.3794847385, 0.8359612066, 0.1816505028, 0.6264651633, 0.5115130600 },
+ { 0.7784851550, 0.4711132266, 0.5223418814, 0.9788183495, 0.3245076456, 0.7693223062, 0.6543702029 },
+ { 0.9213422979, 0.6139703695, 0.6651990242, 0.1216754924, 0.4673647885, 0.9121794490, 0.7972273457 },
+ { 0.0846076040, 0.9200928185, 0.1141786161, 0.7135122270, 0.2020586660, 0.7897304694, 0.8176355090 },
+ { 0.2274647468, 0.0629499613, 0.2570357589, 0.8563693699, 0.3449158089, 0.9325876123, 0.9604926519 },
+ { 0.3703218897, 0.2058071042, 0.3998929018, 0.9992265128, 0.4877729517, 0.0754447552, 0.1033497947 },
+ { 0.5131790325, 0.3486642470, 0.5427500446, 0.1420836556, 0.6306300946, 0.2183018980, 0.2462069376 },
+ { 0.6560361754, 0.4915213899, 0.6856071875, 0.2849407985, 0.7734872375, 0.3611590409, 0.3890640804 },
+ { 0.7988933183, 0.6343785328, 0.8284643303, 0.4277979413, 0.9163443803, 0.5040161837, 0.5319212233 },
+ { 0.9417504611, 0.7772356756, 0.9713214732, 0.5706550842, 0.0592015232, 0.6468733266, 0.6747783662 },
+ { 0.1050157672, 0.0833581246, 0.4203010650, 0.0196346760, 0.7938954007, 0.5244243470, 0.6951865294 },
+ { 0.2478729101, 0.2262152674, 0.5631582079, 0.1624918189, 0.9367525436, 0.6672814899, 0.8380436723 },
+ { 0.3907300530, 0.3690724103, 0.7060153507, 0.3053489617, 0.0796096864, 0.8101386327, 0.9809008151 },
+ { 0.5335871958, 0.5119295532, 0.8488724936, 0.4482061046, 0.2224668293, 0.9529957756, 0.1237579580 },
+ { 0.6764443387, 0.6547866960, 0.9917296365, 0.5910632475, 0.3653239722, 0.0958529184, 0.2666151009 },
+ { 0.8193014815, 0.7976438389, 0.1345867793, 0.7339203903, 0.5081811150, 0.2387100613, 0.4094722437 },
+ { 0.9621586244, 0.9405009817, 0.2774439222, 0.8767775332, 0.6510382579, 0.3815672041, 0.5523293866 },
+ { 0.1254239305, 0.2466234307, 0.5835663712, 0.4686142679, 0.3857321354, 0.2591182245, 0.4298804070 },
+ { 0.2682810734, 0.3894805736, 0.7264235140, 0.6114714107, 0.5285892783, 0.4019753674, 0.5727375498 },
+ { 0.4111382162, 0.5323377164, 0.8692806569, 0.7543285536, 0.6714464211, 0.5448325103, 0.7155946927 },
+ { 0.5539953591, 0.6751948593, 0.0121377997, 0.8971856964, 0.8143035640, 0.6876896531, 0.8584518355 },
+ { 0.6968525019, 0.8180520021, 0.1549949426, 0.0400428393, 0.9571607068, 0.8305467960, 0.0013089784 },
+ { 0.8397096448, 0.9609091450, 0.2978520854, 0.1828999822, 0.1000178497, 0.9734039388, 0.1441661213 },
+ { 0.9825667876, 0.1037662879, 0.4407092283, 0.3257571250, 0.2428749926, 0.1162610817, 0.2870232641 },
+ { 0.0058904028, 0.4536205153, 0.5456654965, 0.1654072708, 0.2661986077, 0.4865234724, 0.5552448385 }
+};
+
+
+// Spatial dimension: 16
+// N: 100
+// Base: 17
+// Vectors skipped: 83520
+double faure_16_100[100][16] =
 {
- boost::random::faure<T, Dimension> qf;
+ { 0.9999880270, 0.8056057758, 0.1198740437, 0.6486751835, 0.0390680188, 0.8792878438, 0.8198536895, 0.5009039643, 0.6317812287, 0.8007207768, 0.6547814322, 0.8998455478, 0.1276086254, 0.0370326026, 0.2198129812, 0.3230085847 },
+ { 0.0000007043, 0.0739342061, 0.9946008647, 0.7862221336, 0.0647149678, 0.7918135418, 0.2862640393, 0.2779667248, 0.9710738476, 0.9743784057, 0.2536854063, 0.2482376746, 0.8023258680, 0.1164384864, 0.8034393604, 0.9496301388 },
+ { 0.0588242337, 0.1327577355, 0.0534243941, 0.8450456630, 0.1235384972, 0.8506370712, 0.3450875687, 0.3367902542, 0.0298973770, 0.0332019351, 0.3125089358, 0.3070612041, 0.8611493974, 0.1752620158, 0.8622628899, 0.0084536682 },
+ { 0.1176477631, 0.1915812649, 0.1122479236, 0.9038691925, 0.1823620266, 0.9094606006, 0.4039110981, 0.3956137836, 0.0887209064, 0.0920254645, 0.3713324652, 0.3658847335, 0.9199729269, 0.2340855452, 0.9210864193, 0.0672771976 },
+ { 0.1764712925, 0.2504047943, 0.1710714530, 0.9626927219, 0.2411855560, 0.9682841300, 0.4627346275, 0.4544373131, 0.1475444358, 0.1508489939, 0.4301559946, 0.4247082629, 0.9787964563, 0.2929090746, 0.9799099487, 0.1261007270 },
+ { 0.2352948219, 0.3092283237, 0.2298949824, 0.0215162513, 0.3000090854, 0.0271076594, 0.5215581569, 0.5132608425, 0.2063679652, 0.2096725234, 0.4889795240, 0.4835317923, 0.0376199857, 0.3517326041, 0.0387334781, 0.1849242565 },
+ { 0.2941183514, 0.3680518531, 0.2887185118, 0.0803397807, 0.3588326148, 0.0859311888, 0.5803816863, 0.5720843719, 0.2651914946, 0.2684960528, 0.5478030534, 0.5423553217, 0.0964435151, 0.4105561335, 0.0975570075, 0.2437477859 },
+ { 0.3529418808, 0.4268753825, 0.3475420412, 0.1391633101, 0.4176561442, 0.1447547183, 0.6392052157, 0.6309079013, 0.3240150240, 0.3273195822, 0.6066265828, 0.6011788511, 0.1552670445, 0.4693796629, 0.1563805369, 0.3025713153 },
+ { 0.4117654102, 0.4856989119, 0.4063655706, 0.1979868395, 0.4764796737, 0.2035782477, 0.6980287451, 0.6897314307, 0.3828385535, 0.3861431116, 0.6654501122, 0.6600023805, 0.2140905739, 0.5282031923, 0.2152040663, 0.3613948447 },
+ { 0.4705889396, 0.5445224413, 0.4651891000, 0.2568103689, 0.5353032031, 0.2624017771, 0.7568522746, 0.7485549601, 0.4416620829, 0.4449666410, 0.7242736416, 0.7188259099, 0.2729141033, 0.5870267217, 0.2740275957, 0.4202183741 },
+ { 0.5294124690, 0.6033459708, 0.5240126294, 0.3156338983, 0.5941267325, 0.3212253065, 0.8156758040, 0.8073784895, 0.5004856123, 0.5037901704, 0.7830971711, 0.7776494393, 0.3317376327, 0.6458502511, 0.3328511251, 0.4790419035 },
+ { 0.5882359984, 0.6621695002, 0.5828361589, 0.3744574278, 0.6529502619, 0.3800488359, 0.8744993334, 0.8662020189, 0.5593091417, 0.5626136998, 0.8419207005, 0.8364729688, 0.3905611621, 0.7046737805, 0.3916746546, 0.5378654329 },
+ { 0.6470595278, 0.7209930296, 0.6416596883, 0.4332809572, 0.7117737913, 0.4388723653, 0.9333228628, 0.9250255483, 0.6181326711, 0.6214372292, 0.9007442299, 0.8952964982, 0.4493846916, 0.7634973099, 0.4504981840, 0.5966889623 },
+ { 0.7058830572, 0.7798165590, 0.7004832177, 0.4921044866, 0.7705973207, 0.4976958947, 0.9921463922, 0.9838490778, 0.6769562005, 0.6802607587, 0.9595677593, 0.9541200276, 0.5082082210, 0.8223208394, 0.5093217134, 0.6555124918 },
+ { 0.7647065866, 0.8386400884, 0.7593067471, 0.5509280160, 0.8294208501, 0.5565194241, 0.0509699216, 0.0426726072, 0.7357797299, 0.7390842881, 0.0183912887, 0.0129435570, 0.5670317504, 0.8811443688, 0.5681452428, 0.7143360212 },
+ { 0.8235301161, 0.8974636178, 0.8181302765, 0.6097515454, 0.8882443795, 0.6153429536, 0.1097934510, 0.1014961366, 0.7946032593, 0.7979078175, 0.0772148181, 0.0717670864, 0.6258552798, 0.9399678982, 0.6269687722, 0.7731595506 },
+ { 0.8823536455, 0.9562871472, 0.8769538059, 0.6685750748, 0.9470679090, 0.6741664830, 0.1686169804, 0.1603196660, 0.8534267888, 0.8567313469, 0.1360383475, 0.1305906158, 0.6846788092, 0.9987914276, 0.6857923016, 0.8319830800 },
+ { 0.9411771749, 0.0151106766, 0.9357773353, 0.7273986042, 0.0058914384, 0.7329900124, 0.2274405099, 0.2191431954, 0.9122503182, 0.9155548763, 0.1948618769, 0.1894141452, 0.7435023386, 0.0576149570, 0.7446158310, 0.8908066094 },
+ { 0.0034609119, 0.1362179431, 0.1157081312, 0.9661529295, 0.3034692930, 0.0893913965, 0.6426654233, 0.6931916383, 0.4451222905, 0.5072503780, 0.8453809081, 0.8987567058, 0.5116684286, 0.8257810470, 0.6304289798, 0.8354432876 },
+ { 0.0622844413, 0.1950414725, 0.1745316606, 0.0249764589, 0.3622928224, 0.1482149259, 0.7014889528, 0.7520151677, 0.5039458199, 0.5660739074, 0.9042044375, 0.9575802352, 0.5704919580, 0.8846045764, 0.6892525092, 0.8942668170 },
+ { 0.1211079707, 0.2538650019, 0.2333551900, 0.0837999883, 0.4211163519, 0.2070384553, 0.7603124822, 0.8108386971, 0.5627693493, 0.6248974369, 0.9630279669, 0.0164037646, 0.6293154874, 0.9434281058, 0.7480760386, 0.9530903464 },
+ { 0.1799315001, 0.3126885313, 0.2921787194, 0.1426235177, 0.4799398813, 0.2658619847, 0.8191360116, 0.8696622265, 0.6215928787, 0.6837209663, 0.0218514963, 0.0752272940, 0.6881390168, 0.0022516352, 0.8068995681, 0.0119138758 },
+ { 0.2387550296, 0.3715120607, 0.3510022488, 0.2014470471, 0.5387634107, 0.3246855141, 0.8779595410, 0.9284857560, 0.6804164081, 0.7425444957, 0.0806750257, 0.1340508234, 0.7469625462, 0.0610751646, 0.8657230975, 0.0707374052 },
+ { 0.2975785590, 0.4303355901, 0.4098257782, 0.2602705765, 0.5975869401, 0.3835090435, 0.9367830704, 0.9873092854, 0.7392399375, 0.8013680251, 0.1394985551, 0.1928743528, 0.8057860756, 0.1198986940, 0.9245466269, 0.1295609347 },
+ { 0.3564020884, 0.4891591195, 0.4686493076, 0.3190941060, 0.6564104695, 0.4423325729, 0.9956065998, 0.0461328148, 0.7980634670, 0.8601915545, 0.1983220845, 0.2516978823, 0.8646096051, 0.1787222234, 0.9833701563, 0.1883844641 },
+ { 0.4152256178, 0.5479826490, 0.5274728371, 0.3779176354, 0.7152339989, 0.5011561023, 0.0544301292, 0.1049563442, 0.8568869964, 0.9190150839, 0.2571456140, 0.3105214117, 0.9234331345, 0.2375457528, 0.0421936857, 0.2472079935 },
+ { 0.4740491472, 0.6068061784, 0.5862963665, 0.4367411648, 0.7740575283, 0.5599796318, 0.1132536586, 0.1637798736, 0.9157105258, 0.9778386133, 0.3159691434, 0.3693449411, 0.9822566639, 0.2963692823, 0.1010172151, 0.3060315229 },
+ { 0.5328726766, 0.6656297078, 0.6451198959, 0.4955646942, 0.8328810577, 0.6188031612, 0.1720771881, 0.2226034030, 0.9745340552, 0.0366621427, 0.3747926728, 0.4281684705, 0.0410801933, 0.3551928117, 0.1598407445, 0.3648550523 },
+ { 0.5916962060, 0.7244532372, 0.7039434253, 0.5543882236, 0.8917045872, 0.6776266906, 0.2309007175, 0.2814269324, 0.0333575846, 0.0954856721, 0.4336162022, 0.4869919999, 0.0999037227, 0.4140163411, 0.2186642739, 0.4236785817 },
+ { 0.6505197354, 0.7832767666, 0.7627669547, 0.6132117530, 0.9505281166, 0.7364502200, 0.2897242469, 0.3402504618, 0.0921811140, 0.1543092016, 0.4924397316, 0.5458155293, 0.1587272521, 0.4728398705, 0.2774878033, 0.4825021111 },
+ { 0.7093432648, 0.8421002960, 0.8215904841, 0.6720352824, 0.0093516460, 0.7952737494, 0.3485477763, 0.3990739913, 0.1510046434, 0.2131327310, 0.5512632610, 0.6046390587, 0.2175507815, 0.5316633999, 0.3363113328, 0.5413256405 },
+ { 0.7681667943, 0.9009238254, 0.8804140135, 0.7308588118, 0.0681751754, 0.8540972788, 0.4073713057, 0.4578975207, 0.2098281728, 0.2719562604, 0.6100867904, 0.6634625881, 0.2763743109, 0.5904869293, 0.3951348622, 0.6001491700 },
+ { 0.8269903237, 0.9597473548, 0.9392375429, 0.7896823412, 0.1269987048, 0.9129208082, 0.4661948351, 0.5167210501, 0.2686517022, 0.3307797898, 0.6689103198, 0.7222861175, 0.3351978403, 0.6493104587, 0.4539583916, 0.6589726994 },
+ { 0.8858138531, 0.0185708843, 0.9980610723, 0.8485058707, 0.1858222342, 0.9717443376, 0.5250183645, 0.5755445795, 0.3274752317, 0.3896033192, 0.7277338493, 0.7811096470, 0.3940213698, 0.7081339881, 0.5127819210, 0.7177962288 },
+ { 0.9446373825, 0.0773944137, 0.0568846018, 0.9073294001, 0.2446457636, 0.0305678670, 0.5838418939, 0.6343681089, 0.3862987611, 0.4484268486, 0.7865573787, 0.8399331764, 0.4528448992, 0.7669575176, 0.5716054504, 0.7766197582 },
+ { 0.0069211195, 0.1985016801, 0.1779918682, 0.1460837253, 0.5422236183, 0.3869692511, 0.9990668074, 0.1084165518, 0.9191707334, 0.0401223503, 0.4370764098, 0.5492757369, 0.2210109891, 0.5939471369, 0.4574185992, 0.7212564364 },
+ { 0.0657446489, 0.2573252095, 0.2368153976, 0.2049072547, 0.6010471477, 0.4457927805, 0.0578903368, 0.1672400812, 0.9779942628, 0.0989458798, 0.4958999392, 0.6080992663, 0.2798345185, 0.6527706663, 0.5162421286, 0.7800799658 },
+ { 0.1245681783, 0.3161487389, 0.2956389270, 0.2637307842, 0.6598706771, 0.5046163100, 0.1167138663, 0.2260636106, 0.0368177922, 0.1577694092, 0.5547234686, 0.6669227957, 0.3386580480, 0.7115941958, 0.5750656580, 0.8389034952 },
+ { 0.1833917078, 0.3749722683, 0.3544624564, 0.3225543136, 0.7186942065, 0.5634398394, 0.1755373957, 0.2848871400, 0.0956413216, 0.2165929386, 0.6135469980, 0.7257463252, 0.3974815774, 0.7704177252, 0.6338891874, 0.8977270246 },
+ { 0.2422152372, 0.4337957977, 0.4132859858, 0.3813778430, 0.7775177359, 0.6222633688, 0.2343609251, 0.3437106695, 0.1544648510, 0.2754164680, 0.6723705275, 0.7845698546, 0.4563051068, 0.8292412546, 0.6927127168, 0.9565505540 },
+ { 0.3010387666, 0.4926193272, 0.4721095153, 0.4402013724, 0.8363412654, 0.6810868982, 0.2931844545, 0.4025341989, 0.2132883804, 0.3342399974, 0.7311940569, 0.8433933840, 0.5151286362, 0.8880647840, 0.7515362463, 0.0153740834 },
+ { 0.3598622960, 0.5514428566, 0.5309330447, 0.4990249018, 0.8951647948, 0.7399104276, 0.3520079839, 0.4613577283, 0.2721119099, 0.3930635268, 0.7900175863, 0.9022169134, 0.5739521656, 0.9468883134, 0.8103597757, 0.0741976129 },
+ { 0.4186858254, 0.6102663860, 0.5897565741, 0.5578484312, 0.9539883242, 0.7987339570, 0.4108315133, 0.5201812577, 0.3309354393, 0.4518870562, 0.8488411157, 0.9610404428, 0.6327756950, 0.0057118428, 0.8691833051, 0.1330211423 },
+ { 0.4775093548, 0.6690899154, 0.6485801035, 0.6166719606, 0.0128118536, 0.8575574864, 0.4696550427, 0.5790047871, 0.3897589687, 0.5107105856, 0.9076646451, 0.0198639722, 0.6915992244, 0.0645353722, 0.9280068345, 0.1918446717 },
+ { 0.5363328842, 0.7279134448, 0.7074036329, 0.6754954900, 0.0716353830, 0.9163810158, 0.5284785721, 0.6378283165, 0.4485824981, 0.5695341151, 0.9664881745, 0.0786875016, 0.7504227538, 0.1233589016, 0.9868303639, 0.2506682011 },
+ { 0.5951564136, 0.7867369742, 0.7662271623, 0.7343190195, 0.1304589124, 0.9752045452, 0.5873021015, 0.6966518459, 0.5074060275, 0.6283576445, 0.0253117039, 0.1375110310, 0.8092462833, 0.1821824310, 0.0456538933, 0.3094917305 },
+ { 0.6539799431, 0.8455605036, 0.8250506917, 0.7931425489, 0.1892824418, 0.0340280747, 0.6461256310, 0.7554753753, 0.5662295569, 0.6871811739, 0.0841352333, 0.1963345605, 0.8680698127, 0.2410059605, 0.1044774227, 0.3683152599 },
+ { 0.7128034725, 0.9043840330, 0.8838742211, 0.8519660783, 0.2481059712, 0.0928516041, 0.7049491604, 0.8142989047, 0.6250530863, 0.7460047033, 0.1429587627, 0.2551580899, 0.9268933421, 0.2998294899, 0.1633009521, 0.4271387893 },
+ { 0.7716270019, 0.9632075625, 0.9426977505, 0.9107896077, 0.3069295006, 0.1516751335, 0.7637726898, 0.8731224342, 0.6838766157, 0.8048282327, 0.2017822922, 0.3139816193, 0.9857168715, 0.3586530193, 0.2221244815, 0.4859623187 },
+ { 0.8304505313, 0.0220310919, 0.0015212800, 0.9696131371, 0.3657530301, 0.2104986629, 0.8225962192, 0.9319459636, 0.7427001452, 0.8636517621, 0.2606058216, 0.3728051487, 0.0445404009, 0.4174765487, 0.2809480110, 0.5447858482 },
+ { 0.8892740607, 0.0808546213, 0.0603448094, 0.0284366665, 0.4245765595, 0.2693221923, 0.8814197486, 0.9907694930, 0.8015236746, 0.9224752915, 0.3194293510, 0.4316286781, 0.1033639303, 0.4763000781, 0.3397715404, 0.6036093776 },
+ { 0.9480975901, 0.1396781507, 0.1191683388, 0.0872601959, 0.4834000889, 0.3281457217, 0.9402432780, 0.0495930224, 0.8603472040, 0.9812988209, 0.3782528804, 0.4904522075, 0.1621874597, 0.5351236075, 0.3985950698, 0.6624329070 },
+ { 0.0103813271, 0.2607854171, 0.2990991346, 0.3260145212, 0.7809779436, 0.6845471058, 0.2966446621, 0.5236414653, 0.3932191763, 0.5729943227, 0.0287719115, 0.1997947681, 0.9303535497, 0.3621132269, 0.2844082186, 0.6070695852 },
+ { 0.0692048565, 0.3196089465, 0.3579226640, 0.3848380506, 0.8398014730, 0.7433706352, 0.3554681915, 0.5824649947, 0.4520427057, 0.6318178521, 0.0875954409, 0.2586182975, 0.9891770791, 0.4209367563, 0.3432317480, 0.6658931146 },
+ { 0.1280283860, 0.3784324759, 0.4167461935, 0.4436615800, 0.8986250024, 0.8021941646, 0.4142917209, 0.6412885241, 0.5108662351, 0.6906413815, 0.1464189704, 0.3174418269, 0.0480006085, 0.4797602857, 0.4020552774, 0.7247166440 },
+ { 0.1868519154, 0.4372560054, 0.4755697229, 0.5024851094, 0.9574485318, 0.8610176940, 0.4731152503, 0.7001120535, 0.5696897645, 0.7494649109, 0.2052424998, 0.3762653563, 0.1068241379, 0.5385838151, 0.4608788068, 0.7835401734 },
+ { 0.2456754448, 0.4960795348, 0.5343932523, 0.5613086388, 0.0162720612, 0.9198412234, 0.5319387798, 0.7589355829, 0.6285132939, 0.8082884403, 0.2640660292, 0.4350888857, 0.1656476673, 0.5974073445, 0.5197023362, 0.8423637028 },
+ { 0.3044989742, 0.5549030642, 0.5932167817, 0.6201321682, 0.0750955906, 0.9786647529, 0.5907623092, 0.8177591124, 0.6873368234, 0.8671119697, 0.3228895586, 0.4939124151, 0.2244711967, 0.6562308740, 0.5785258656, 0.9011872322 },
+ { 0.3633225036, 0.6137265936, 0.6520403111, 0.6789556977, 0.1339191200, 0.0374882823, 0.6495858386, 0.8765826418, 0.7461603528, 0.9259354991, 0.3817130880, 0.5527359445, 0.2832947262, 0.7150544034, 0.6373493950, 0.9600107616 },
+ { 0.4221460330, 0.6725501230, 0.7108638405, 0.7377792271, 0.1927426494, 0.0963118117, 0.7084093680, 0.9354061712, 0.8049838822, 0.9847590286, 0.4405366174, 0.6115594739, 0.3421182556, 0.7738779328, 0.6961729245, 0.0188342911 },
+ { 0.4809695624, 0.7313736524, 0.7696873699, 0.7966027565, 0.2515661788, 0.1551353411, 0.7672328974, 0.9942297006, 0.8638074116, 0.0435825580, 0.4993601468, 0.6703830034, 0.4009417850, 0.8327014622, 0.7549964539, 0.0776578205 },
+ { 0.5397930918, 0.7901971818, 0.8285108993, 0.8554262859, 0.3103897083, 0.2139588705, 0.8260564268, 0.0530532300, 0.9226309410, 0.1024060874, 0.5581836762, 0.7292065328, 0.4597653144, 0.8915249916, 0.8138199833, 0.1364813499 },
+ { 0.5986166213, 0.8490207112, 0.8873344287, 0.9142498153, 0.3692132377, 0.2727823999, 0.8848799562, 0.1118767594, 0.9814544704, 0.1612296168, 0.6170072057, 0.7880300622, 0.5185888438, 0.9503485210, 0.8726435127, 0.1953048793 },
+ { 0.6574401507, 0.9078442407, 0.9461579582, 0.9730733447, 0.4280367671, 0.3316059293, 0.9437034856, 0.1707002888, 0.0402779998, 0.2200531462, 0.6758307351, 0.8468535916, 0.5774123732, 0.0091720504, 0.9314670421, 0.2541284087 },
+ { 0.7162636801, 0.9666677701, 0.0049814876, 0.0318968741, 0.4868602965, 0.3904294587, 0.0025270150, 0.2295238182, 0.0991015292, 0.2788766756, 0.7346542645, 0.9056771210, 0.6362359026, 0.0679955798, 0.9902905715, 0.3129519381 },
+ { 0.7750872095, 0.0254912995, 0.0638050170, 0.0907204035, 0.5456838259, 0.4492529882, 0.0613505445, 0.2883473477, 0.1579250587, 0.3377002050, 0.7934777939, 0.9645006504, 0.6950594320, 0.1268191092, 0.0491141009, 0.3717754675 },
+ { 0.8339107389, 0.0843148289, 0.1226285464, 0.1495439329, 0.6045073553, 0.5080765176, 0.1201740739, 0.3471708771, 0.2167485881, 0.3965237344, 0.8523013233, 0.0233241798, 0.7538829615, 0.1856426387, 0.1079376303, 0.4305989969 },
+ { 0.8927342683, 0.1431383583, 0.1814520758, 0.2083674624, 0.6633308847, 0.5669000470, 0.1789976033, 0.4059944065, 0.2755721175, 0.4553472638, 0.9111248527, 0.0821477092, 0.8127064909, 0.2444661681, 0.1667611598, 0.4894225264 },
+ { 0.9515577977, 0.2019618877, 0.2402756052, 0.2671909918, 0.7221544141, 0.6257235764, 0.2378211327, 0.4648179359, 0.3343956469, 0.5141707933, 0.9699483821, 0.1409712387, 0.8715300203, 0.3032896975, 0.2255846892, 0.5482460558 },
+ { 0.0138415347, 0.3230691541, 0.4202064011, 0.5059453170, 0.0197322688, 0.9821249605, 0.6530460462, 0.9388663788, 0.8672676192, 0.1058662950, 0.6204674133, 0.8503137992, 0.6396961102, 0.1302793169, 0.1113978380, 0.4928827340 },
+ { 0.0726650642, 0.3818926836, 0.4790299305, 0.5647688464, 0.0785557982, 0.0409484899, 0.7118695756, 0.9976899082, 0.9260911486, 0.1646898244, 0.6792909427, 0.9091373286, 0.6985196397, 0.1891028463, 0.1702213674, 0.5517062634 },
+ { 0.1314885936, 0.4407162130, 0.5378534599, 0.6235923759, 0.1373793276, 0.0997720193, 0.7706931050, 0.0565134376, 0.9849146780, 0.2235133538, 0.7381144721, 0.9679608580, 0.7573431691, 0.2479263757, 0.2290448968, 0.6105297928 },
+ { 0.1903121230, 0.4995397424, 0.5966769893, 0.6824159053, 0.1962028570, 0.1585955487, 0.8295166344, 0.1153369670, 0.0437382074, 0.2823368832, 0.7969380015, 0.0267843874, 0.8161666985, 0.3067499051, 0.2878684262, 0.6693533222 },
+ { 0.2491356524, 0.5583632718, 0.6555005187, 0.7412394347, 0.2550263865, 0.2174190781, 0.8883401638, 0.1741604964, 0.1025617369, 0.3411604126, 0.8557615309, 0.0856079169, 0.8749902279, 0.3655734345, 0.3466919556, 0.7281768516 },
+ { 0.3079591818, 0.6171868012, 0.7143240481, 0.8000629641, 0.3138499159, 0.2762426075, 0.9471636932, 0.2329840259, 0.1613852663, 0.3999839420, 0.9145850603, 0.1444314463, 0.9338137573, 0.4243969639, 0.4055154850, 0.7870003810 },
+ { 0.3667827112, 0.6760103306, 0.7731475775, 0.8588864935, 0.3726734453, 0.3350661369, 0.0059872227, 0.2918075553, 0.2202087957, 0.4588074715, 0.9734085897, 0.2032549757, 0.9926372867, 0.4832204933, 0.4643390144, 0.8458239104 },
+ { 0.4256062406, 0.7348338600, 0.8319711069, 0.9177100229, 0.4314969747, 0.3938896664, 0.0648107521, 0.3506310847, 0.2790323251, 0.5176310009, 0.0322321192, 0.2620785051, 0.0514608161, 0.5420440227, 0.5231625438, 0.9046474398 },
+ { 0.4844297700, 0.7936573894, 0.8907946364, 0.9765335523, 0.4903205041, 0.4527131958, 0.1236342815, 0.4094546141, 0.3378558545, 0.5764545303, 0.0910556486, 0.3209020345, 0.1102843455, 0.6008675522, 0.5819860732, 0.9634709693 },
+ { 0.5432532995, 0.8524809189, 0.9496181658, 0.0353570817, 0.5491440335, 0.5115367252, 0.1824578109, 0.4682781435, 0.3966793839, 0.6352780597, 0.1498791780, 0.3797255639, 0.1691078749, 0.6596910816, 0.6408096027, 0.0222944987 },
+ { 0.6020768289, 0.9113044483, 0.0084416952, 0.0941806111, 0.6079675629, 0.5703602546, 0.2412813403, 0.5271016729, 0.4555029133, 0.6941015891, 0.2087027074, 0.4385490933, 0.2279314044, 0.7185146110, 0.6996331321, 0.0811180281 },
+ { 0.6609003583, 0.9701279777, 0.0672652246, 0.1530041406, 0.6667910923, 0.6291837840, 0.3001048697, 0.5859252023, 0.5143264427, 0.7529251185, 0.2675262368, 0.4973726227, 0.2867549338, 0.7773381404, 0.7584566615, 0.1399415575 },
+ { 0.7197238877, 0.0289515071, 0.1260887540, 0.2118276700, 0.7256146218, 0.6880073134, 0.3589283991, 0.6447487317, 0.5731499721, 0.8117486479, 0.3263497662, 0.5561961521, 0.3455784632, 0.8361616698, 0.8172801909, 0.1987650869 },
+ { 0.7785474171, 0.0877750365, 0.1849122834, 0.2706511994, 0.7844381512, 0.7468308428, 0.4177519285, 0.7035722612, 0.6319735016, 0.8705721773, 0.3851732956, 0.6150196816, 0.4044019926, 0.8949851992, 0.8761037203, 0.2575886163 },
+ { 0.8373709465, 0.1465985659, 0.2437358128, 0.3294747288, 0.8432616806, 0.8056543722, 0.4765754580, 0.7623957906, 0.6907970310, 0.9293957068, 0.4439968250, 0.6738432110, 0.4632255220, 0.9538087286, 0.9349272497, 0.3164121457 },
+ { 0.8961944759, 0.2054220953, 0.3025593422, 0.3882982582, 0.9020852100, 0.8644779016, 0.5353989874, 0.8212193200, 0.7496205604, 0.9882192362, 0.5028203544, 0.7326667404, 0.5220490514, 0.0126322580, 0.9937507791, 0.3752356751 },
+ { 0.9550180053, 0.2642456247, 0.3613828717, 0.4471217876, 0.9609087394, 0.9233014311, 0.5942225168, 0.8800428494, 0.8084440898, 0.0470427656, 0.5616438839, 0.7914902698, 0.5808725808, 0.0714557874, 0.0525743085, 0.4340592046 },
+ { 0.0173017424, 0.3853528912, 0.5413136675, 0.6858761129, 0.2584865941, 0.2797028151, 0.0094474303, 0.2952677629, 0.3413160621, 0.6387382673, 0.2121629150, 0.5008328303, 0.3490386708, 0.8984454068, 0.9383874573, 0.3786958828 },
+ { 0.0761252718, 0.4441764206, 0.6001371969, 0.7446996423, 0.3173101235, 0.3385263446, 0.0682709597, 0.3540912923, 0.4001395915, 0.6975617967, 0.2709864444, 0.5596563598, 0.4078622002, 0.9572689362, 0.9972109867, 0.4375194122 },
+ { 0.1349488012, 0.5029999500, 0.6589607263, 0.8035231717, 0.3761336529, 0.3973498740, 0.1270944891, 0.4129148217, 0.4589631209, 0.7563853261, 0.3298099738, 0.6184798892, 0.4666857296, 0.0160924656, 0.0560345162, 0.4963429416 },
+ { 0.1937723306, 0.5618234794, 0.7177842557, 0.8623467011, 0.4349571823, 0.4561734034, 0.1859180185, 0.4717383511, 0.5177866503, 0.8152088555, 0.3886335032, 0.6773034186, 0.5255092590, 0.0749159951, 0.1148580456, 0.5551664710 },
+ { 0.2525958600, 0.6206470088, 0.7766077852, 0.9211702305, 0.4937807117, 0.5149969328, 0.2447415479, 0.5305618805, 0.5766101798, 0.8740323850, 0.4474570326, 0.7361269480, 0.5843327884, 0.1337395245, 0.1736815750, 0.6139900004 },
+ { 0.3114193894, 0.6794705382, 0.8354313146, 0.9799937599, 0.5526042411, 0.5738204622, 0.3035650773, 0.5893854099, 0.6354337092, 0.9328559144, 0.5062805621, 0.7949504774, 0.6431563179, 0.1925630539, 0.2325051044, 0.6728135298 },
+ { 0.3702429188, 0.7382940676, 0.8942548440, 0.0388172893, 0.6114277705, 0.6326439916, 0.3623886067, 0.6482089394, 0.6942572386, 0.9916794438, 0.5651040915, 0.8537740068, 0.7019798473, 0.2513865833, 0.2913286338, 0.7316370592 },
+ { 0.4290664482, 0.7971175971, 0.9530783734, 0.0976408188, 0.6702513000, 0.6914675210, 0.4212121362, 0.7070324688, 0.7530807680, 0.0505029732, 0.6239276209, 0.9125975362, 0.7608033767, 0.3102101127, 0.3501521632, 0.7904605886 },
+ { 0.4878899777, 0.8559411265, 0.0119019028, 0.1564643482, 0.7290748294, 0.7502910504, 0.4800356656, 0.7658559982, 0.8119042974, 0.1093265026, 0.6827511503, 0.9714210656, 0.8196269061, 0.3690336421, 0.4089756926, 0.8492841180 },
+ { 0.5467135071, 0.9147646559, 0.0707254322, 0.2152878776, 0.7878983588, 0.8091145798, 0.5388591950, 0.8246795276, 0.8707278268, 0.1681500320, 0.7415746797, 0.0302445951, 0.8784504355, 0.4278571715, 0.4677992220, 0.9081076475 },
+ { 0.6055370365, 0.9735881853, 0.1295489616, 0.2741114070, 0.8467218882, 0.8679381093, 0.5976827244, 0.8835030570, 0.9295513562, 0.2269735614, 0.8003982091, 0.0890681245, 0.9372739649, 0.4866807009, 0.5266227514, 0.9669311769 },
+ { 0.6643605659, 0.0324117147, 0.1883724910, 0.3329349364, 0.9055454176, 0.9267616387, 0.6565062538, 0.9423265864, 0.9883748856, 0.2857970908, 0.8592217385, 0.1478916539, 0.9960974943, 0.5455042304, 0.5854462809, 0.0257547063 },
+ { 0.7231840953, 0.0912352441, 0.2471960204, 0.3917584658, 0.9643689470, 0.9855851681, 0.7153297832, 0.0011501158, 0.0471984151, 0.3446206202, 0.9180452679, 0.2067151833, 0.0549210237, 0.6043277598, 0.6442698103, 0.0845782357 },
+ { 0.7820076247, 0.1500587735, 0.3060195499, 0.4505819952, 0.0231924764, 0.0444086975, 0.7741533126, 0.0599736452, 0.1060219445, 0.4034441497, 0.9768687974, 0.2655387127, 0.1137445531, 0.6631512892, 0.7030933397, 0.1434017651 }
+};
 
- for( std::size_t i = 0; i != N; ++i )
- {
- qf.seed(skip + i);
- for( std::size_t j = 0; j != Dimension; ++j )
- {
- T val = qf();
- // We want to check that quasi-random number generator values differ no
- // more than 1% of their value.
- BOOST_CHECK_CLOSE_FRACTION(dset[i][j], val, 1);
- }
- }
-}
-
-template<typename T, std::size_t Dimension, std::size_t N>
-inline void test_discard(T (&dset)[N][Dimension], std::size_t skip)
-{
- boost::random::faure<T, Dimension> qf, qtrivial, qstart;
 
- const std::size_t element_count = N * Dimension;
- const T* dset_array = reinterpret_cast<T *>(boost::addressof(dset));
+QRNG_VALIDATION_TEST_FUNCTIONS(faure)
 
- qstart.seed(skip);
- for( std::size_t step = 0; step != element_count; ++step )
- {
- // Init to the same state
- qf = qstart;
- qtrivial = qstart;
-
- // Discards have to have the same effect
- qf.discard(step);
- trivial_discard(qtrivial, step);
-
- // Therefore, states are equal
- BOOST_CHECK( qf == qtrivial );
-
- // Now, let's check whether they really produce the same sequence
- for( std::size_t k = step; k != element_count; ++k )
- {
- T q_val = qf();
- T t_val = qtrivial();
- BOOST_CHECK_CLOSE_FRACTION(q_val, t_val, 0.00001);
- // ~ BOOST_CHECK(q_val == t_val), but those are floating point values,
- // so strict equality check may fail unnecessarily
-
- // States remain equal!
- BOOST_CHECK( qf == qtrivial );
-
- // We want to check that quasi-random number generator values differ no
- // more than 1% of their value.
- BOOST_CHECK_CLOSE_FRACTION(dset_array[k], q_val, 1);
- }
- }
-}
 
 BOOST_AUTO_TEST_CASE( validate_faure )
 {
- test_values(faure_02_100, 15);
- test_values(faure_07_100, 2400);
- test_values(faure_16_100, 83520);
+ test_faure_values(faure_02_100, 15);
+ test_faure_values(faure_07_100, 2400);
+ test_faure_values(faure_16_100, 83520);
 }
 
 BOOST_AUTO_TEST_CASE( validate_faure_seed )
 {
- test_seed(faure_02_100, 15);
- test_seed(faure_07_100, 2400);
- test_seed(faure_16_100, 83520);
+ test_faure_seed(faure_02_100, 15);
+ test_faure_seed(faure_07_100, 2400);
+ test_faure_seed(faure_16_100, 83520);
 }
 
 BOOST_AUTO_TEST_CASE( validate_faure_discard )
 {
- test_discard(faure_02_100, 15);
- test_discard(faure_07_100, 2400);
- test_discard(faure_16_100, 83520);
+ test_faure_discard(faure_02_100, 15);
+ test_faure_discard(faure_07_100, 2400);
+ test_faure_discard(faure_16_100, 83520);
 }

Modified: sandbox/SOC/2010/quasi_random/libs/random/test/gsl_validate.cpp
==============================================================================
--- sandbox/SOC/2010/quasi_random/libs/random/test/gsl_validate.cpp (original)
+++ sandbox/SOC/2010/quasi_random/libs/random/test/gsl_validate.cpp 2010-07-23 08:30:02 EDT (Fri, 23 Jul 2010)
@@ -30,22 +30,6 @@
 // These tests compare our results with values produced by qrngs in
 // GNU Scientific Library.
 
-// GSL adaptors
-
-struct gsl_niederreiter_base2
-{
- static const gsl_qrng_type * type() {
- return ::gsl_qrng_niederreiter_2;
- }
-};
-
-struct gsl_sobol
-{
- static const gsl_qrng_type * type() {
- return ::gsl_qrng_sobol;
- }
-};
-
 struct gsl_deleter
 {
   void operator()(gsl_qrng *q) const
@@ -56,30 +40,30 @@
 };
 
 // Test routine
-template<typename GSL, typename QRNG>
-bool test_qrng(const std::size_t D)
+template<std::size_t D, typename QEngine>
+bool test_qrng(const gsl_qrng_type* qrng_type, QEngine& eng)
 {
- QRNG test;
-
   const int validating_sequence_lenght = 10000;
 
- boost::shared_ptr<gsl_qrng> q(gsl_qrng_alloc(GSL::type(), D), gsl_deleter());
+ BOOST_REQUIRE_EQUAL( eng.dimension(), D ); // paranoid check
+
+ boost::shared_ptr<gsl_qrng> q(gsl_qrng_alloc(qrng_type, D), gsl_deleter());
   // RAII, to ensure that no memory leaks occur
   BOOST_REQUIRE( q.get() != 0 );
 
   double val[D];
- boost::uniform_real<double> rnd;
+ boost::uniform_real<double> dist;
 
   for( int i = 0; i < validating_sequence_lenght; ++i )
   {
     gsl_qrng_get(q.get(), val);
     for( std::size_t j = 0; j != D; ++j )
     {
- double n = rnd(test);
+ double n = dist(eng);
 
       // We want to check that quasi-random number generator values differ no
       // more than 0.0001% of their value.
- BOOST_REQUIRE_CLOSE_FRACTION(val[j], n, 0.0001);
+ BOOST_REQUIRE_CLOSE(val[j], n, 0.0001);
     }
   }
 
@@ -87,18 +71,21 @@
 }
 
 
-template<int D>
+template<std::size_t D>
 void test_sobol()
 {
   typedef typename boost::sobol_generator<D>::type sobol_t;
- BOOST_CHECK( (test_qrng<gsl_sobol, sobol_t>(D)) );
+ sobol_t eng;
+ eng.discard(D); // GSL shifts sequence by 1
+ BOOST_CHECK( (test_qrng<D>(::gsl_qrng_sobol, eng)) );
 }
 
-template<int D>
+template<std::size_t D>
 void test_niederreiter_base2()
 {
- typedef typename boost::niederreiter_base2_generator<D>::type nb2_t;
- BOOST_CHECK( (test_qrng<gsl_niederreiter_base2, nb2_t>(D)) );
+ typedef typename boost::niederreiter_base2_generator<D>::type niederreiter_base2_t;
+ niederreiter_base2_t eng;
+ BOOST_CHECK( (test_qrng<D>(::gsl_qrng_niederreiter_2, eng)) );
 }
 
 

Added: sandbox/SOC/2010/quasi_random/libs/random/test/niederreiter_base2_validade.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/quasi_random/libs/random/test/niederreiter_base2_validade.cpp 2010-07-23 08:30:02 EDT (Fri, 23 Jul 2010)
@@ -0,0 +1,372 @@
+// Copyright Justinas Vygintas Daugmaudis, 2010.
+// Use, modification and distribution is subject to the
+// Boost Software License, Version 1.0. (See accompanying
+// file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+
+#include <boost/random/niederreiter_base2.hpp>
+
+#include <boost/utility.hpp>
+
+#define BOOST_TEST_MAIN
+#include <boost/test/unit_test.hpp>
+
+#include "test_qrng_functions.hpp"
+
+//
+// DESCRIPTION:
+// ~~~~~~~~~~~~
+//
+// This file tests the faure quasi-random number generator.
+// These tests compare our results with values produced by the original
+// version of ACM TOMS Algorithm 738, which is available in the
+// TOMS subdirectory in http://www.netlib.org
+//
+// For independently generated datasets look at http://people.sc.fsu.edu/~jburkardt/datasets/niederreiter2/
+
+
+// Spatial dimension: 2
+// N: 100
+// Vectors skipped: 4096
+double niederreiter_base2_02_100[100][2] =
+{
+ { 0.0003662109, 0.4705810548 },
+ { 0.5003662111, 0.9705810549 },
+ { 0.7503662111, 0.2205810547 },
+ { 0.2503662110, 0.7205810549 },
+ { 0.3753662110, 0.0955810547 },
+ { 0.8753662111, 0.5955810548 },
+ { 0.6253662111, 0.3455810548 },
+ { 0.1253662110, 0.8455810549 },
+ { 0.1878662110, 0.1580810547 },
+ { 0.6878662111, 0.6580810548 },
+ { 0.9378662112, 0.4080810548 },
+ { 0.4378662110, 0.9080810549 },
+ { 0.3128662110, 0.2830810548 },
+ { 0.8128662111, 0.7830810549 },
+ { 0.5628662111, 0.0330810547 },
+ { 0.0628662110, 0.5330810548 },
+ { 0.0941162110, 0.0018310547 },
+ { 0.5941162111, 0.5018310548 },
+ { 0.8441162111, 0.2518310547 },
+ { 0.3441162110, 0.7518310549 },
+ { 0.4691162110, 0.3768310548 },
+ { 0.9691162112, 0.8768310549 },
+ { 0.7191162111, 0.1268310547 },
+ { 0.2191162110, 0.6268310548 },
+ { 0.1566162110, 0.3143310548 },
+ { 0.6566162111, 0.8143310549 },
+ { 0.9066162111, 0.0643310547 },
+ { 0.4066162110, 0.5643310548 },
+ { 0.2816162110, 0.1893310547 },
+ { 0.7816162111, 0.6893310548 },
+ { 0.5316162111, 0.4393310548 },
+ { 0.0316162109, 0.9393310549 },
+ { 0.0472412109, 0.2362060547 },
+ { 0.5472412111, 0.7362060549 },
+ { 0.7972412111, 0.4862060548 },
+ { 0.2972412110, 0.9862060549 },
+ { 0.4222412110, 0.3612060548 },
+ { 0.9222412112, 0.8612060549 },
+ { 0.6722412111, 0.1112060547 },
+ { 0.1722412110, 0.6112060548 },
+ { 0.2347412110, 0.4237060548 },
+ { 0.7347412111, 0.9237060549 },
+ { 0.9847412112, 0.1737060547 },
+ { 0.4847412111, 0.6737060548 },
+ { 0.3597412110, 0.0487060547 },
+ { 0.8597412111, 0.5487060548 },
+ { 0.6097412111, 0.2987060548 },
+ { 0.1097412110, 0.7987060549 },
+ { 0.0784912110, 0.2674560547 },
+ { 0.5784912111, 0.7674560549 },
+ { 0.8284912111, 0.0174560547 },
+ { 0.3284912110, 0.5174560548 },
+ { 0.4534912110, 0.1424560547 },
+ { 0.9534912112, 0.6424560548 },
+ { 0.7034912111, 0.3924560548 },
+ { 0.2034912110, 0.8924560549 },
+ { 0.1409912110, 0.0799560547 },
+ { 0.6409912111, 0.5799560548 },
+ { 0.8909912111, 0.3299560548 },
+ { 0.3909912110, 0.8299560549 },
+ { 0.2659912110, 0.4549560548 },
+ { 0.7659912111, 0.9549560549 },
+ { 0.5159912111, 0.2049560547 },
+ { 0.0159912109, 0.7049560549 },
+ { 0.0238037109, 0.1190185547 },
+ { 0.5238037111, 0.6190185548 },
+ { 0.7738037111, 0.3690185548 },
+ { 0.2738037110, 0.8690185549 },
+ { 0.3988037110, 0.4940185548 },
+ { 0.8988037111, 0.9940185549 },
+ { 0.6488037111, 0.2440185547 },
+ { 0.1488037110, 0.7440185549 },
+ { 0.2113037110, 0.3065185548 },
+ { 0.7113037111, 0.8065185549 },
+ { 0.9613037112, 0.0565185547 },
+ { 0.4613037110, 0.5565185548 },
+ { 0.3363037110, 0.1815185547 },
+ { 0.8363037111, 0.6815185548 },
+ { 0.5863037111, 0.4315185548 },
+ { 0.0863037110, 0.9315185549 },
+ { 0.1175537110, 0.4002685548 },
+ { 0.6175537111, 0.9002685549 },
+ { 0.8675537111, 0.1502685547 },
+ { 0.3675537110, 0.6502685548 },
+ { 0.4925537111, 0.0252685547 },
+ { 0.9925537112, 0.5252685548 },
+ { 0.7425537111, 0.2752685548 },
+ { 0.2425537110, 0.7752685549 },
+ { 0.1800537110, 0.2127685547 },
+ { 0.6800537111, 0.7127685549 },
+ { 0.9300537112, 0.4627685548 },
+ { 0.4300537110, 0.9627685549 },
+ { 0.3050537110, 0.3377685548 },
+ { 0.8050537111, 0.8377685549 },
+ { 0.5550537111, 0.0877685547 },
+ { 0.0550537110, 0.5877685548 },
+ { 0.0394287109, 0.3533935548 },
+ { 0.5394287111, 0.8533935549 },
+ { 0.7894287111, 0.1033935547 },
+ { 0.2894287110, 0.6033935548 }
+};
+
+// Spatial dimension: 7
+// N: 100
+// Vectors skipped: 4096
+double niederreiter_base2_07_100[100][7] =
+{
+ { 0.0003662109, 0.4705810548, 0.6358642580, 0.9561767580, 0.6715087892, 0.9793701174, 0.6053466798 },
+ { 0.5003662111, 0.9705810549, 0.3858642579, 0.0811767578, 0.2965087891, 0.0418701172, 0.4178466798 },
+ { 0.7503662111, 0.2205810547, 0.9483642580, 0.8155517580, 0.5621337892, 0.9207763674, 0.5467529298 },
+ { 0.2503662110, 0.7205810549, 0.1983642579, 0.1905517579, 0.4371337892, 0.1082763672, 0.4842529298 },
+ { 0.3753662110, 0.0955810547, 0.2608642579, 0.7374267580, 0.7652587892, 0.8465576174, 0.6600341798 },
+ { 0.8753662111, 0.5955810548, 0.5108642579, 0.3624267579, 0.1402587891, 0.1590576172, 0.3475341798 },
+ { 0.6253662111, 0.3455810548, 0.0733642578, 0.5968017580, 0.9058837893, 0.7879638674, 0.7264404299 },
+ { 0.1253662110, 0.8455810549, 0.8233642580, 0.4718017579, 0.0308837891, 0.2254638672, 0.2889404298 },
+ { 0.1878662110, 0.1580810547, 0.1514892578, 0.2686767579, 0.3590087891, 0.7449951174, 0.9334716799 },
+ { 0.6878662111, 0.6580810548, 0.9014892580, 0.6436767580, 0.7340087892, 0.3074951173, 0.1209716797 },
+ { 0.9378662112, 0.4080810548, 0.4639892579, 0.3780517579, 0.4996337892, 0.6864013673, 0.9998779299 },
+ { 0.4378662110, 0.9080810549, 0.7139892580, 0.5030517579, 0.6246337892, 0.3739013673, 0.0623779297 },
+ { 0.3128662110, 0.2830810548, 0.7764892580, 0.0499267578, 0.2027587891, 0.6121826173, 0.8631591799 },
+ { 0.8128662111, 0.7830810549, 0.0264892578, 0.9249267580, 0.8277587893, 0.4246826173, 0.1756591797 },
+ { 0.5628662111, 0.0330810547, 0.5889892579, 0.1593017578, 0.0933837891, 0.5535888673, 0.8045654299 },
+ { 0.0628662110, 0.5330810548, 0.3389892579, 0.7843017580, 0.9683837893, 0.4910888673, 0.2420654297 },
+ { 0.0941162110, 0.0018310547, 0.9171142580, 0.5635986329, 0.4195556642, 0.3856201173, 0.3865966798 },
+ { 0.5941162111, 0.5018310548, 0.1671142579, 0.4385986329, 0.5445556642, 0.5731201173, 0.5740966798 },
+ { 0.8441162111, 0.2518310547, 0.7296142580, 0.7042236330, 0.3101806641, 0.4520263673, 0.4530029298 },
+ { 0.3441162110, 0.7518310549, 0.4796142579, 0.3292236329, 0.6851806642, 0.5145263673, 0.5155029298 },
+ { 0.4691162110, 0.3768310548, 0.0421142578, 0.8448486330, 0.0133056641, 0.2528076172, 0.3162841798 },
+ { 0.9691162112, 0.8768310549, 0.7921142580, 0.2198486329, 0.8883056643, 0.6903076173, 0.6287841798 },
+ { 0.7191162111, 0.1268310547, 0.3546142579, 0.9854736330, 0.1539306641, 0.3192138673, 0.2576904297 },
+ { 0.2191162110, 0.6268310548, 0.6046142580, 0.1104736328, 0.7789306642, 0.6317138673, 0.6951904298 },
+ { 0.1566162110, 0.3143310548, 0.4327392579, 0.1260986328, 0.6070556642, 0.1512451172, 0.0897216797 },
+ { 0.6566162111, 0.8143310549, 0.6827392580, 0.7510986330, 0.4820556642, 0.8387451174, 0.9022216799 },
+ { 0.9066162111, 0.0643310547, 0.2452392579, 0.0167236328, 0.7476806642, 0.2176513672, 0.0311279297 },
+ { 0.4066162110, 0.5643310548, 0.9952392580, 0.8917236330, 0.3726806641, 0.7801513674, 0.9686279299 },
+ { 0.2816162110, 0.1893310547, 0.5577392579, 0.4073486329, 0.9508056643, 0.0184326172, 0.1444091797 },
+ { 0.7816162111, 0.6893310548, 0.3077392579, 0.5323486329, 0.0758056641, 0.9559326174, 0.8319091799 },
+ { 0.5316162111, 0.4393310548, 0.8702392580, 0.2979736329, 0.8414306643, 0.0848388672, 0.2108154297 },
+ { 0.0316162109, 0.9393310549, 0.1202392578, 0.6729736330, 0.2164306641, 0.8973388674, 0.7733154299 },
+ { 0.0472412109, 0.2362060547, 0.4522705079, 0.1007080078, 0.0426025391, 0.7955322267, 0.4801025392 },
+ { 0.5472412111, 0.7362060549, 0.7022705080, 0.9757080080, 0.9176025393, 0.2330322266, 0.5426025392 },
+ { 0.7972412111, 0.4862060548, 0.1397705078, 0.2413330079, 0.1832275391, 0.8541259768, 0.4215087892 },
+ { 0.2972412110, 0.9862060549, 0.8897705080, 0.8663330080, 0.8082275393, 0.1666259766, 0.6090087892 },
+ { 0.4222412110, 0.3612060548, 0.5772705079, 0.3194580079, 0.3863525392, 0.9127197268, 0.2847900391 },
+ { 0.9222412112, 0.8612060549, 0.3272705079, 0.6944580080, 0.5113525392, 0.1002197266, 0.7222900392 },
+ { 0.6722412111, 0.1112060547, 0.7647705080, 0.4600830079, 0.2769775391, 0.9713134768, 0.3511962891 },
+ { 0.1722412110, 0.6112060548, 0.0147705078, 0.5850830079, 0.6519775392, 0.0338134766, 0.6636962892 },
+ { 0.2347412110, 0.4237060548, 0.9678955080, 0.6632080080, 0.9801025393, 0.5611572267, 0.0582275391 },
+ { 0.7347412111, 0.9237060549, 0.2178955079, 0.2882080079, 0.1051025391, 0.4986572267, 0.9957275393 },
+ { 0.9847412112, 0.1737060547, 0.6553955080, 0.5538330079, 0.8707275393, 0.6197509767, 0.1246337891 },
+ { 0.4847412111, 0.6737060548, 0.4053955079, 0.4288330079, 0.2457275391, 0.4322509767, 0.9371337893 },
+ { 0.3597412110, 0.0487060547, 0.0928955078, 0.8819580080, 0.5738525392, 0.6783447267, 0.2379150391 },
+ { 0.8597412111, 0.5487060548, 0.8428955080, 0.0069580078, 0.4488525392, 0.3658447266, 0.8004150392 },
+ { 0.6097412111, 0.2987060548, 0.2803955079, 0.7725830080, 0.7144775392, 0.7369384767, 0.1793212891 },
+ { 0.1097412110, 0.7987060549, 0.5303955079, 0.1475830078, 0.3394775391, 0.2994384766, 0.8668212893 },
+ { 0.0784912110, 0.2674560547, 0.2335205079, 0.4893798829, 0.7906494142, 0.3267822266, 0.5113525392 },
+ { 0.5784912111, 0.7674560549, 0.9835205080, 0.6143798830, 0.1656494141, 0.6392822267, 0.4488525392 },
+ { 0.8284912111, 0.0174560547, 0.4210205079, 0.3487548829, 0.9312744143, 0.2603759766, 0.5777587892 },
+ { 0.3284912110, 0.5174560548, 0.6710205080, 0.7237548830, 0.0562744141, 0.6978759767, 0.3902587892 },
+ { 0.4534912110, 0.1424560547, 0.8585205080, 0.2081298829, 0.6343994142, 0.4439697267, 0.6910400392 },
+ { 0.9534912112, 0.6424560548, 0.1085205078, 0.8331298830, 0.2593994141, 0.5064697267, 0.2535400391 },
+ { 0.7034912111, 0.3924560548, 0.5460205079, 0.0675048828, 0.5250244142, 0.3775634767, 0.6324462892 },
+ { 0.2034912110, 0.8924560549, 0.2960205079, 0.9425048830, 0.4000244142, 0.5650634767, 0.3199462891 },
+ { 0.1409912110, 0.0799560547, 0.7491455080, 0.8018798830, 0.2281494141, 0.0924072266, 0.9644775393 },
+ { 0.6409912111, 0.5799560548, 0.4991455079, 0.1768798829, 0.8531494143, 0.9049072268, 0.0269775391 },
+ { 0.8909912111, 0.3299560548, 0.9366455080, 0.9112548830, 0.1187744141, 0.0260009766, 0.9058837893 },
+ { 0.3909912110, 0.8299560549, 0.1866455079, 0.0362548828, 0.9937744143, 0.9635009768, 0.0933837891 },
+ { 0.2659912110, 0.4549560548, 0.3741455079, 0.5206298829, 0.3218994141, 0.2095947266, 0.7691650392 },
+ { 0.7659912111, 0.9549560549, 0.6241455080, 0.3956298829, 0.6968994142, 0.7720947267, 0.2066650391 },
+ { 0.5159912111, 0.2049560547, 0.0616455078, 0.6300048830, 0.4625244142, 0.1431884766, 0.8355712893 },
+ { 0.0159912109, 0.7049560549, 0.8116455080, 0.2550048829, 0.5875244142, 0.8306884768, 0.1480712891 },
+ { 0.0238037109, 0.1190185547, 0.0186767578, 0.1827392579, 0.9136962893, 0.5960693361, 0.2923583985 },
+ { 0.5238037111, 0.6190185548, 0.7686767580, 0.8077392580, 0.0386962891, 0.4085693360, 0.7298583986 },
+ { 0.7738037111, 0.3690185548, 0.3311767579, 0.0421142578, 0.8043212892, 0.5374755861, 0.3587646485 },
+ { 0.2738037110, 0.8690185549, 0.5811767579, 0.9171142580, 0.1793212891, 0.4749755860, 0.6712646486 },
+ { 0.3988037110, 0.4940185548, 0.8936767580, 0.4014892579, 0.5074462892, 0.7288818361, 0.4720458985 },
+ { 0.8988037111, 0.9940185549, 0.1436767578, 0.5264892579, 0.3824462892, 0.2913818360, 0.5345458986 },
+ { 0.6488037111, 0.2440185547, 0.7061767580, 0.2608642579, 0.6480712892, 0.6702880861, 0.4134521485 },
+ { 0.1488037110, 0.7440185549, 0.4561767579, 0.6358642580, 0.2730712891, 0.3577880860, 0.6009521486 },
+ { 0.2113037110, 0.3065185548, 0.5030517579, 0.6202392580, 0.1011962891, 0.8616943361, 0.2454833985 },
+ { 0.7113037111, 0.8065185549, 0.2530517579, 0.4952392579, 0.9761962893, 0.1741943360, 0.8079833986 },
+ { 0.9613037112, 0.0565185547, 0.8155517580, 0.7296142580, 0.2418212891, 0.8031005861, 0.1868896485 },
+ { 0.4613037110, 0.5565185548, 0.0655517578, 0.3546142579, 0.8668212893, 0.2406005860, 0.8743896486 },
+ { 0.3363037110, 0.1815185547, 0.3780517579, 0.8389892580, 0.4449462892, 0.9945068362, 0.0501708984 },
+ { 0.8363037111, 0.6815185548, 0.6280517580, 0.2139892579, 0.5699462892, 0.0570068360, 0.9876708987 },
+ { 0.5863037111, 0.4315185548, 0.1905517579, 0.9483642580, 0.3355712891, 0.9359130862, 0.1165771485 },
+ { 0.0863037110, 0.9315185549, 0.9405517580, 0.0733642578, 0.7105712892, 0.1234130860, 0.9290771487 },
+ { 0.1175537110, 0.4002685548, 0.2999267579, 0.2901611329, 0.1617431641, 0.0023193359, 0.6986083986 },
+ { 0.6175537111, 0.9002685549, 0.5499267579, 0.6651611330, 0.7867431642, 0.9398193362, 0.2611083985 },
+ { 0.8675537111, 0.1502685547, 0.1124267578, 0.4307861329, 0.0523681641, 0.0687255860, 0.6400146486 },
+ { 0.3675537110, 0.6502685548, 0.8624267580, 0.5557861329, 0.9273681643, 0.8812255861, 0.3275146485 },
+ { 0.4925537111, 0.0252685547, 0.6749267580, 0.0089111328, 0.2554931641, 0.1351318360, 0.5032958986 },
+ { 0.9925537112, 0.5252685548, 0.4249267579, 0.8839111330, 0.6304931642, 0.8226318361, 0.4407958985 },
+ { 0.7425537111, 0.2752685548, 0.9874267580, 0.1495361328, 0.3961181642, 0.2015380860, 0.5697021486 },
+ { 0.2425537110, 0.7752685549, 0.2374267579, 0.7745361330, 0.5211181642, 0.7640380861, 0.3822021485 },
+ { 0.1800537110, 0.2127685547, 0.7843017580, 0.9776611330, 0.8492431643, 0.2679443360, 0.7767333986 },
+ { 0.6800537111, 0.7127685549, 0.0343017578, 0.1026611328, 0.2242431641, 0.7054443361, 0.2142333985 },
+ { 0.9300537112, 0.4627685548, 0.5968017580, 0.8682861330, 0.9898681643, 0.3343505860, 0.8431396486 },
+ { 0.4300537110, 0.9627685549, 0.3468017579, 0.2432861329, 0.1148681641, 0.6468505861, 0.1556396485 },
+ { 0.3050537110, 0.3377685548, 0.1593017578, 0.6964111330, 0.6929931642, 0.4007568360, 0.9564208987 },
+ { 0.8050537111, 0.8377685549, 0.9093017580, 0.3214111329, 0.3179931641, 0.5882568361, 0.0189208984 },
+ { 0.5550537111, 0.0877685547, 0.4718017579, 0.5870361329, 0.5836181642, 0.4671630860, 0.8978271486 },
+ { 0.0550537110, 0.5877685548, 0.7218017580, 0.4620361329, 0.4586181642, 0.5296630861, 0.0853271485 },
+ { 0.0394287109, 0.3533935548, 0.8350830080, 0.7647705080, 0.2847900391, 0.6622314455, 0.6671142580 },
+ { 0.5394287111, 0.8533935549, 0.0850830078, 0.1397705078, 0.6597900392, 0.3497314454, 0.3546142579 },
+ { 0.7894287111, 0.1033935547, 0.5225830079, 0.9053955080, 0.4254150392, 0.7208251955, 0.7335205080 },
+ { 0.2894287110, 0.6033935548, 0.2725830079, 0.0303955078, 0.5504150392, 0.2833251954, 0.2960205079 }
+};
+
+
+// Spatial dimension: 16
+// N: 100
+// Vectors skipped: 4096
+double niederreiter_base2_16_100[100][16] =
+{
+ { 0.0003662109, 0.4705810548, 0.6358642580, 0.9561767580, 0.6715087892, 0.9793701174, 0.6053466798, 0.1983642579, 0.2217731476, 0.3769855500, 0.5390644075, 0.4707050325, 0.2744159699, 0.9942340853, 0.5396728517, 0.0626220703 },
+ { 0.5003662111, 0.9705810549, 0.3858642579, 0.0811767578, 0.2965087891, 0.0418701172, 0.4178466798, 0.7608642580, 0.7530231478, 0.5957355501, 0.4453144075, 0.5019550325, 0.7431659700, 0.0254840851, 0.4615478517, 0.9219970705 },
+ { 0.7503662111, 0.2205810547, 0.9483642580, 0.8155517580, 0.5621337892, 0.9207763674, 0.5467529298, 0.1397705078, 0.1895465851, 0.4092121125, 0.5087909700, 0.4404315950, 0.3046894074, 0.9639606478, 0.5555419923, 0.0784912110 },
+ { 0.2503662110, 0.7205810549, 0.1983642579, 0.1905517579, 0.4371337892, 0.1082763672, 0.4842529298, 0.8272705080, 0.7832965853, 0.5654621126, 0.4775409700, 0.5341815950, 0.7109394075, 0.0577106476, 0.4461669923, 0.9066162111 },
+ { 0.3753662110, 0.0955810547, 0.2608642579, 0.7374267580, 0.7652587892, 0.8465576174, 0.6600341798, 0.0030517578, 0.1573200226, 0.4375324250, 0.6035175325, 0.3750019074, 0.3701190949, 0.8985309603, 0.5079345704, 0.0943603516 },
+ { 0.8753662111, 0.5955810548, 0.5108642579, 0.3624267579, 0.1402587891, 0.1590576172, 0.3475341798, 0.9405517580, 0.8135700228, 0.5312824251, 0.3847675324, 0.5937519075, 0.6513690950, 0.1172809601, 0.4923095704, 0.8912353518 },
+ { 0.6253662111, 0.3455810548, 0.0733642578, 0.5968017580, 0.9058837893, 0.7879638674, 0.7264404299, 0.0694580078, 0.1250934601, 0.4697589875, 0.5732440950, 0.4072284699, 0.3378925324, 0.9307575228, 0.5238037111, 0.1102294922 },
+ { 0.1253662110, 0.8455810549, 0.8233642580, 0.4718017579, 0.0308837891, 0.2254638672, 0.2889404298, 0.8819580080, 0.8438434603, 0.5010089875, 0.4169940949, 0.5634784700, 0.6816425325, 0.0870075226, 0.4769287110, 0.8758544924 },
+ { 0.1878662110, 0.1580810547, 0.1514892578, 0.2686767579, 0.3590087891, 0.7449951174, 0.9334716799, 0.3389892579, 0.1006793976, 0.2871418000, 0.6367206575, 0.2558612824, 0.4658222200, 0.8106403353, 0.6031494142, 0.0010986328 },
+ { 0.6878662111, 0.6580810548, 0.9014892580, 0.6436767580, 0.7340087892, 0.3074951173, 0.1209716797, 0.6514892580, 0.8819293978, 0.6933918001, 0.3554706574, 0.7246112825, 0.5595722200, 0.2168903351, 0.4000244142, 0.9854736330 },
+ { 0.9378662112, 0.4080810548, 0.4639892579, 0.3780517579, 0.4996337892, 0.6864013673, 0.9998779299, 0.2803955079, 0.0684528351, 0.2568683625, 0.6689472200, 0.2880878449, 0.4960956575, 0.7803668978, 0.6190185548, 0.0169677734 },
+ { 0.4378662110, 0.9080810549, 0.7139892580, 0.5030517579, 0.6246337892, 0.3739013673, 0.0623779297, 0.7178955080, 0.9122028353, 0.7256183626, 0.3251972199, 0.6943378450, 0.5273456575, 0.2491168976, 0.3846435548, 0.9700927737 },
+ { 0.3128662110, 0.2830810548, 0.7764892580, 0.0499267578, 0.2027587891, 0.6121826173, 0.8631591799, 0.3936767579, 0.0362262726, 0.3476886750, 0.7011737825, 0.3476581574, 0.4365253450, 0.8399372103, 0.5714111329, 0.0328369141 },
+ { 0.8128662111, 0.7830810549, 0.0264892578, 0.9249267580, 0.8277587893, 0.4246826173, 0.1756591797, 0.5811767579, 0.9424762728, 0.6289386751, 0.2949237824, 0.6289081575, 0.5927753450, 0.1836872101, 0.4307861329, 0.9547119143 },
+ { 0.5628662111, 0.0330810547, 0.5889892579, 0.1593017578, 0.0933837891, 0.5535888673, 0.8045654299, 0.4600830079, 0.0039997101, 0.3174152375, 0.7334003450, 0.3173847199, 0.4042987824, 0.8721637728, 0.5872802736, 0.0487060547 },
+ { 0.0628662110, 0.5330810548, 0.3389892579, 0.7843017580, 0.9683837893, 0.4910888673, 0.2420654297, 0.5225830079, 0.9727497103, 0.6611652376, 0.2646503449, 0.6611347200, 0.6230487825, 0.1534137726, 0.4154052735, 0.9393310549 },
+ { 0.0941162110, 0.0018310547, 0.9171142580, 0.5635986329, 0.4195556642, 0.3856201173, 0.3865966798, 0.9796142580, 0.4483356477, 0.1972980500, 0.8125019075, 0.0410175324, 0.1728534699, 0.6114215852, 0.6666259767, 0.2052001954 },
+ { 0.5941162111, 0.5018310548, 0.1671142579, 0.4385986329, 0.5445556642, 0.5731201173, 0.5740966798, 0.0421142578, 0.5420856477, 0.7910480501, 0.1562519074, 0.9472675326, 0.8291034700, 0.3926715852, 0.3385009766, 0.7833251955 },
+ { 0.8441162111, 0.2518310547, 0.7296142580, 0.7042236330, 0.3101806641, 0.4520263673, 0.4530029298, 0.9210205080, 0.4786090852, 0.2295246125, 0.8447284700, 0.0107440949, 0.1406269074, 0.5811481477, 0.6824951173, 0.1898193360 },
+ { 0.3441162110, 0.7518310549, 0.4796142579, 0.3292236329, 0.6851806642, 0.5145263673, 0.5155029298, 0.1085205078, 0.5098590852, 0.7607746126, 0.1259784699, 0.9794940951, 0.8593769075, 0.4248981477, 0.3231201173, 0.7991943361 },
+ { 0.4691162110, 0.3768310548, 0.0421142578, 0.8448486330, 0.0133056641, 0.2528076172, 0.3162841798, 0.7843017580, 0.3838825227, 0.1328449250, 0.7519550325, 0.0703144074, 0.2060565949, 0.5157184602, 0.6348876955, 0.2369384766 },
+ { 0.9691162112, 0.8768310549, 0.7921142580, 0.2198486329, 0.8883056643, 0.6903076173, 0.6287841798, 0.2218017579, 0.6026325227, 0.8515949251, 0.2207050324, 0.9140644076, 0.7998065950, 0.4844684602, 0.3692626954, 0.7525634767 },
+ { 0.7191162111, 0.1268310547, 0.3546142579, 0.9854736330, 0.1539306641, 0.3192138673, 0.2576904297, 0.8507080080, 0.4141559602, 0.1650714875, 0.7841815950, 0.1025409699, 0.2363300324, 0.5479450227, 0.6507568361, 0.2215576172 },
+ { 0.2191162110, 0.6268310548, 0.6046142580, 0.1104736328, 0.7789306642, 0.6317138673, 0.6951904298, 0.1632080079, 0.5704059602, 0.8213214876, 0.1904315949, 0.8837909701, 0.7675800325, 0.4541950227, 0.3538818360, 0.7684326174 },
+ { 0.1566162110, 0.3143310548, 0.4327392579, 0.1260986328, 0.6070556642, 0.1512451172, 0.0897216797, 0.6202392580, 0.3272418977, 0.1074543000, 0.9726581576, 0.2011737824, 0.1142597199, 0.6778278352, 0.7301025392, 0.1436767578 },
+ { 0.6566162111, 0.8143310549, 0.6827392580, 0.7510986330, 0.4820556642, 0.8387451174, 0.9022216799, 0.4327392579, 0.6709918977, 0.8887043001, 0.0039081573, 0.7949237825, 0.8955097201, 0.3340778352, 0.2769775391, 0.8468017580 },
+ { 0.9066162111, 0.0643310547, 0.2452392579, 0.0167236328, 0.7476806642, 0.2176513672, 0.0311279297, 0.5616455079, 0.3575153352, 0.0771808624, 0.9423847201, 0.2334003449, 0.0820331574, 0.6475543977, 0.7459716799, 0.1282958985 },
+ { 0.4066162110, 0.5643310548, 0.9952392580, 0.8917236330, 0.3726806641, 0.7801513674, 0.9686279299, 0.4991455079, 0.6387653352, 0.9209308626, 0.0361347199, 0.7646503450, 0.9257831576, 0.3663043977, 0.2615966797, 0.8626708986 },
+ { 0.2816162110, 0.1893310547, 0.5577392579, 0.4073486329, 0.9508056643, 0.0184326172, 0.1444091797, 0.6749267580, 0.2627887726, 0.0430011749, 0.9121112826, 0.1679706574, 0.0224628449, 0.7071247102, 0.6983642580, 0.1754150391 },
+ { 0.7816162111, 0.6893310548, 0.3077392579, 0.5323486329, 0.0758056641, 0.9559326174, 0.8319091799, 0.3624267579, 0.7315387728, 0.9492511751, 0.0683612824, 0.8242206575, 0.9912128451, 0.3008747102, 0.3077392579, 0.8160400393 },
+ { 0.5316162111, 0.4393310548, 0.8702392580, 0.2979736329, 0.8414306643, 0.0848388672, 0.2108154297, 0.7413330080, 0.2930622102, 0.0127277374, 0.8818378451, 0.1376972199, 0.0527362824, 0.7393512728, 0.7142333986, 0.1600341797 },
+ { 0.0316162109, 0.9393310549, 0.1202392578, 0.6729736330, 0.2164306641, 0.8973388674, 0.7733154299, 0.3038330079, 0.6993122102, 0.9814777377, 0.1005878449, 0.8564472200, 0.9589862826, 0.2706012726, 0.2923583985, 0.8319091799 },
+ { 0.0472412109, 0.2362060547, 0.4522705079, 0.1007080078, 0.0426025391, 0.7955322267, 0.4801025392, 0.7025146486, 0.6748981477, 0.7988605501, 0.2421894074, 0.6113300325, 0.5712909700, 0.1973590851, 0.7935791017, 0.3477783204 },
+ { 0.5472412111, 0.7362060549, 0.7022705080, 0.9757080080, 0.9176025393, 0.2330322266, 0.5426025392, 0.2650146485, 0.3311481477, 0.2051105500, 0.7734394075, 0.3925800324, 0.4150409699, 0.7911090853, 0.2154541016, 0.6446533205 },
+ { 0.7972412111, 0.4862060548, 0.1397705078, 0.2413330079, 0.1832275391, 0.8541259768, 0.4215087892, 0.6361083986, 0.6426715852, 0.7685871126, 0.2119159699, 0.5810565950, 0.6015644075, 0.2295856476, 0.8094482424, 0.3636474610 },
+ { 0.2972412110, 0.9862060549, 0.8897705080, 0.8663330080, 0.8082275393, 0.1666259766, 0.6090087892, 0.3236083985, 0.3614215852, 0.2373371125, 0.8056659700, 0.4248065949, 0.3828144074, 0.7608356478, 0.2000732422, 0.6292724611 },
+ { 0.4222412110, 0.3612060548, 0.5772705079, 0.3194580079, 0.3863525392, 0.9127197268, 0.2847900391, 0.5072021486, 0.7354450228, 0.8594074251, 0.1816425324, 0.5156269075, 0.5419940950, 0.1641559601, 0.7618408205, 0.3170166016 },
+ { 0.9222412112, 0.8612060549, 0.3272705079, 0.6944580080, 0.5113525392, 0.1002197266, 0.7222900392, 0.4447021485, 0.2666950226, 0.1406574250, 0.8378925325, 0.4843769075, 0.4482440950, 0.8204059603, 0.2462158204, 0.6763916017 },
+ { 0.6722412111, 0.1112060547, 0.7647705080, 0.4600830079, 0.2769775391, 0.9713134768, 0.3511962891, 0.5657958986, 0.7032184602, 0.8291339876, 0.1513690949, 0.5478534700, 0.5097675325, 0.1338825226, 0.7777099611, 0.3328857423 },
+ { 0.1722412110, 0.6112060548, 0.0147705078, 0.5850830079, 0.6519775392, 0.0338134766, 0.6636962892, 0.3782958985, 0.2969684602, 0.1728839875, 0.8701190951, 0.4541034700, 0.4785175325, 0.8526325228, 0.2308349610, 0.6610107423 },
+ { 0.2347412110, 0.4237060548, 0.9678955080, 0.6632080080, 0.9801025393, 0.5611572267, 0.0582275391, 0.8431396486, 0.5538043977, 0.8965168001, 0.0898456574, 0.6464862825, 0.6376972200, 0.0137653351, 0.8570556643, 0.2862548829 },
+ { 0.7347412111, 0.9237060549, 0.2178955079, 0.2882080079, 0.1051025391, 0.4986572267, 0.9957275393, 0.1556396485, 0.4600543977, 0.1152668000, 0.9335956576, 0.3652362824, 0.3564472199, 0.9825153353, 0.1539306641, 0.7081298830 },
+ { 0.9847412112, 0.1737060547, 0.6553955080, 0.5538330079, 0.8707275393, 0.6197509767, 0.1246337891, 0.7767333986, 0.5215778352, 0.9287433626, 0.1220722199, 0.6787128450, 0.6679706575, 0.0459918976, 0.8729248049, 0.3021240235 },
+ { 0.4847412111, 0.6737060548, 0.4053955079, 0.4288330079, 0.2457275391, 0.4322509767, 0.9371337893, 0.2142333985, 0.4903278352, 0.0849933624, 0.9033222201, 0.3349628449, 0.3242206574, 0.9522418978, 0.1385498047, 0.6927490236 },
+ { 0.3597412110, 0.0487060547, 0.0928955078, 0.8819580080, 0.5738525392, 0.6783447267, 0.2379150391, 0.8978271486, 0.6143512727, 0.9570636751, 0.0292987824, 0.7382831575, 0.7334003450, 0.1055622101, 0.8253173830, 0.2554931641 },
+ { 0.8597412111, 0.5487060548, 0.8428955080, 0.0069580078, 0.4488525392, 0.3658447266, 0.8004150392, 0.0853271485, 0.3956012727, 0.0508136749, 0.9980487826, 0.2695331574, 0.2646503449, 0.8868122103, 0.1846923829, 0.7398681642 },
+ { 0.6097412111, 0.2987060548, 0.2803955079, 0.7725830080, 0.7144775392, 0.7369384767, 0.1793212891, 0.9564208987, 0.5821247102, 0.9892902377, 0.0615253449, 0.7080097200, 0.7011737825, 0.0752887726, 0.8411865236, 0.2713623048 },
+ { 0.1097412110, 0.7987060549, 0.5303955079, 0.1475830078, 0.3394775391, 0.2994384766, 0.8668212893, 0.0189208984, 0.4258747102, 0.0205402374, 0.9677753451, 0.3017597199, 0.2949237824, 0.9190387728, 0.1693115235, 0.7244873049 },
+ { 0.0784912110, 0.2674560547, 0.2335205079, 0.4893798829, 0.7906494142, 0.3267822266, 0.5113525392, 0.4837646486, 0.9014606478, 0.6191730501, 0.3906269074, 0.9316425326, 0.9697284701, 0.3145465852, 0.9205322268, 0.4903564454 },
+ { 0.5784912111, 0.7674560549, 0.9835205080, 0.6143798830, 0.1656494141, 0.6392822267, 0.4488525392, 0.5462646486, 0.1202106476, 0.4004230500, 0.6093769075, 0.0878925324, 0.0009784698, 0.6582965852, 0.0924072266, 0.5059814454 },
+ { 0.8284912111, 0.0174560547, 0.4210205079, 0.3487548829, 0.9312744143, 0.2603759766, 0.5777587892, 0.4173583985, 0.9317340853, 0.5888996126, 0.4228534699, 0.9013690951, 0.9375019076, 0.3467731477, 0.9364013674, 0.4749755860 },
+ { 0.3284912110, 0.5174560548, 0.6710205080, 0.7237548830, 0.0562744141, 0.6978759767, 0.3902587892, 0.6048583986, 0.0879840851, 0.4326496125, 0.5791034700, 0.1201190949, 0.0312519074, 0.6280231477, 0.0770263672, 0.5218505861 },
+ { 0.4534912110, 0.1424560547, 0.8585205080, 0.2081298829, 0.6343994142, 0.4439697267, 0.6910400392, 0.2884521485, 0.9620075228, 0.5547199251, 0.4550800325, 0.9609394076, 0.8779315951, 0.2813434601, 0.8887939455, 0.4595947267 },
+ { 0.9534912112, 0.6424560548, 0.1085205078, 0.8331298830, 0.2593994141, 0.5064697267, 0.2535400391, 0.7259521486, 0.0557575226, 0.4609699250, 0.5488300325, 0.0546894074, 0.0966815949, 0.6875934602, 0.1231689453, 0.5377197267 },
+ { 0.7034912111, 0.3924560548, 0.5460205079, 0.0675048828, 0.5250244142, 0.3775634767, 0.6324462892, 0.3470458985, 0.9922809603, 0.5244464875, 0.4873065950, 0.9931659701, 0.9082050326, 0.2510700226, 0.9046630861, 0.4442138673 },
+ { 0.2034912110, 0.8924560549, 0.2960205079, 0.9425048830, 0.4000244142, 0.5650634767, 0.3199462891, 0.6595458986, 0.0235309601, 0.4931964875, 0.5185565950, 0.0244159699, 0.0644550324, 0.7198200228, 0.1077880860, 0.5535888673 },
+ { 0.1409912110, 0.0799560547, 0.7491455080, 0.8018798830, 0.2281494141, 0.0924072266, 0.9644775393, 0.1243896485, 0.7803668978, 0.7168293001, 0.3007831574, 0.8417987825, 0.7861347200, 0.3809528352, 0.9840087893, 0.4288330079 },
+ { 0.6409912111, 0.5799560548, 0.4991455079, 0.1768798829, 0.8531494143, 0.9049072268, 0.0269775391, 0.9368896487, 0.2491168976, 0.3105793000, 0.7070331575, 0.1855487824, 0.1923847199, 0.5997028352, 0.0308837891, 0.5694580079 },
+ { 0.8909912111, 0.3299560548, 0.9366455080, 0.9112548830, 0.1187744141, 0.0260009766, 0.9058837893, 0.0579833985, 0.8106403353, 0.7490558626, 0.2705097199, 0.8740253451, 0.7539081575, 0.4131793977, 0.9998779299, 0.4134521485 },
+ { 0.3909912110, 0.8299560549, 0.1866455079, 0.0362548828, 0.9937744143, 0.9635009768, 0.0933837891, 0.9954833987, 0.2168903351, 0.2803058625, 0.7392597200, 0.1552753449, 0.2226581574, 0.5694293977, 0.0155029297, 0.5853271486 },
+ { 0.2659912110, 0.4549560548, 0.3741455079, 0.5206298829, 0.3218994141, 0.2095947266, 0.7691650392, 0.1790771485, 0.8409137728, 0.6523761751, 0.3652362824, 0.8085956575, 0.8193378450, 0.4727497102, 0.9522705080, 0.3980712892 },
+ { 0.7659912111, 0.9549560549, 0.6241455080, 0.3956298829, 0.6968994142, 0.7720947267, 0.2066650391, 0.8665771486, 0.1846637726, 0.3711261750, 0.6464862825, 0.2148456574, 0.1630878449, 0.5039997102, 0.0616455078, 0.6011962892 },
+ { 0.5159912111, 0.2049560547, 0.0616455078, 0.6300048830, 0.4625244142, 0.1431884766, 0.8355712893, 0.2376708985, 0.8711872103, 0.6846027376, 0.3349628449, 0.7783222200, 0.8496112825, 0.4424762727, 0.9681396487, 0.3826904298 },
+ { 0.0159912109, 0.7049560549, 0.8116455080, 0.2550048829, 0.5875244142, 0.8306884768, 0.1480712891, 0.8001708986, 0.1524372101, 0.3408527375, 0.6787128450, 0.2470722199, 0.1308612824, 0.5362262727, 0.0462646484, 0.6170654298 },
+ { 0.0238037109, 0.1190185547, 0.0186767578, 0.1827392579, 0.9136962893, 0.5960693361, 0.2923583985, 0.1285400391, 0.0645160675, 0.2207050324, 0.8828449251, 0.6894855501, 0.9297199251, 0.4326801301, 0.0474853516, 0.5079345704 },
+ { 0.5238037111, 0.6190185548, 0.7686767580, 0.8077392580, 0.0386962891, 0.4085693360, 0.7298583986, 0.8160400393, 0.9082660677, 0.7519550325, 0.1015949250, 0.2832355500, 0.0859699249, 0.5889301301, 0.9381103518, 0.4923095704 },
+ { 0.7738037111, 0.3690185548, 0.3311767579, 0.0421142578, 0.8043212892, 0.5374755861, 0.3587646485, 0.1949462891, 0.0967426300, 0.1904315949, 0.9150714876, 0.7217121126, 0.8994464876, 0.4004535676, 0.0321044922, 0.5238037111 },
+ { 0.2738037110, 0.8690185549, 0.5811767579, 0.9171142580, 0.1793212891, 0.4749755860, 0.6712646486, 0.7574462892, 0.8779926302, 0.7841815950, 0.0713214874, 0.2529621125, 0.1181964875, 0.6192035676, 0.9539794924, 0.4769287110 },
+ { 0.3988037110, 0.4940185548, 0.8936767580, 0.4014892579, 0.5074462892, 0.7288818361, 0.4720458985, 0.0738525391, 0.0000629425, 0.1562519074, 0.9472980501, 0.6562824251, 0.9629230502, 0.4619770051, 0.0157470703, 0.5396728517 },
+ { 0.8988037111, 0.9940185549, 0.1436767578, 0.5264892579, 0.3824462892, 0.2913818360, 0.5345458986, 0.8863525393, 0.9688129427, 0.8125019075, 0.0410480499, 0.3125324250, 0.0566730499, 0.5557270051, 0.9688720705, 0.4615478517 },
+ { 0.6488037111, 0.2440185547, 0.7061767580, 0.2608642579, 0.6480712892, 0.6702880861, 0.4134521485, 0.0152587891, 0.0322895050, 0.1259784699, 0.9795246127, 0.6260089876, 0.9951496127, 0.4922504426, 0.0003662109, 0.5555419923 },
+ { 0.1488037110, 0.7440185549, 0.4561767579, 0.6358642580, 0.2730712891, 0.3577880860, 0.6009521486, 0.9527587893, 0.9385395052, 0.8447284700, 0.0107746124, 0.3447589875, 0.0263996124, 0.5235004426, 0.9847412112, 0.4461669923 },
+ { 0.2113037110, 0.3065185548, 0.5030517579, 0.6202392580, 0.1011962891, 0.8616943361, 0.2454833985, 0.2691650391, 0.1934223175, 0.0683612824, 0.7930011751, 0.5371418001, 0.8711261751, 0.3740863801, 0.1109619141, 0.5714111329 },
+ { 0.7113037111, 0.8065185549, 0.2530517579, 0.4952392579, 0.9761962893, 0.1741943360, 0.8079833986, 0.7066650392, 0.7871723177, 0.9121112826, 0.1992511750, 0.4433918000, 0.1523761750, 0.6553363802, 0.8765869143, 0.4307861329 },
+ { 0.9613037112, 0.0565185547, 0.8155517580, 0.7296142580, 0.2418212891, 0.8031005861, 0.1868896485, 0.3355712891, 0.2256488801, 0.1005878449, 0.7627277376, 0.5068683625, 0.8408527376, 0.3418598176, 0.0955810547, 0.5872802736 },
+ { 0.4613037110, 0.5565185548, 0.0655517578, 0.3546142579, 0.8668212893, 0.2406005860, 0.8743896486, 0.6480712892, 0.7568988802, 0.8818378451, 0.2314777375, 0.4756183625, 0.1846027375, 0.6856098177, 0.8924560549, 0.4154052735 },
+ { 0.3363037110, 0.1815185547, 0.3780517579, 0.8389892580, 0.4449462892, 0.9945068362, 0.0501708984, 0.4644775392, 0.1289691925, 0.0039081573, 0.8574543001, 0.5664386751, 0.7793293001, 0.2783832551, 0.0792236328, 0.6031494142 },
+ { 0.8363037111, 0.6815185548, 0.6280517580, 0.2139892579, 0.5699462892, 0.0570068360, 0.9876708987, 0.5269775392, 0.8477191927, 0.9726581576, 0.1387043000, 0.4101886750, 0.2480793000, 0.7471332552, 0.9073486330, 0.4000244142 },
+ { 0.5863037111, 0.4315185548, 0.1905517579, 0.9483642580, 0.3355712891, 0.9359130862, 0.1165771485, 0.4058837892, 0.1611957550, 0.0361347199, 0.8271808626, 0.5986652376, 0.8115558626, 0.3086566926, 0.0638427735, 0.6190185548 },
+ { 0.0863037110, 0.9315185549, 0.9405517580, 0.0733642578, 0.7105712892, 0.1234130860, 0.9290771487, 0.5933837892, 0.8174457552, 0.9423847201, 0.1709308625, 0.3799152375, 0.2178058625, 0.7149066927, 0.9232177737, 0.3846435548 },
+ { 0.1175537110, 0.4002685548, 0.2999267579, 0.2901611329, 0.1617431641, 0.0023193359, 0.6986083986, 0.9097900393, 0.3535785676, 0.4160175324, 0.7187824251, 0.7597980501, 0.5156574250, 0.0498676300, 0.1744384766, 0.6505126955 },
+ { 0.6175537111, 0.9002685549, 0.5499267579, 0.6651611330, 0.7867431642, 0.9398193362, 0.2611083985, 0.0972900391, 0.6348285677, 0.5722675325, 0.2500324250, 0.2285480500, 0.4844074250, 0.9561176302, 0.8150634768, 0.3536376954 },
+ { 0.8675537111, 0.1502685547, 0.1124267578, 0.4307861329, 0.0523681641, 0.0687255860, 0.6400146486, 0.9761962893, 0.3233051301, 0.3857440949, 0.6885089876, 0.7920246126, 0.5478839876, 0.0176410675, 0.1590576172, 0.6351318361 },
+ { 0.3675537110, 0.6502685548, 0.8624267580, 0.5557861329, 0.9273681643, 0.8812255861, 0.3275146485, 0.0386962891, 0.6670551302, 0.6044940950, 0.2822589875, 0.1982746125, 0.4541339875, 0.9863910677, 0.8309326174, 0.3695068360 },
+ { 0.4925537111, 0.0252685547, 0.6749267580, 0.0089111328, 0.2554931641, 0.1351318360, 0.5032958986, 0.8551025393, 0.2891254426, 0.4765644075, 0.6582355501, 0.8515949251, 0.6113605501, 0.0791645050, 0.1427001953, 0.6822509767 },
+ { 0.9925537112, 0.5252685548, 0.4249267579, 0.8839111330, 0.6304931642, 0.8226318361, 0.4407958985, 0.1676025391, 0.6953754427, 0.5078144075, 0.3144855500, 0.1328449250, 0.3926105500, 0.9229145052, 0.8458251955, 0.3228759766 },
+ { 0.7425537111, 0.2752685548, 0.9874267580, 0.1495361328, 0.3961181642, 0.2015380860, 0.5697021486, 0.7965087892, 0.2588520051, 0.4462909700, 0.6279621126, 0.8213214876, 0.5810871126, 0.1094379425, 0.1273193360, 0.6668701173 },
+ { 0.2425537110, 0.7752685549, 0.2374267579, 0.7745361330, 0.5211181642, 0.7640380861, 0.3822021485, 0.2340087891, 0.7276020052, 0.5400409700, 0.3467121125, 0.1650714875, 0.4248371125, 0.8906879427, 0.8616943361, 0.3387451173 },
+ { 0.1800537110, 0.2127685547, 0.7843017580, 0.9776611330, 0.8492431643, 0.2679443360, 0.7767333986, 0.5504150392, 0.4824848176, 0.2636737824, 0.5664386751, 0.9824543002, 0.7070636751, 0.2412738801, 0.2379150391, 0.7139892580 },
+ { 0.6800537111, 0.7127685549, 0.0343017578, 0.1026611328, 0.2242431641, 0.7054443361, 0.2142333985, 0.4879150392, 0.5137348176, 0.7324237825, 0.4101886750, 0.0137042999, 0.3008136750, 0.7725238802, 0.7535400392, 0.2921142579 },
+ { 0.9300537112, 0.4627685548, 0.5968017580, 0.8682861330, 0.9898681643, 0.3343505860, 0.8431396486, 0.6168212892, 0.4522113801, 0.2959003449, 0.5986652376, 0.9521808626, 0.7392902376, 0.2090473176, 0.2225341797, 0.6986083986 },
+ { 0.4300537110, 0.9627685549, 0.3468017579, 0.2432861329, 0.1148681641, 0.6468505861, 0.1556396485, 0.4293212892, 0.5459613801, 0.7021503450, 0.3799152375, 0.0459308624, 0.2705402375, 0.8027973177, 0.7694091799, 0.3079833985 },
+ { 0.3050537110, 0.3377685548, 0.1593017578, 0.6964111330, 0.6929931642, 0.4007568360, 0.9564208987, 0.7457275392, 0.4180316926, 0.3242206574, 0.5058918000, 0.8867511751, 0.6777668001, 0.1455707550, 0.2061767579, 0.7457275392 },
+ { 0.8050537111, 0.8377685549, 0.9093017580, 0.3214111329, 0.3179931641, 0.5882568361, 0.0189208984, 0.3082275391, 0.5742816926, 0.6679706575, 0.4746418000, 0.1055011750, 0.3340168000, 0.8643207552, 0.7843017580, 0.2613525391 },
+ { 0.5550537111, 0.0877685547, 0.4718017579, 0.5870361329, 0.5836181642, 0.4671630860, 0.8978271486, 0.6871337892, 0.3877582551, 0.3564472199, 0.5381183626, 0.9189777376, 0.6474933626, 0.1758441925, 0.1907958985, 0.7303466799 },
+ { 0.0550537110, 0.5877685548, 0.7218017580, 0.4620361329, 0.4586181642, 0.5296630861, 0.0853271485, 0.3746337891, 0.6065082551, 0.6376972200, 0.4443683625, 0.0752277374, 0.3662433625, 0.8320941927, 0.8001708986, 0.2772216798 },
+ { 0.0394287109, 0.3533935548, 0.8350830080, 0.7647705080, 0.2847900391, 0.6622314455, 0.6671142580, 0.6326904298, 0.5176410676, 0.5800800325, 0.3359699250, 0.3301105500, 0.2265949250, 0.6358051302, 0.3013916016, 0.7930908205 },
+ { 0.5394287111, 0.8533935549, 0.0850830078, 0.1397705078, 0.6597900392, 0.3497314454, 0.3546142579, 0.3201904298, 0.4863910676, 0.4238300324, 0.6797199251, 0.6738605501, 0.7578449251, 0.3545551301, 0.6920166017, 0.2149658204 },
+ { 0.7894287111, 0.1033935547, 0.5225830079, 0.9053955080, 0.4254150392, 0.7208251955, 0.7335205080, 0.6912841798, 0.5498676301, 0.6123065950, 0.3681964875, 0.3623371125, 0.1963214875, 0.6660785677, 0.2860107423, 0.8089599611 },
+ { 0.2894287110, 0.6033935548, 0.2725830079, 0.0303955078, 0.5504150392, 0.2833251954, 0.2960205079, 0.2537841797, 0.4561176301, 0.3935565949, 0.6494464876, 0.6435871126, 0.7900714876, 0.3223285676, 0.7078857424, 0.1995849610 }
+};
+
+
+QRNG_VALIDATION_TEST_FUNCTIONS(niederreiter_base2)
+
+
+BOOST_AUTO_TEST_CASE( validate_niederreiter_base2 )
+{
+ test_niederreiter_base2_values(niederreiter_base2_02_100, 4096);
+ test_niederreiter_base2_values(niederreiter_base2_07_100, 4096);
+ test_niederreiter_base2_values(niederreiter_base2_16_100, 4096);
+}
+
+BOOST_AUTO_TEST_CASE( validate_niederreiter_base2_seed )
+{
+ test_niederreiter_base2_seed(niederreiter_base2_02_100, 4096);
+ test_niederreiter_base2_seed(niederreiter_base2_07_100, 4096);
+ test_niederreiter_base2_seed(niederreiter_base2_16_100, 4096);
+}
+
+BOOST_AUTO_TEST_CASE( validate_niederreiter_base2_discard )
+{
+ test_niederreiter_base2_discard(niederreiter_base2_02_100, 4096);
+ test_niederreiter_base2_discard(niederreiter_base2_07_100, 4096);
+ test_niederreiter_base2_discard(niederreiter_base2_16_100, 4096);
+}

Added: sandbox/SOC/2010/quasi_random/libs/random/test/sobol_validate.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/quasi_random/libs/random/test/sobol_validate.cpp 2010-07-23 08:30:02 EDT (Fri, 23 Jul 2010)
@@ -0,0 +1,371 @@
+// Copyright Justinas Vygintas Daugmaudis, 2010.
+// Use, modification and distribution is subject to the
+// Boost Software License, Version 1.0. (See accompanying
+// file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+
+#include <boost/random/sobol.hpp>
+
+#include <boost/utility.hpp>
+
+#define BOOST_TEST_MAIN
+#include <boost/test/unit_test.hpp>
+
+#include "test_qrng_functions.hpp"
+
+
+//
+// DESCRIPTION:
+// ~~~~~~~~~~~~
+//
+// This file tests the sobol quasi-random number generator.
+// These tests compare our results with values produced by the original
+// version of ACM TOMS Algorithm 659, which is available in the
+// TOMS subdirectory in http://www.netlib.org
+//
+// For independently generated datasets look at http://people.sc.fsu.edu/~jburkardt/datasets/sobol/
+
+
+// Spatial dimension: 2
+// N: 100
+// Vectors skipped: 0
+double sobol_02_100[100][2] =
+{
+ { 0.0000000000, 0.0000000000 },
+ { 0.5000000002, 0.5000000002 },
+ { 0.7500000003, 0.2500000001 },
+ { 0.2500000001, 0.7500000003 },
+ { 0.3750000002, 0.3750000002 },
+ { 0.8750000004, 0.8750000004 },
+ { 0.6250000003, 0.1250000001 },
+ { 0.1250000001, 0.6250000003 },
+ { 0.1875000001, 0.3125000001 },
+ { 0.6875000003, 0.8125000004 },
+ { 0.9375000004, 0.0625000000 },
+ { 0.4375000002, 0.5625000003 },
+ { 0.3125000001, 0.1875000001 },
+ { 0.8125000004, 0.6875000003 },
+ { 0.5625000003, 0.4375000002 },
+ { 0.0625000000, 0.9375000004 },
+ { 0.0937500000, 0.4687500002 },
+ { 0.5937500003, 0.9687500005 },
+ { 0.8437500004, 0.2187500001 },
+ { 0.3437500002, 0.7187500003 },
+ { 0.4687500002, 0.0937500000 },
+ { 0.9687500005, 0.5937500003 },
+ { 0.7187500003, 0.3437500002 },
+ { 0.2187500001, 0.8437500004 },
+ { 0.1562500001, 0.1562500001 },
+ { 0.6562500003, 0.6562500003 },
+ { 0.9062500004, 0.4062500002 },
+ { 0.4062500002, 0.9062500004 },
+ { 0.2812500001, 0.2812500001 },
+ { 0.7812500004, 0.7812500004 },
+ { 0.5312500002, 0.0312500000 },
+ { 0.0312500000, 0.5312500002 },
+ { 0.0468750000, 0.2656250001 },
+ { 0.5468750003, 0.7656250004 },
+ { 0.7968750004, 0.0156250000 },
+ { 0.2968750001, 0.5156250002 },
+ { 0.4218750002, 0.1406250001 },
+ { 0.9218750004, 0.6406250003 },
+ { 0.6718750003, 0.3906250002 },
+ { 0.1718750001, 0.8906250004 },
+ { 0.2343750001, 0.0781250000 },
+ { 0.7343750003, 0.5781250003 },
+ { 0.9843750005, 0.3281250002 },
+ { 0.4843750002, 0.8281250004 },
+ { 0.3593750002, 0.4531250002 },
+ { 0.8593750004, 0.9531250004 },
+ { 0.6093750003, 0.2031250001 },
+ { 0.1093750001, 0.7031250003 },
+ { 0.0781250000, 0.2343750001 },
+ { 0.5781250003, 0.7343750003 },
+ { 0.8281250004, 0.4843750002 },
+ { 0.3281250002, 0.9843750005 },
+ { 0.4531250002, 0.3593750002 },
+ { 0.9531250004, 0.8593750004 },
+ { 0.7031250003, 0.1093750001 },
+ { 0.2031250001, 0.6093750003 },
+ { 0.1406250001, 0.4218750002 },
+ { 0.6406250003, 0.9218750004 },
+ { 0.8906250004, 0.1718750001 },
+ { 0.3906250002, 0.6718750003 },
+ { 0.2656250001, 0.0468750000 },
+ { 0.7656250004, 0.5468750003 },
+ { 0.5156250002, 0.2968750001 },
+ { 0.0156250000, 0.7968750004 },
+ { 0.0234375000, 0.3984375002 },
+ { 0.5234375002, 0.8984375004 },
+ { 0.7734375004, 0.1484375001 },
+ { 0.2734375001, 0.6484375003 },
+ { 0.3984375002, 0.0234375000 },
+ { 0.8984375004, 0.5234375002 },
+ { 0.6484375003, 0.2734375001 },
+ { 0.1484375001, 0.7734375004 },
+ { 0.2109375001, 0.2109375001 },
+ { 0.7109375003, 0.7109375003 },
+ { 0.9609375004, 0.4609375002 },
+ { 0.4609375002, 0.9609375004 },
+ { 0.3359375002, 0.3359375002 },
+ { 0.8359375004, 0.8359375004 },
+ { 0.5859375003, 0.0859375000 },
+ { 0.0859375000, 0.5859375003 },
+ { 0.1171875001, 0.1171875001 },
+ { 0.6171875003, 0.6171875003 },
+ { 0.8671875004, 0.3671875002 },
+ { 0.3671875002, 0.8671875004 },
+ { 0.4921875002, 0.4921875002 },
+ { 0.9921875005, 0.9921875005 },
+ { 0.7421875003, 0.2421875001 },
+ { 0.2421875001, 0.7421875003 },
+ { 0.1796875001, 0.3046875001 },
+ { 0.6796875003, 0.8046875004 },
+ { 0.9296875004, 0.0546875000 },
+ { 0.4296875002, 0.5546875003 },
+ { 0.3046875001, 0.1796875001 },
+ { 0.8046875004, 0.6796875003 },
+ { 0.5546875003, 0.4296875002 },
+ { 0.0546875000, 0.9296875004 },
+ { 0.0390625000, 0.1328125001 },
+ { 0.5390625003, 0.6328125003 },
+ { 0.7890625004, 0.3828125002 },
+ { 0.2890625001, 0.8828125004 }
+};
+
+// Spatial dimension: 7
+// N: 100
+// Vectors skipped: 128
+double sobol_07_100[100][7] =
+{
+ { 0.0117187500, 0.3320312502, 0.7851562504, 0.9414062504, 0.4648437502, 0.4179687502, 0.4648437502 },
+ { 0.5117187502, 0.8320312504, 0.2851562501, 0.4414062502, 0.9648437504, 0.9179687504, 0.9648437504 },
+ { 0.7617187504, 0.0820312500, 0.0351562500, 0.6914062503, 0.7148437503, 0.1679687501, 0.7148437503 },
+ { 0.2617187501, 0.5820312503, 0.5351562502, 0.1914062501, 0.2148437501, 0.6679687503, 0.2148437501 },
+ { 0.3867187502, 0.2070312501, 0.4101562502, 0.8164062504, 0.5898437503, 0.5429687503, 0.3398437502 },
+ { 0.8867187504, 0.7070312503, 0.9101562504, 0.3164062501, 0.0898437500, 0.0429687500, 0.8398437504 },
+ { 0.6367187503, 0.4570312502, 0.6601562503, 0.5664062503, 0.3398437502, 0.7929687504, 0.5898437503 },
+ { 0.1367187501, 0.9570312504, 0.1601562501, 0.0664062500, 0.8398437504, 0.2929687501, 0.0898437500 },
+ { 0.1992187501, 0.0195312500, 0.5976562503, 0.2539062501, 0.9023437504, 0.3554687502, 0.4023437502 },
+ { 0.6992187503, 0.5195312502, 0.0976562500, 0.7539062504, 0.4023437502, 0.8554687504, 0.9023437504 },
+ { 0.9492187504, 0.2695312501, 0.3476562502, 0.0039062500, 0.1523437501, 0.1054687500, 0.6523437503 },
+ { 0.4492187502, 0.7695312504, 0.8476562504, 0.5039062502, 0.6523437503, 0.6054687503, 0.1523437501 },
+ { 0.3242187502, 0.3945312502, 0.2226562501, 0.3789062502, 0.0273437500, 0.7304687503, 0.2773437501 },
+ { 0.8242187504, 0.8945312504, 0.7226562503, 0.8789062504, 0.5273437502, 0.2304687501, 0.7773437504 },
+ { 0.5742187503, 0.1445312501, 0.9726562505, 0.1289062501, 0.7773437504, 0.9804687505, 0.5273437502 },
+ { 0.0742187500, 0.6445312503, 0.4726562502, 0.6289062503, 0.2773437501, 0.4804687502, 0.0273437500 },
+ { 0.1054687500, 0.1757812501, 0.0664062500, 0.5976562503, 0.2460937501, 0.1992187501, 0.9960937505 },
+ { 0.6054687503, 0.6757812503, 0.5664062503, 0.0976562500, 0.7460937503, 0.6992187503, 0.4960937502 },
+ { 0.8554687504, 0.4257812502, 0.8164062504, 0.8476562504, 0.9960937505, 0.4492187502, 0.2460937501 },
+ { 0.3554687502, 0.9257812504, 0.3164062501, 0.3476562502, 0.4960937502, 0.9492187504, 0.7460937503 },
+ { 0.4804687502, 0.3007812501, 0.6914062503, 0.7226562503, 0.8710937504, 0.8242187504, 0.8710937504 },
+ { 0.9804687505, 0.8007812504, 0.1914062501, 0.2226562501, 0.3710937502, 0.3242187502, 0.3710937502 },
+ { 0.7304687503, 0.0507812500, 0.4414062502, 0.9726562505, 0.1210937501, 0.5742187503, 0.1210937501 },
+ { 0.2304687501, 0.5507812503, 0.9414062504, 0.4726562502, 0.6210937503, 0.0742187500, 0.6210937503 },
+ { 0.1679687501, 0.4882812502, 0.2539062501, 0.1601562501, 0.6835937503, 0.0117187500, 0.9335937504 },
+ { 0.6679687503, 0.9882812505, 0.7539062504, 0.6601562503, 0.1835937501, 0.5117187502, 0.4335937502 },
+ { 0.9179687504, 0.2382812501, 0.5039062502, 0.4101562502, 0.4335937502, 0.2617187501, 0.1835937501 },
+ { 0.4179687502, 0.7382812503, 0.0039062500, 0.9101562504, 0.9335937504, 0.7617187504, 0.6835937503 },
+ { 0.2929687501, 0.1132812501, 0.8789062504, 0.0351562500, 0.3085937501, 0.8867187504, 0.8085937504 },
+ { 0.7929687504, 0.6132812503, 0.3789062502, 0.5351562502, 0.8085937504, 0.3867187502, 0.3085937501 },
+ { 0.5429687503, 0.3632812502, 0.1289062501, 0.2851562501, 0.5585937503, 0.6367187503, 0.0585937500 },
+ { 0.0429687500, 0.8632812504, 0.6289062503, 0.7851562504, 0.0585937500, 0.1367187501, 0.5585937503 },
+ { 0.0585937500, 0.0664062500, 0.3320312502, 0.3945312502, 0.7617187504, 0.8085937504, 0.1992187501 },
+ { 0.5585937503, 0.5664062503, 0.8320312504, 0.8945312504, 0.2617187501, 0.3085937501, 0.6992187503 },
+ { 0.8085937504, 0.3164062501, 0.5820312503, 0.1445312501, 0.0117187500, 0.5585937503, 0.9492187504 },
+ { 0.3085937501, 0.8164062504, 0.0820312500, 0.6445312503, 0.5117187502, 0.0585937500, 0.4492187502 },
+ { 0.4335937502, 0.4414062502, 0.9570312504, 0.2695312501, 0.1367187501, 0.1835937501, 0.0742187500 },
+ { 0.9335937504, 0.9414062504, 0.4570312502, 0.7695312504, 0.6367187503, 0.6835937503, 0.5742187503 },
+ { 0.6835937503, 0.1914062501, 0.2070312501, 0.0195312500, 0.8867187504, 0.4335937502, 0.8242187504 },
+ { 0.1835937501, 0.6914062503, 0.7070312503, 0.5195312502, 0.3867187502, 0.9335937504, 0.3242187502 },
+ { 0.2460937501, 0.2539062501, 0.0195312500, 0.8320312504, 0.3242187502, 0.9960937505, 0.1367187501 },
+ { 0.7460937503, 0.7539062504, 0.5195312502, 0.3320312502, 0.8242187504, 0.4960937502, 0.6367187503 },
+ { 0.9960937505, 0.0039062500, 0.7695312504, 0.5820312503, 0.5742187503, 0.7460937503, 0.8867187504 },
+ { 0.4960937502, 0.5039062502, 0.2695312501, 0.0820312500, 0.0742187500, 0.2460937501, 0.3867187502 },
+ { 0.3710937502, 0.1289062501, 0.6445312503, 0.9570312504, 0.6992187503, 0.1210937501, 0.0117187500 },
+ { 0.8710937504, 0.6289062503, 0.1445312501, 0.4570312502, 0.1992187501, 0.6210937503, 0.5117187502 },
+ { 0.6210937503, 0.3789062502, 0.3945312502, 0.7070312503, 0.4492187502, 0.3710937502, 0.7617187504 },
+ { 0.1210937501, 0.8789062504, 0.8945312504, 0.2070312501, 0.9492187504, 0.8710937504, 0.2617187501 },
+ { 0.0898437500, 0.4101562502, 0.5507812503, 0.0507812500, 0.5429687503, 0.5898437503, 0.7304687503 },
+ { 0.5898437503, 0.9101562504, 0.0507812500, 0.5507812503, 0.0429687500, 0.0898437500, 0.2304687501 },
+ { 0.8398437504, 0.1601562501, 0.3007812501, 0.3007812501, 0.2929687501, 0.8398437504, 0.4804687502 },
+ { 0.3398437502, 0.6601562503, 0.8007812504, 0.8007812504, 0.7929687504, 0.3398437502, 0.9804687505 },
+ { 0.4648437502, 0.0351562500, 0.1757812501, 0.1757812501, 0.4179687502, 0.4648437502, 0.6054687503 },
+ { 0.9648437504, 0.5351562502, 0.6757812503, 0.6757812503, 0.9179687504, 0.9648437504, 0.1054687500 },
+ { 0.7148437503, 0.2851562501, 0.9257812504, 0.4257812502, 0.6679687503, 0.2148437501, 0.3554687502 },
+ { 0.2148437501, 0.7851562504, 0.4257812502, 0.9257812504, 0.1679687501, 0.7148437503, 0.8554687504 },
+ { 0.1523437501, 0.2226562501, 0.8632812504, 0.7382812503, 0.1054687500, 0.6523437503, 0.6679687503 },
+ { 0.6523437503, 0.7226562503, 0.3632812502, 0.2382812501, 0.6054687503, 0.1523437501, 0.1679687501 },
+ { 0.9023437504, 0.4726562502, 0.1132812501, 0.9882812505, 0.8554687504, 0.9023437504, 0.4179687502 },
+ { 0.4023437502, 0.9726562505, 0.6132812503, 0.4882812502, 0.3554687502, 0.4023437502, 0.9179687504 },
+ { 0.2773437501, 0.3476562502, 0.4882812502, 0.6132812503, 0.9804687505, 0.2773437501, 0.5429687503 },
+ { 0.7773437504, 0.8476562504, 0.9882812505, 0.1132812501, 0.4804687502, 0.7773437504, 0.0429687500 },
+ { 0.5273437502, 0.0976562500, 0.7382812503, 0.8632812504, 0.2304687501, 0.0273437500, 0.2929687501 },
+ { 0.0273437500, 0.5976562503, 0.2382812501, 0.3632812502, 0.7304687503, 0.5273437502, 0.7929687504 },
+ { 0.0195312500, 0.1992187501, 0.7304687503, 0.2460937501, 0.2539062501, 0.7070312503, 0.0664062500 },
+ { 0.5195312502, 0.6992187503, 0.2304687501, 0.7460937503, 0.7539062504, 0.2070312501, 0.5664062503 },
+ { 0.7695312504, 0.4492187502, 0.4804687502, 0.4960937502, 0.5039062502, 0.9570312504, 0.8164062504 },
+ { 0.2695312501, 0.9492187504, 0.9804687505, 0.9960937505, 0.0039062500, 0.4570312502, 0.3164062501 },
+ { 0.3945312502, 0.3242187502, 0.1054687500, 0.1210937501, 0.6289062503, 0.3320312502, 0.1914062501 },
+ { 0.8945312504, 0.8242187504, 0.6054687503, 0.6210937503, 0.1289062501, 0.8320312504, 0.6914062503 },
+ { 0.6445312503, 0.0742187500, 0.8554687504, 0.3710937502, 0.3789062502, 0.0820312500, 0.9414062504 },
+ { 0.1445312501, 0.5742187503, 0.3554687502, 0.8710937504, 0.8789062504, 0.5820312503, 0.4414062502 },
+ { 0.2070312501, 0.3867187502, 0.9179687504, 0.5585937503, 0.8164062504, 0.5195312502, 0.0039062500 },
+ { 0.7070312503, 0.8867187504, 0.4179687502, 0.0585937500, 0.3164062501, 0.0195312500, 0.5039062502 },
+ { 0.9570312504, 0.1367187501, 0.1679687501, 0.8085937504, 0.0664062500, 0.7695312504, 0.7539062504 },
+ { 0.4570312502, 0.6367187503, 0.6679687503, 0.3085937501, 0.5664062503, 0.2695312501, 0.2539062501 },
+ { 0.3320312502, 0.0117187500, 0.2929687501, 0.6835937503, 0.1914062501, 0.3945312502, 0.1289062501 },
+ { 0.8320312504, 0.5117187502, 0.7929687504, 0.1835937501, 0.6914062503, 0.8945312504, 0.6289062503 },
+ { 0.5820312503, 0.2617187501, 0.5429687503, 0.9335937504, 0.9414062504, 0.1445312501, 0.8789062504 },
+ { 0.0820312500, 0.7617187504, 0.0429687500, 0.4335937502, 0.4414062502, 0.6445312503, 0.3789062502 },
+ { 0.1132812501, 0.2929687501, 0.3867187502, 0.3398437502, 0.0351562500, 0.9257812504, 0.5976562503 },
+ { 0.6132812503, 0.7929687504, 0.8867187504, 0.8398437504, 0.5351562502, 0.4257812502, 0.0976562500 },
+ { 0.8632812504, 0.0429687500, 0.6367187503, 0.0898437500, 0.7851562504, 0.6757812503, 0.3476562502 },
+ { 0.3632812502, 0.5429687503, 0.1367187501, 0.5898437503, 0.2851562501, 0.1757812501, 0.8476562504 },
+ { 0.4882812502, 0.1679687501, 0.7617187504, 0.4648437502, 0.9101562504, 0.0507812500, 0.7226562503 },
+ { 0.9882812505, 0.6679687503, 0.2617187501, 0.9648437504, 0.4101562502, 0.5507812503, 0.2226562501 },
+ { 0.7382812503, 0.4179687502, 0.0117187500, 0.2148437501, 0.1601562501, 0.3007812501, 0.4726562502 },
+ { 0.2382812501, 0.9179687504, 0.5117187502, 0.7148437503, 0.6601562503, 0.8007812504, 0.9726562505 },
+ { 0.1757812501, 0.1054687500, 0.1992187501, 0.9023437504, 0.5976562503, 0.8632812504, 0.5351562502 },
+ { 0.6757812503, 0.6054687503, 0.6992187503, 0.4023437502, 0.0976562500, 0.3632812502, 0.0351562500 },
+ { 0.9257812504, 0.3554687502, 0.9492187504, 0.6523437503, 0.3476562502, 0.6132812503, 0.2851562501 },
+ { 0.4257812502, 0.8554687504, 0.4492187502, 0.1523437501, 0.8476562504, 0.1132812501, 0.7851562504 },
+ { 0.3007812501, 0.4804687502, 0.5742187503, 0.7773437504, 0.4726562502, 0.2382812501, 0.6601562503 },
+ { 0.8007812504, 0.9804687505, 0.0742187500, 0.2773437501, 0.9726562505, 0.7382812503, 0.1601562501 },
+ { 0.5507812503, 0.2304687501, 0.3242187502, 0.5273437502, 0.7226562503, 0.4882812502, 0.4101562502 },
+ { 0.0507812500, 0.7304687503, 0.8242187504, 0.0273437500, 0.2226562501, 0.9882812505, 0.9101562504 },
+ { 0.0351562500, 0.4648437502, 0.1523437501, 0.6679687503, 0.9570312504, 0.0664062500, 0.3320312502 },
+ { 0.5351562502, 0.9648437504, 0.6523437503, 0.1679687501, 0.4570312502, 0.5664062503, 0.8320312504 },
+ { 0.7851562504, 0.2148437501, 0.9023437504, 0.9179687504, 0.2070312501, 0.3164062501, 0.5820312503 },
+ { 0.2851562501, 0.7148437503, 0.4023437502, 0.4179687502, 0.7070312503, 0.8164062504, 0.0820312500 }
+};
+
+// Spatial dimension: 16
+// N: 100
+// Vectors skipped: 128
+double sobol_16_100[100][16] =
+{
+ { 0.0117187500, 0.3320312502, 0.7851562504, 0.9414062504, 0.4648437502, 0.4179687502, 0.4648437502, 0.4882812502, 0.7304687503, 0.5742187503, 0.5664062503, 0.2460937501, 0.4882812502, 0.6367187503, 0.7617187504, 0.1835937501 },
+ { 0.5117187502, 0.8320312504, 0.2851562501, 0.4414062502, 0.9648437504, 0.9179687504, 0.9648437504, 0.9882812505, 0.2304687501, 0.0742187500, 0.0664062500, 0.7460937503, 0.9882812505, 0.1367187501, 0.2617187501, 0.6835937503 },
+ { 0.7617187504, 0.0820312500, 0.0351562500, 0.6914062503, 0.7148437503, 0.1679687501, 0.7148437503, 0.2382812501, 0.9804687505, 0.3242187502, 0.8164062504, 0.9960937505, 0.2382812501, 0.3867187502, 0.5117187502, 0.9335937504 },
+ { 0.2617187501, 0.5820312503, 0.5351562502, 0.1914062501, 0.2148437501, 0.6679687503, 0.2148437501, 0.7382812503, 0.4804687502, 0.8242187504, 0.3164062501, 0.4960937502, 0.7382812503, 0.8867187504, 0.0117187500, 0.4335937502 },
+ { 0.3867187502, 0.2070312501, 0.4101562502, 0.8164062504, 0.5898437503, 0.5429687503, 0.3398437502, 0.8632812504, 0.6054687503, 0.4492187502, 0.9414062504, 0.6210937503, 0.3632812502, 0.7617187504, 0.3867187502, 0.0585937500 },
+ { 0.8867187504, 0.7070312503, 0.9101562504, 0.3164062501, 0.0898437500, 0.0429687500, 0.8398437504, 0.3632812502, 0.1054687500, 0.9492187504, 0.4414062502, 0.1210937501, 0.8632812504, 0.2617187501, 0.8867187504, 0.5585937503 },
+ { 0.6367187503, 0.4570312502, 0.6601562503, 0.5664062503, 0.3398437502, 0.7929687504, 0.5898437503, 0.6132812503, 0.8554687504, 0.6992187503, 0.6914062503, 0.3710937502, 0.1132812501, 0.0117187500, 0.1367187501, 0.8085937504 },
+ { 0.1367187501, 0.9570312504, 0.1601562501, 0.0664062500, 0.8398437504, 0.2929687501, 0.0898437500, 0.1132812501, 0.3554687502, 0.1992187501, 0.1914062501, 0.8710937504, 0.6132812503, 0.5117187502, 0.6367187503, 0.3085937501 },
+ { 0.1992187501, 0.0195312500, 0.5976562503, 0.2539062501, 0.9023437504, 0.3554687502, 0.4023437502, 0.5507812503, 0.5429687503, 0.5117187502, 0.1289062501, 0.9335937504, 0.9257812504, 0.0742187500, 0.9492187504, 0.6210937503 },
+ { 0.6992187503, 0.5195312502, 0.0976562500, 0.7539062504, 0.4023437502, 0.8554687504, 0.9023437504, 0.0507812500, 0.0429687500, 0.0117187500, 0.6289062503, 0.4335937502, 0.4257812502, 0.5742187503, 0.4492187502, 0.1210937501 },
+ { 0.9492187504, 0.2695312501, 0.3476562502, 0.0039062500, 0.1523437501, 0.1054687500, 0.6523437503, 0.8007812504, 0.7929687504, 0.2617187501, 0.3789062502, 0.1835937501, 0.6757812503, 0.8242187504, 0.6992187503, 0.3710937502 },
+ { 0.4492187502, 0.7695312504, 0.8476562504, 0.5039062502, 0.6523437503, 0.6054687503, 0.1523437501, 0.3007812501, 0.2929687501, 0.7617187504, 0.8789062504, 0.6835937503, 0.1757812501, 0.3242187502, 0.1992187501, 0.8710937504 },
+ { 0.3242187502, 0.3945312502, 0.2226562501, 0.3789062502, 0.0273437500, 0.7304687503, 0.2773437501, 0.1757812501, 0.6679687503, 0.3867187502, 0.2539062501, 0.3085937501, 0.8007812504, 0.4492187502, 0.3242187502, 0.7460937503 },
+ { 0.8242187504, 0.8945312504, 0.7226562503, 0.8789062504, 0.5273437502, 0.2304687501, 0.7773437504, 0.6757812503, 0.1679687501, 0.8867187504, 0.7539062504, 0.8085937504, 0.3007812501, 0.9492187504, 0.8242187504, 0.2460937501 },
+ { 0.5742187503, 0.1445312501, 0.9726562505, 0.1289062501, 0.7773437504, 0.9804687505, 0.5273437502, 0.4257812502, 0.9179687504, 0.6367187503, 0.0039062500, 0.5585937503, 0.5507812503, 0.6992187503, 0.0742187500, 0.4960937502 },
+ { 0.0742187500, 0.6445312503, 0.4726562502, 0.6289062503, 0.2773437501, 0.4804687502, 0.0273437500, 0.9257812504, 0.4179687502, 0.1367187501, 0.5039062502, 0.0585937500, 0.0507812500, 0.1992187501, 0.5742187503, 0.9960937505 },
+ { 0.1054687500, 0.1757812501, 0.0664062500, 0.5976562503, 0.2460937501, 0.1992187501, 0.9960937505, 0.6445312503, 0.4492187502, 0.9804687505, 0.9726562505, 0.9023437504, 0.6445312503, 0.5429687503, 0.0429687500, 0.6523437503 },
+ { 0.6054687503, 0.6757812503, 0.5664062503, 0.0976562500, 0.7460937503, 0.6992187503, 0.4960937502, 0.1445312501, 0.9492187504, 0.4804687502, 0.4726562502, 0.4023437502, 0.1445312501, 0.0429687500, 0.5429687503, 0.1523437501 },
+ { 0.8554687504, 0.4257812502, 0.8164062504, 0.8476562504, 0.9960937505, 0.4492187502, 0.2460937501, 0.8945312504, 0.1992187501, 0.2304687501, 0.7226562503, 0.1523437501, 0.8945312504, 0.2929687501, 0.2929687501, 0.4023437502 },
+ { 0.3554687502, 0.9257812504, 0.3164062501, 0.3476562502, 0.4960937502, 0.9492187504, 0.7460937503, 0.3945312502, 0.6992187503, 0.7304687503, 0.2226562501, 0.6523437503, 0.3945312502, 0.7929687504, 0.7929687504, 0.9023437504 },
+ { 0.4804687502, 0.3007812501, 0.6914062503, 0.7226562503, 0.8710937504, 0.8242187504, 0.8710937504, 0.0195312500, 0.3242187502, 0.1054687500, 0.5976562503, 0.2773437501, 0.5195312502, 0.9179687504, 0.6679687503, 0.5273437502 },
+ { 0.9804687505, 0.8007812504, 0.1914062501, 0.2226562501, 0.3710937502, 0.3242187502, 0.3710937502, 0.5195312502, 0.8242187504, 0.6054687503, 0.0976562500, 0.7773437504, 0.0195312500, 0.4179687502, 0.1679687501, 0.0273437500 },
+ { 0.7304687503, 0.0507812500, 0.4414062502, 0.9726562505, 0.1210937501, 0.5742187503, 0.1210937501, 0.2695312501, 0.0742187500, 0.8554687504, 0.8476562504, 0.5273437502, 0.7695312504, 0.1679687501, 0.9179687504, 0.2773437501 },
+ { 0.2304687501, 0.5507812503, 0.9414062504, 0.4726562502, 0.6210937503, 0.0742187500, 0.6210937503, 0.7695312504, 0.5742187503, 0.3554687502, 0.3476562502, 0.0273437500, 0.2695312501, 0.6679687503, 0.4179687502, 0.7773437504 },
+ { 0.1679687501, 0.4882812502, 0.2539062501, 0.1601562501, 0.6835937503, 0.0117187500, 0.9335937504, 0.3320312502, 0.2617187501, 0.9179687504, 0.2851562501, 0.2148437501, 0.2070312501, 0.2304687501, 0.2304687501, 0.0898437500 },
+ { 0.6679687503, 0.9882812505, 0.7539062504, 0.6601562503, 0.1835937501, 0.5117187502, 0.4335937502, 0.8320312504, 0.7617187504, 0.4179687502, 0.7851562504, 0.7148437503, 0.7070312503, 0.7304687503, 0.7304687503, 0.5898437503 },
+ { 0.9179687504, 0.2382812501, 0.5039062502, 0.4101562502, 0.4335937502, 0.2617187501, 0.1835937501, 0.0820312500, 0.0117187500, 0.1679687501, 0.0351562500, 0.9648437504, 0.4570312502, 0.9804687505, 0.4804687502, 0.8398437504 },
+ { 0.4179687502, 0.7382812503, 0.0039062500, 0.9101562504, 0.9335937504, 0.7617187504, 0.6835937503, 0.5820312503, 0.5117187502, 0.6679687503, 0.5351562502, 0.4648437502, 0.9570312504, 0.4804687502, 0.9804687505, 0.3398437502 },
+ { 0.2929687501, 0.1132812501, 0.8789062504, 0.0351562500, 0.3085937501, 0.8867187504, 0.8085937504, 0.9570312504, 0.3867187502, 0.0429687500, 0.1601562501, 0.5898437503, 0.0820312500, 0.3554687502, 0.6054687503, 0.2148437501 },
+ { 0.7929687504, 0.6132812503, 0.3789062502, 0.5351562502, 0.8085937504, 0.3867187502, 0.3085937501, 0.4570312502, 0.8867187504, 0.5429687503, 0.6601562503, 0.0898437500, 0.5820312503, 0.8554687504, 0.1054687500, 0.7148437503 },
+ { 0.5429687503, 0.3632812502, 0.1289062501, 0.2851562501, 0.5585937503, 0.6367187503, 0.0585937500, 0.7070312503, 0.1367187501, 0.7929687504, 0.4101562502, 0.3398437502, 0.3320312502, 0.6054687503, 0.8554687504, 0.9648437504 },
+ { 0.0429687500, 0.8632812504, 0.6289062503, 0.7851562504, 0.0585937500, 0.1367187501, 0.5585937503, 0.2070312501, 0.6367187503, 0.2929687501, 0.9101562504, 0.8398437504, 0.8320312504, 0.1054687500, 0.3554687502, 0.4648437502 },
+ { 0.0585937500, 0.0664062500, 0.3320312502, 0.3945312502, 0.7617187504, 0.8085937504, 0.1992187501, 0.8164062504, 0.1835937501, 0.6210937503, 0.6445312503, 0.1054687500, 0.1289062501, 0.5585937503, 0.8710937504, 0.4179687502 },
+ { 0.5585937503, 0.5664062503, 0.8320312504, 0.8945312504, 0.2617187501, 0.3085937501, 0.6992187503, 0.3164062501, 0.6835937503, 0.1210937501, 0.1445312501, 0.6054687503, 0.6289062503, 0.0585937500, 0.3710937502, 0.9179687504 },
+ { 0.8085937504, 0.3164062501, 0.5820312503, 0.1445312501, 0.0117187500, 0.5585937503, 0.9492187504, 0.5664062503, 0.4335937502, 0.3710937502, 0.8945312504, 0.8554687504, 0.3789062502, 0.3085937501, 0.6210937503, 0.6679687503 },
+ { 0.3085937501, 0.8164062504, 0.0820312500, 0.6445312503, 0.5117187502, 0.0585937500, 0.4492187502, 0.0664062500, 0.9335937504, 0.8710937504, 0.3945312502, 0.3554687502, 0.8789062504, 0.8085937504, 0.1210937501, 0.1679687501 },
+ { 0.4335937502, 0.4414062502, 0.9570312504, 0.2695312501, 0.1367187501, 0.1835937501, 0.0742187500, 0.4414062502, 0.0585937500, 0.4960937502, 0.7695312504, 0.7304687503, 0.0039062500, 0.9335937504, 0.4960937502, 0.2929687501 },
+ { 0.9335937504, 0.9414062504, 0.4570312502, 0.7695312504, 0.6367187503, 0.6835937503, 0.5742187503, 0.9414062504, 0.5585937503, 0.9960937505, 0.2695312501, 0.2304687501, 0.5039062502, 0.4335937502, 0.9960937505, 0.7929687504 },
+ { 0.6835937503, 0.1914062501, 0.2070312501, 0.0195312500, 0.8867187504, 0.4335937502, 0.8242187504, 0.1914062501, 0.3085937501, 0.7460937503, 0.5195312502, 0.4804687502, 0.2539062501, 0.1835937501, 0.2460937501, 0.5429687503 },
+ { 0.1835937501, 0.6914062503, 0.7070312503, 0.5195312502, 0.3867187502, 0.9335937504, 0.3242187502, 0.6914062503, 0.8085937504, 0.2460937501, 0.0195312500, 0.9804687505, 0.7539062504, 0.6835937503, 0.7460937503, 0.0429687500 },
+ { 0.2460937501, 0.2539062501, 0.0195312500, 0.8320312504, 0.3242187502, 0.9960937505, 0.1367187501, 0.1289062501, 0.1210937501, 0.5585937503, 0.0820312500, 0.7929687504, 0.6914062503, 0.2460937501, 0.9335937504, 0.8554687504 },
+ { 0.7460937503, 0.7539062504, 0.5195312502, 0.3320312502, 0.8242187504, 0.4960937502, 0.6367187503, 0.6289062503, 0.6210937503, 0.0585937500, 0.5820312503, 0.2929687501, 0.1914062501, 0.7460937503, 0.4335937502, 0.3554687502 },
+ { 0.9960937505, 0.0039062500, 0.7695312504, 0.5820312503, 0.5742187503, 0.7460937503, 0.8867187504, 0.3789062502, 0.3710937502, 0.3085937501, 0.3320312502, 0.0429687500, 0.9414062504, 0.9960937505, 0.6835937503, 0.1054687500 },
+ { 0.4960937502, 0.5039062502, 0.2695312501, 0.0820312500, 0.0742187500, 0.2460937501, 0.3867187502, 0.8789062504, 0.8710937504, 0.8085937504, 0.8320312504, 0.5429687503, 0.4414062502, 0.4960937502, 0.1835937501, 0.6054687503 },
+ { 0.3710937502, 0.1289062501, 0.6445312503, 0.9570312504, 0.6992187503, 0.1210937501, 0.0117187500, 0.5039062502, 0.2460937501, 0.4335937502, 0.4570312502, 0.4179687502, 0.5664062503, 0.3710937502, 0.3085937501, 0.9804687505 },
+ { 0.8710937504, 0.6289062503, 0.1445312501, 0.4570312502, 0.1992187501, 0.6210937503, 0.5117187502, 0.0039062500, 0.7460937503, 0.9335937504, 0.9570312504, 0.9179687504, 0.0664062500, 0.8710937504, 0.8085937504, 0.4804687502 },
+ { 0.6210937503, 0.3789062502, 0.3945312502, 0.7070312503, 0.4492187502, 0.3710937502, 0.7617187504, 0.7539062504, 0.4960937502, 0.6835937503, 0.2070312501, 0.6679687503, 0.8164062504, 0.6210937503, 0.0585937500, 0.2304687501 },
+ { 0.1210937501, 0.8789062504, 0.8945312504, 0.2070312501, 0.9492187504, 0.8710937504, 0.2617187501, 0.2539062501, 0.9960937505, 0.1835937501, 0.7070312503, 0.1679687501, 0.3164062501, 0.1210937501, 0.5585937503, 0.7304687503 },
+ { 0.0898437500, 0.4101562502, 0.5507812503, 0.0507812500, 0.5429687503, 0.5898437503, 0.7304687503, 0.0351562500, 0.9023437504, 0.9648437504, 0.8007812504, 0.7617187504, 0.9726562505, 0.6523437503, 0.0898437500, 0.8867187504 },
+ { 0.5898437503, 0.9101562504, 0.0507812500, 0.5507812503, 0.0429687500, 0.0898437500, 0.2304687501, 0.5351562502, 0.4023437502, 0.4648437502, 0.3007812501, 0.2617187501, 0.4726562502, 0.1523437501, 0.5898437503, 0.3867187502 },
+ { 0.8398437504, 0.1601562501, 0.3007812501, 0.3007812501, 0.2929687501, 0.8398437504, 0.4804687502, 0.2851562501, 0.6523437503, 0.2148437501, 0.5507812503, 0.0117187500, 0.7226562503, 0.4023437502, 0.3398437502, 0.1367187501 },
+ { 0.3398437502, 0.6601562503, 0.8007812504, 0.8007812504, 0.7929687504, 0.3398437502, 0.9804687505, 0.7851562504, 0.1523437501, 0.7148437503, 0.0507812500, 0.5117187502, 0.2226562501, 0.9023437504, 0.8398437504, 0.6367187503 },
+ { 0.4648437502, 0.0351562500, 0.1757812501, 0.1757812501, 0.4179687502, 0.4648437502, 0.6054687503, 0.6601562503, 0.7773437504, 0.0898437500, 0.6757812503, 0.3867187502, 0.8476562504, 0.7773437504, 0.7148437503, 0.7617187504 },
+ { 0.9648437504, 0.5351562502, 0.6757812503, 0.6757812503, 0.9179687504, 0.9648437504, 0.1054687500, 0.1601562501, 0.2773437501, 0.5898437503, 0.1757812501, 0.8867187504, 0.3476562502, 0.2773437501, 0.2148437501, 0.2617187501 },
+ { 0.7148437503, 0.2851562501, 0.9257812504, 0.4257812502, 0.6679687503, 0.2148437501, 0.3554687502, 0.9101562504, 0.5273437502, 0.8398437504, 0.9257812504, 0.6367187503, 0.5976562503, 0.0273437500, 0.9648437504, 0.0117187500 },
+ { 0.2148437501, 0.7851562504, 0.4257812502, 0.9257812504, 0.1679687501, 0.7148437503, 0.8554687504, 0.4101562502, 0.0273437500, 0.3398437502, 0.4257812502, 0.1367187501, 0.0976562500, 0.5273437502, 0.4648437502, 0.5117187502 },
+ { 0.1523437501, 0.2226562501, 0.8632812504, 0.7382812503, 0.1054687500, 0.6523437503, 0.6679687503, 0.9726562505, 0.8398437504, 0.9023437504, 0.4882812502, 0.0742187500, 0.4101562502, 0.0898437500, 0.1523437501, 0.3242187502 },
+ { 0.6523437503, 0.7226562503, 0.3632812502, 0.2382812501, 0.6054687503, 0.1523437501, 0.1679687501, 0.4726562502, 0.3398437502, 0.4023437502, 0.9882812505, 0.5742187503, 0.9101562504, 0.5898437503, 0.6523437503, 0.8242187504 },
+ { 0.9023437504, 0.4726562502, 0.1132812501, 0.9882812505, 0.8554687504, 0.9023437504, 0.4179687502, 0.7226562503, 0.5898437503, 0.1523437501, 0.2382812501, 0.8242187504, 0.1601562501, 0.8398437504, 0.4023437502, 0.5742187503 },
+ { 0.4023437502, 0.9726562505, 0.6132812503, 0.4882812502, 0.3554687502, 0.4023437502, 0.9179687504, 0.2226562501, 0.0898437500, 0.6523437503, 0.7382812503, 0.3242187502, 0.6601562503, 0.3398437502, 0.9023437504, 0.0742187500 },
+ { 0.2773437501, 0.3476562502, 0.4882812502, 0.6132812503, 0.9804687505, 0.2773437501, 0.5429687503, 0.3476562502, 0.9648437504, 0.0273437500, 0.1132812501, 0.6992187503, 0.2851562501, 0.4648437502, 0.5273437502, 0.4492187502 },
+ { 0.7773437504, 0.8476562504, 0.9882812505, 0.1132812501, 0.4804687502, 0.7773437504, 0.0429687500, 0.8476562504, 0.4648437502, 0.5273437502, 0.6132812503, 0.1992187501, 0.7851562504, 0.9648437504, 0.0273437500, 0.9492187504 },
+ { 0.5273437502, 0.0976562500, 0.7382812503, 0.8632812504, 0.2304687501, 0.0273437500, 0.2929687501, 0.0976562500, 0.7148437503, 0.7773437504, 0.3632812502, 0.4492187502, 0.0351562500, 0.7148437503, 0.7773437504, 0.6992187503 },
+ { 0.0273437500, 0.5976562503, 0.2382812501, 0.3632812502, 0.7304687503, 0.5273437502, 0.7929687504, 0.5976562503, 0.2148437501, 0.2773437501, 0.8632812504, 0.9492187504, 0.5351562502, 0.2148437501, 0.2773437501, 0.1992187501 },
+ { 0.0195312500, 0.1992187501, 0.7304687503, 0.2460937501, 0.2539062501, 0.7070312503, 0.0664062500, 0.8085937504, 0.5195312502, 0.8007812504, 0.2460937501, 0.6757812503, 0.9023437504, 0.9570312504, 0.2539062501, 0.4726562502 },
+ { 0.5195312502, 0.6992187503, 0.2304687501, 0.7460937503, 0.7539062504, 0.2070312501, 0.5664062503, 0.3085937501, 0.0195312500, 0.3007812501, 0.7460937503, 0.1757812501, 0.4023437502, 0.4570312502, 0.7539062504, 0.9726562505 },
+ { 0.7695312504, 0.4492187502, 0.4804687502, 0.4960937502, 0.5039062502, 0.9570312504, 0.8164062504, 0.5585937503, 0.7695312504, 0.0507812500, 0.4960937502, 0.4257812502, 0.6523437503, 0.2070312501, 0.0039062500, 0.7226562503 },
+ { 0.2695312501, 0.9492187504, 0.9804687505, 0.9960937505, 0.0039062500, 0.4570312502, 0.3164062501, 0.0585937500, 0.2695312501, 0.5507812503, 0.9960937505, 0.9257812504, 0.1523437501, 0.7070312503, 0.5039062502, 0.2226562501 },
+ { 0.3945312502, 0.3242187502, 0.1054687500, 0.1210937501, 0.6289062503, 0.3320312502, 0.1914062501, 0.4335937502, 0.6445312503, 0.1757812501, 0.3710937502, 0.0507812500, 0.7773437504, 0.5820312503, 0.8789062504, 0.3476562502 },
+ { 0.8945312504, 0.8242187504, 0.6054687503, 0.6210937503, 0.1289062501, 0.8320312504, 0.6914062503, 0.9335937504, 0.1445312501, 0.6757812503, 0.8710937504, 0.5507812503, 0.2773437501, 0.0820312500, 0.3789062502, 0.8476562504 },
+ { 0.6445312503, 0.0742187500, 0.8554687504, 0.3710937502, 0.3789062502, 0.0820312500, 0.9414062504, 0.1835937501, 0.8945312504, 0.9257812504, 0.1210937501, 0.8007812504, 0.5273437502, 0.3320312502, 0.6289062503, 0.5976562503 },
+ { 0.1445312501, 0.5742187503, 0.3554687502, 0.8710937504, 0.8789062504, 0.5820312503, 0.4414062502, 0.6835937503, 0.3945312502, 0.4257812502, 0.6210937503, 0.3007812501, 0.0273437500, 0.8320312504, 0.1289062501, 0.0976562500 },
+ { 0.2070312501, 0.3867187502, 0.9179687504, 0.5585937503, 0.8164062504, 0.5195312502, 0.0039062500, 0.2460937501, 0.7070312503, 0.8632812504, 0.5585937503, 0.4882812502, 0.4648437502, 0.2695312501, 0.4414062502, 0.7851562504 },
+ { 0.7070312503, 0.8867187504, 0.4179687502, 0.0585937500, 0.3164062501, 0.0195312500, 0.5039062502, 0.7460937503, 0.2070312501, 0.3632812502, 0.0585937500, 0.9882812505, 0.9648437504, 0.7695312504, 0.9414062504, 0.2851562501 },
+ { 0.9570312504, 0.1367187501, 0.1679687501, 0.8085937504, 0.0664062500, 0.7695312504, 0.7539062504, 0.4960937502, 0.9570312504, 0.1132812501, 0.8085937504, 0.7382812503, 0.2148437501, 0.5195312502, 0.1914062501, 0.0351562500 },
+ { 0.4570312502, 0.6367187503, 0.6679687503, 0.3085937501, 0.5664062503, 0.2695312501, 0.2539062501, 0.9960937505, 0.4570312502, 0.6132812503, 0.3085937501, 0.2382812501, 0.7148437503, 0.0195312500, 0.6914062503, 0.5351562502 },
+ { 0.3320312502, 0.0117187500, 0.2929687501, 0.6835937503, 0.1914062501, 0.3945312502, 0.1289062501, 0.6210937503, 0.5820312503, 0.2382812501, 0.9335937504, 0.8632812504, 0.3398437502, 0.1445312501, 0.8164062504, 0.9101562504 },
+ { 0.8320312504, 0.5117187502, 0.7929687504, 0.1835937501, 0.6914062503, 0.8945312504, 0.6289062503, 0.1210937501, 0.0820312500, 0.7382812503, 0.4335937502, 0.3632812502, 0.8398437504, 0.6445312503, 0.3164062501, 0.4101562502 },
+ { 0.5820312503, 0.2617187501, 0.5429687503, 0.9335937504, 0.9414062504, 0.1445312501, 0.8789062504, 0.8710937504, 0.8320312504, 0.9882812505, 0.6835937503, 0.1132812501, 0.0898437500, 0.8945312504, 0.5664062503, 0.1601562501 },
+ { 0.0820312500, 0.7617187504, 0.0429687500, 0.4335937502, 0.4414062502, 0.6445312503, 0.3789062502, 0.3710937502, 0.3320312502, 0.4882812502, 0.1835937501, 0.6132812503, 0.5898437503, 0.3945312502, 0.0664062500, 0.6601562503 },
+ { 0.1132812501, 0.2929687501, 0.3867187502, 0.3398437502, 0.0351562500, 0.9257812504, 0.5976562503, 0.0898437500, 0.3007812501, 0.6445312503, 0.3398437502, 0.4570312502, 0.2460937501, 0.8632812504, 0.5351562502, 0.9414062504 },
+ { 0.6132812503, 0.7929687504, 0.8867187504, 0.8398437504, 0.5351562502, 0.4257812502, 0.0976562500, 0.5898437503, 0.8007812504, 0.1445312501, 0.8398437504, 0.9570312504, 0.7460937503, 0.3632812502, 0.0351562500, 0.4414062502 },
+ { 0.8632812504, 0.0429687500, 0.6367187503, 0.0898437500, 0.7851562504, 0.6757812503, 0.3476562502, 0.3398437502, 0.0507812500, 0.3945312502, 0.0898437500, 0.7070312503, 0.4960937502, 0.1132812501, 0.7851562504, 0.1914062501 },
+ { 0.3632812502, 0.5429687503, 0.1367187501, 0.5898437503, 0.2851562501, 0.1757812501, 0.8476562504, 0.8398437504, 0.5507812503, 0.8945312504, 0.5898437503, 0.2070312501, 0.9960937505, 0.6132812503, 0.2851562501, 0.6914062503 },
+ { 0.4882812502, 0.1679687501, 0.7617187504, 0.4648437502, 0.9101562504, 0.0507812500, 0.7226562503, 0.7148437503, 0.4257812502, 0.2695312501, 0.2148437501, 0.8320312504, 0.1210937501, 0.7382812503, 0.1601562501, 0.8164062504 },
+ { 0.9882812505, 0.6679687503, 0.2617187501, 0.9648437504, 0.4101562502, 0.5507812503, 0.2226562501, 0.2148437501, 0.9257812504, 0.7695312504, 0.7148437503, 0.3320312502, 0.6210937503, 0.2382812501, 0.6601562503, 0.3164062501 },
+ { 0.7382812503, 0.4179687502, 0.0117187500, 0.2148437501, 0.1601562501, 0.3007812501, 0.4726562502, 0.9648437504, 0.1757812501, 0.5195312502, 0.4648437502, 0.0820312500, 0.3710937502, 0.4882812502, 0.4101562502, 0.0664062500 },
+ { 0.2382812501, 0.9179687504, 0.5117187502, 0.7148437503, 0.6601562503, 0.8007812504, 0.9726562505, 0.4648437502, 0.6757812503, 0.0195312500, 0.9648437504, 0.5820312503, 0.8710937504, 0.9882812505, 0.9101562504, 0.5664062503 },
+ { 0.1757812501, 0.1054687500, 0.1992187501, 0.9023437504, 0.5976562503, 0.8632812504, 0.5351562502, 0.9023437504, 0.4882812502, 0.7070312503, 0.9023437504, 0.6445312503, 0.6835937503, 0.4257812502, 0.7226562503, 0.2539062501 },
+ { 0.6757812503, 0.6054687503, 0.6992187503, 0.4023437502, 0.0976562500, 0.3632812502, 0.0351562500, 0.4023437502, 0.9882812505, 0.2070312501, 0.4023437502, 0.1445312501, 0.1835937501, 0.9257812504, 0.2226562501, 0.7539062504 },
+ { 0.9257812504, 0.3554687502, 0.9492187504, 0.6523437503, 0.3476562502, 0.6132812503, 0.2851562501, 0.6523437503, 0.2382812501, 0.4570312502, 0.6523437503, 0.3945312502, 0.9335937504, 0.6757812503, 0.9726562505, 0.5039062502 },
+ { 0.4257812502, 0.8554687504, 0.4492187502, 0.1523437501, 0.8476562504, 0.1132812501, 0.7851562504, 0.1523437501, 0.7382812503, 0.9570312504, 0.1523437501, 0.8945312504, 0.4335937502, 0.1757812501, 0.4726562502, 0.0039062500 },
+ { 0.3007812501, 0.4804687502, 0.5742187503, 0.7773437504, 0.4726562502, 0.2382812501, 0.6601562503, 0.2773437501, 0.3632812502, 0.3320312502, 0.5273437502, 0.0195312500, 0.5585937503, 0.0507812500, 0.0976562500, 0.3789062502 },
+ { 0.8007812504, 0.9804687505, 0.0742187500, 0.2773437501, 0.9726562505, 0.7382812503, 0.1601562501, 0.7773437504, 0.8632812504, 0.8320312504, 0.0273437500, 0.5195312502, 0.0585937500, 0.5507812503, 0.5976562503, 0.8789062504 },
+ { 0.5507812503, 0.2304687501, 0.3242187502, 0.5273437502, 0.7226562503, 0.4882812502, 0.4101562502, 0.0273437500, 0.1132812501, 0.5820312503, 0.7773437504, 0.7695312504, 0.8085937504, 0.8007812504, 0.3476562502, 0.6289062503 },
+ { 0.0507812500, 0.7304687503, 0.8242187504, 0.0273437500, 0.2226562501, 0.9882812505, 0.9101562504, 0.5273437502, 0.6132812503, 0.0820312500, 0.2773437501, 0.2695312501, 0.3085937501, 0.3007812501, 0.8476562504, 0.1289062501 },
+ { 0.0351562500, 0.4648437502, 0.1523437501, 0.6679687503, 0.9570312504, 0.0664062500, 0.3320312502, 0.3867187502, 0.0664062500, 0.7539062504, 0.0429687500, 0.5351562502, 0.7304687503, 0.8476562504, 0.3632812502, 0.2382812501 },
+ { 0.5351562502, 0.9648437504, 0.6523437503, 0.1679687501, 0.4570312502, 0.5664062503, 0.8320312504, 0.8867187504, 0.5664062503, 0.2539062501, 0.5429687503, 0.0351562500, 0.2304687501, 0.3476562502, 0.8632812504, 0.7382812503 },
+ { 0.7851562504, 0.2148437501, 0.9023437504, 0.9179687504, 0.2070312501, 0.3164062501, 0.5820312503, 0.1367187501, 0.3164062501, 0.0039062500, 0.2929687501, 0.2851562501, 0.9804687505, 0.0976562500, 0.1132812501, 0.9882812505 },
+ { 0.2851562501, 0.7148437503, 0.4023437502, 0.4179687502, 0.7070312503, 0.8164062504, 0.0820312500, 0.6367187503, 0.8164062504, 0.5039062502, 0.7929687504, 0.7851562504, 0.4804687502, 0.5976562503, 0.6132812503, 0.4882812502 }
+};
+
+
+QRNG_VALIDATION_TEST_FUNCTIONS(sobol)
+
+BOOST_AUTO_TEST_CASE( validate_sobol )
+{
+ test_sobol_values(sobol_02_100, 0);
+ test_sobol_values(sobol_07_100, 128);
+ test_sobol_values(sobol_16_100, 128);
+}
+
+BOOST_AUTO_TEST_CASE( validate_sobol_seed )
+{
+ test_sobol_seed(sobol_02_100, 0);
+ test_sobol_seed(sobol_07_100, 128);
+ test_sobol_seed(sobol_16_100, 128);
+}
+
+BOOST_AUTO_TEST_CASE( validate_sobol_discard )
+{
+ test_sobol_discard(sobol_02_100, 0);
+ test_sobol_discard(sobol_07_100, 128);
+ test_sobol_discard(sobol_16_100, 128);
+}

Added: sandbox/SOC/2010/quasi_random/libs/random/test/test_qrng_functions.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/quasi_random/libs/random/test/test_qrng_functions.hpp 2010-07-23 08:30:02 EDT (Fri, 23 Jul 2010)
@@ -0,0 +1,131 @@
+// Copyright Justinas Vygintas Daugmaudis, 2010.
+// Use, modification and distribution is subject to the
+// Boost Software License, Version 1.0. (See accompanying
+// file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+
+#ifndef TEST_QRNG_FUNCTIONS_HPP_INCLUDED
+#define TEST_QRNG_FUNCTIONS_HPP_INCLUDED
+
+#include <boost/random/uniform_real.hpp>
+#include <boost/test/floating_point_comparison.hpp>
+
+namespace test {
+
+// Invokes operator() precisely n times. This is to check that
+// Engine::discard(n) actually has the same effect.
+template<typename Engine>
+inline void trivial_discard(Engine& eng, std::size_t n)
+{
+ for( ; n != 0; --n ) eng();
+}
+
+
+template<typename Engine, typename T, std::size_t Dimension>
+inline void match_vector(Engine& eng, T (&pt)[Dimension])
+{
+ BOOST_REQUIRE_EQUAL( eng.dimension(), Dimension ); // paranoid check
+
+ boost::uniform_real<T> dist;
+
+ for( std::size_t i = 0; i != eng.dimension(); ++i )
+ {
+ T val = dist(eng);
+ // We want to check that quasi-random number generator values differ no
+ // more than 0.0006% of their value.
+ BOOST_CHECK_CLOSE(pt[i], val, 0.0006);
+ }
+}
+
+
+template<typename Engine, typename T, std::size_t Dimension, std::size_t N>
+inline void expected_values(T (&pt)[N][Dimension], std::size_t skip)
+{
+ Engine eng(skip);
+ for( std::size_t i = 0; i != N; ++i )
+ match_vector(eng, pt[i]);
+}
+
+template<typename Engine, typename T, std::size_t Dimension, std::size_t N>
+inline void seed_function(T (&pt)[N][Dimension], std::size_t skip)
+{
+ Engine eng;
+
+ for( std::size_t i = 0; i != N; ++i )
+ {
+ // For all N seeds an engine
+ // and checks if the expected values match.
+ eng.seed(skip + i);
+ match_vector(eng, pt[i]);
+ }
+}
+
+template<typename Engine, typename T, std::size_t Dimension, std::size_t N>
+inline void discard_function(T (&pt)[N][Dimension], std::size_t skip)
+{
+ Engine eng, trivial, initial_state;
+ boost::uniform_real<T> dist;
+
+ const std::size_t element_count = N * Dimension;
+ const T* pt_array = reinterpret_cast<T *>(boost::addressof(pt));
+
+ initial_state.seed(skip);
+ for( std::size_t step = 0; step != element_count; ++step )
+ {
+ // Init to the same state
+ eng = initial_state;
+ trivial = initial_state;
+
+ // Discards have to have the same effect
+ eng.discard(step);
+ trivial_discard(trivial, step);
+
+ // Therefore, states are equal
+ BOOST_CHECK( eng == trivial );
+
+ // Now, let's check whether they really produce the same sequence
+ for( std::size_t k = step; k != element_count; ++k )
+ {
+ T q_val = dist(eng);
+ T t_val = dist(trivial);
+ BOOST_CHECK_CLOSE(q_val, t_val, 0.0001);
+ // ~ BOOST_CHECK(q_val == t_val), but those are floating point values,
+ // so strict equality check may fail unnecessarily
+
+ // States remain equal!
+ BOOST_CHECK( eng == trivial );
+
+ // We want to check that quasi-random number generator values differ no
+ // more than 0.0006% of their value.
+ BOOST_CHECK_CLOSE(pt_array[k], q_val, 0.0006);
+ }
+ }
+}
+
+} // namespace test
+
+
+#define QRNG_VALIDATION_TEST_FUNCTIONS(QRNG) \
+\
+template<typename T, std::size_t Dimension, std::size_t N> \
+inline void test_##QRNG##_values(T (&pt)[N][Dimension], std::size_t skip) \
+{ \
+ typedef typename boost::QRNG##_generator<Dimension>::type engine_t; \
+ test::expected_values<engine_t>(pt, skip); \
+} \
+\
+template<typename T, std::size_t Dimension, std::size_t N> \
+inline void test_##QRNG##_seed(T (&pt)[N][Dimension], std::size_t skip) \
+{ \
+ typedef typename boost::QRNG##_generator<Dimension>::type engine_t; \
+ test::seed_function<engine_t>(pt, skip); \
+} \
+\
+template<typename T, std::size_t Dimension, std::size_t N> \
+inline void test_##QRNG##_discard(T (&pt)[N][Dimension], std::size_t skip) \
+{ \
+ typedef typename boost::QRNG##_generator<Dimension>::type engine_t; \
+ test::discard_function<engine_t>(pt, skip); \
+} \
+/**/
+
+#endif // TEST_QRNG_FUNCTIONS_HPP_INCLUDED


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk