Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-11-09 09:33:10

0001 #include <algorithms/logger.h>
0002 #include <algorithms/random.h>
0003 
0004 #include <cstdlib>
0005 #include <iostream>
0006 
0007 int main() {
0008   auto& serviceSvc = algorithms::ServiceSvc::instance();
0009   auto& randomSvc  = algorithms::RandomSvc::instance();
0010   randomSvc.setProperty("seed", std::size_t{42});
0011   serviceSvc.init();
0012   if (!serviceSvc.ready()) {
0013     std::cerr << "services not ready" << std::endl;
0014     return EXIT_FAILURE;
0015   }
0016   const auto generator = randomSvc.generator();
0017   double sum           = 0;
0018   for (int i = 0; i < 10000; ++i) {
0019     const double x = generator.uniform_double(2.0, 3.0);
0020     if (x < 2.0 || x >= 3.0) {
0021       std::cerr << "uniform_double out of range: " << x << std::endl;
0022       return EXIT_FAILURE;
0023     }
0024     sum += x;
0025   }
0026   const double mean = sum / 10000;
0027   std::cout << "algorithms::RandomSvc mean: " << mean << std::endl;
0028   return (mean > 2.45 && mean < 2.55) ? EXIT_SUCCESS : EXIT_FAILURE;
0029 }