Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of https://framagit.org/simgrid/simgrid
[simgrid.git] / src / mc / api / strategy / UniformStrategy.hpp
index cc5bd85..0b665a8 100644 (file)
@@ -9,12 +9,12 @@
 #include "src/mc/transition/Transition.hpp"
 #include "xbt/random.hpp"
 
-#define MAX_RAND 100000
-
 namespace simgrid::mc {
 
 /** Guiding strategy that valuate states randomly */
 class UniformStrategy : public Strategy {
+  static constexpr int MAX_RAND = 100000;
+
   std::map<aid_t, int> valuation;
 
 public:
@@ -25,7 +25,7 @@ public:
   }
   void copy_from(const Strategy* strategy) override
   {
-    for (auto& [aid, _] : actors_to_run_)
+    for (auto const& [aid, _] : actors_to_run_)
       valuation[aid] = xbt::random::uniform_int(0, MAX_RAND);
   }
 
@@ -35,7 +35,7 @@ public:
 
     // Consider only valid actors
     for (auto const& [aid, actor] : actors_to_run_) {
-       if ((actor.is_todo() or not must_be_todo) and (not actor.is_done()) and actor.is_enabled())
+      if ((actor.is_todo() || not must_be_todo) && (not actor.is_done()) && actor.is_enabled())
         possibilities++;
     }
 
@@ -48,7 +48,7 @@ public:
        chosen = xbt::random::uniform_int(0, possibilities-1);
 
     for (auto const& [aid, actor] : actors_to_run_) {
-       if (((not actor.is_todo()) and must_be_todo) or actor.is_done() or (not actor.is_enabled()))
+        if (((not actor.is_todo()) && must_be_todo) || actor.is_done() || (not actor.is_enabled()))
         continue;
       if (chosen == 0) {
         return std::make_pair(aid, valuation.at(aid));