Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-17 09:22:35

0001 #include <algorithms/random.h>
0002 
0003 namespace algorithms {
0004 
0005 // FIXME fix the CMake setup so these are properly found in Gaudi...
0006 #if 0
0007 void RandomSvc::init() {
0008   if (m_seed.hasValue()) {
0009     info() << "Custom random seed requested: " << m_seed << endmsg;
0010     m_gen = createEngine(m_seed);
0011   }
0012 }
0013 void RandomSvc::init(const RandomEngineCB& gen) {
0014   init();
0015   info() << "Loading external generator function." << endmsg;
0016   m_gen = gen;
0017   if (m_seed.hasValue()) {
0018     warning() << "Custom random seed request ignored when using external generator function"
0019               << endmsg;
0020   }
0021 }
0022 RandomEngineCB RandomSvc::createEngine(const size_t seed) {
0023   return [=](const size_t size) {
0024     static std::mutex m;
0025     static std::mt19937_64 gen{seed};
0026     std::lock_guard<std::mutex> lock{m};
0027     std::vector<value_type> ret{size};
0028     std::generate(ret.begin(), ret.end(), gen);
0029     return ret;
0030   };
0031 }
0032 #endif
0033 } // namespace algorithms