29 namespace Test_RandomNumbers_SFMT {
 
   30   const std::string 
test_name = 
"RandomNumbers.SFMT.Uniform";
 
   34     const std::string filename_input  = 
"test_RandomNumbers_SFMT_Uniform.yaml";
 
   35     const std::string filename_output = 
"stdout";
 
   37     class Parameters_Test_RandomNumbers : 
public Parameters {
 
   39       Parameters_Test_RandomNumbers()
 
   41         Register_int(
"number_of_seeds", 0);
 
   42         Register_int(
"seed_base", 0);
 
   43         Register_int(
"number_of_samples", 0);
 
   45         Register_string(
"verbose_level", 
"NULL");
 
   47         Register_double(
"expected_result", 0.0);
 
   55 #ifdef USE_TESTMANAGER_AUTOREGISTER 
   68     Parameters *params_test = 
new Parameters_Test_RandomNumbers;
 
   74     params_manager.
read_params(filename_input, params_all);
 
   76     int          Nseed      = params_test->
get_int(
"number_of_seeds");
 
   77     int          seed_base  = params_test->
get_int(
"seed_base");
 
   78     int          Nrand      = params_test->
get_int(
"number_of_samples");
 
   79     const string str_vlevel = params_test->
get_string(
"verbose_level");
 
   81     const bool   do_check        = params_test->
is_set(
"expected_result");
 
   82     const double expected_result = do_check ? params_test->
get_double(
"expected_result") : 0.0;
 
   90     vout.
general(vl, 
"  vlevel    = %s\n", str_vlevel.c_str());
 
  103     vout.
general(vl, 
"  number of samples = %10d\n", Nrand);
 
  108     for (
int iseed = 0; iseed < Nseed; ++iseed) {
 
  109       int iseed2 = seed_base + iseed;
 
  114       for (
int i = 0; i < Nrand; ++i) {
 
  115         double rn1 = rand->
get();
 
  116         double rn2 = rand->
get();
 
  117         double r   = rn1 * rn1 + rn2 * rn2;
 
  118         if (r < 1.0) { ++Npi;  }
 
  122       double pi_exp = (4.0 * Npi) / Nrand;
 
  125       t2 += pi_exp * pi_exp;
 
  128       vout.
general(vl, 
"  %10d    %14.10f\n", iseed2, pi_exp);
 
  133     double api = t1 / (double)Nseed;
 
  134     double vpi = t2 / (double)Nseed - api * api;
 
  135     double dpi = sqrt(vpi);
 
  136     double epi = dpi / sqrt((
double)Nseed - 1);
 
  138     double pi = 3.141592653589793;
 
  161       vout.
detailed(vl, 
"check skipped: expected_result not set.\n\n");
 
  167 #endif  // USE_SFMTLIB 
void read_params(const std::string ¶ms_file, Parameters *params)
read parameters from file. 
 
void detailed(const char *format,...)
 
void general(const char *format,...)
 
const std::string test_name
 
int get_int(const string &key) const 
 
int uniform_calc_pi(void)
 
static bool RegisterTest(const std::string &key, const Test_function func)
 
bool is_set(const string &) const 
 
double get_double(const string &key) const 
 
void Register_Parameters(const string &, Parameters *const)
 
Base class of random number generators. 
 
Parameter manager with YAML parser. 
 
int verify(const double expected, const double result)
 
string get_string(const string &key) const 
 
void report(const Bridge::VerboseLevel vl=Bridge::GENERAL)
 
static VerboseLevel set_verbose_level(const std::string &str)