Skip to content
Snippets Groups Projects
Commit ab38cbb3 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Plug RandomEngine to pugs' language

- resetRandomSeed: void -> void
  This sets a new parallel random seed (which is displayed to allow
  its reuse)

- setRandomSeed: N -> void
  Sets the random seed to a given value (parallel broadcast)
parent 14136a98
No related branches found
No related tags found
1 merge request!96Add random number engine encapsulation.
#include <language/modules/CoreModule.hpp>
#include <language/modules/CoreModule.hpp>
#include <language/modules/ModuleRepository.hpp>
#include <language/utils/ASTExecutionInfo.hpp>
#include <language/utils/AffectationProcessorBuilder.hpp>
#include <language/utils/AffectationRegisterForB.hpp>
#include <language/utils/AffectationRegisterForN.hpp>
......@@ -8,7 +11,6 @@
#include <language/utils/AffectationRegisterForRnxn.hpp>
#include <language/utils/AffectationRegisterForString.hpp>
#include <language/utils/AffectationRegisterForZ.hpp>
#include <language/utils/BinaryOperatorRegisterForB.hpp>
#include <language/utils/BinaryOperatorRegisterForN.hpp>
#include <language/utils/BinaryOperatorRegisterForR.hpp>
......@@ -16,23 +18,21 @@
#include <language/utils/BinaryOperatorRegisterForRnxn.hpp>
#include <language/utils/BinaryOperatorRegisterForString.hpp>
#include <language/utils/BinaryOperatorRegisterForZ.hpp>
#include <language/utils/BuiltinFunctionEmbedder.hpp>
#include <language/utils/IncDecOperatorRegisterForN.hpp>
#include <language/utils/IncDecOperatorRegisterForR.hpp>
#include <language/utils/IncDecOperatorRegisterForZ.hpp>
#include <language/utils/UnaryOperatorRegisterForB.hpp>
#include <language/utils/UnaryOperatorRegisterForN.hpp>
#include <language/utils/UnaryOperatorRegisterForR.hpp>
#include <language/utils/UnaryOperatorRegisterForRn.hpp>
#include <language/utils/UnaryOperatorRegisterForRnxn.hpp>
#include <language/utils/UnaryOperatorRegisterForZ.hpp>
#include <language/modules/CoreModule.hpp>
#include <language/modules/ModuleRepository.hpp>
#include <language/utils/ASTExecutionInfo.hpp>
#include <language/utils/BuiltinFunctionEmbedder.hpp>
#include <utils/Messenger.hpp>
#include <utils/PugsUtils.hpp>
#include <utils/RandomEngine.hpp>
#include <random>
CoreModule::CoreModule() : BuiltinModule(true)
{
......@@ -68,6 +68,20 @@ CoreModule::CoreModule() : BuiltinModule(true)
return repository.getModuleInfo(module_name);
}
));
this->_addBuiltinFunction("setRandomSeed", std::make_shared<BuiltinFunctionEmbedder<void(const int64_t&)>>(
[](const int64_t& random_seed) -> void {
RandomEngine::instance().setRandomSeed(random_seed);
}
));
this->_addBuiltinFunction("resetRandomSeed", std::make_shared<BuiltinFunctionEmbedder<void(void)>>(
[]() { RandomEngine::instance().resetRandomSeed(); }
));
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment