File indexing completed on 2025-12-17 09:22:35
0001 #include <algorithms/random.h>
0002
0003 namespace algorithms {
0004
0005
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 }