Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Constification in maxmin.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 30 Nov 2017 13:56:11 +0000 (14:56 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 30 Nov 2017 22:06:50 +0000 (23:06 +0100)
include/simgrid/forward.h
src/kernel/lmm/maxmin.cpp
src/kernel/lmm/maxmin.hpp
src/surf/cpu_cas01.cpp
src/surf/network_cm02.cpp
src/surf/ptask_L07.cpp

index 3b96273..b2905bb 100644 (file)
@@ -88,6 +88,7 @@ typedef simgrid::kernel::activity::MailboxImpl* smx_mailbox_t;
 typedef simgrid::surf::StorageImpl* surf_storage_t;
 
 typedef simgrid::kernel::lmm::s_lmm_element_t* lmm_element_t;
+typedef const simgrid::kernel::lmm::s_lmm_element_t* const_lmm_element_t;
 typedef simgrid::kernel::lmm::s_lmm_variable_t* lmm_variable_t;
 typedef simgrid::kernel::lmm::s_lmm_constraint_t* lmm_constraint_t;
 typedef simgrid::kernel::lmm::s_lmm_constraint_light_t* lmm_constraint_light_t;
index 153707a..a563fca 100644 (file)
@@ -62,7 +62,7 @@ void s_lmm_element_t::increase_concurrency()
              "Concurrency limit overflow!");
 }
 
-void s_lmm_system_t::check_concurrency()
+void s_lmm_system_t::check_concurrency() const
 {
   // These checks are very expensive, so do them only if we want to debug SURF LMM
   if (not XBT_LOG_ISENABLED(surf_maxmin, xbt_log_priority_debug))
@@ -351,7 +351,7 @@ void s_lmm_system_t::expand_add(lmm_constraint_t cnst, lmm_variable_t var, doubl
   check_concurrency();
 }
 
-lmm_variable_t s_lmm_constraint_t::get_variable(lmm_element_t* elem) const
+lmm_variable_t s_lmm_constraint_t::get_variable(const_lmm_element_t* elem) const
 {
   if (*elem == nullptr) {
     // That is the first call, pick the first element among enabled_element_set (or disabled_element_set if
@@ -378,7 +378,8 @@ lmm_variable_t s_lmm_constraint_t::get_variable(lmm_element_t* elem) const
 
 // if we modify the swag between calls, normal version may loop forever
 // this safe version ensures that we browse the swag elements only once
-lmm_variable_t s_lmm_constraint_t::get_variable_safe(lmm_element_t* elem, lmm_element_t* nextelem, int* numelem) const
+lmm_variable_t s_lmm_constraint_t::get_variable_safe(const_lmm_element_t* elem, const_lmm_element_t* nextelem,
+                                                     int* numelem) const
 {
   if (*elem == nullptr) {
     *elem    = (lmm_element_t)xbt_swag_getFirst(&enabled_element_set);
@@ -441,7 +442,7 @@ static inline void saturated_variable_set_update(s_lmm_constraint_light_t* cnst_
   }
 }
 
-static void format_lmm_element_swag(xbt_swag_t elem_list, int sharing_policy, double& sum, std::string& buf)
+static void format_lmm_element_swag(const_xbt_swag_t elem_list, int sharing_policy, double& sum, std::string& buf)
 {
   void* _elem;
   xbt_swag_foreach(_elem, elem_list)
@@ -456,13 +457,13 @@ static void format_lmm_element_swag(xbt_swag_t elem_list, int sharing_policy, do
   }
 }
 
-void s_lmm_system_t::print()
+void s_lmm_system_t::print() const
 {
   std::string buf = std::string("MAX-MIN ( ");
   void* _var;
 
   /* Printing Objective */
-  xbt_swag_t var_list = &variable_set;
+  const_xbt_swag_t var_list = &variable_set;
   xbt_swag_foreach(_var, var_list)
   {
     lmm_variable_t var = (lmm_variable_t)_var;
@@ -475,7 +476,7 @@ void s_lmm_system_t::print()
   XBT_DEBUG("Constraints");
   /* Printing Constraints */
   void* _cnst;
-  xbt_swag_t cnst_list = &active_constraint_set;
+  const_xbt_swag_t cnst_list = &active_constraint_set;
   xbt_swag_foreach(_cnst, cnst_list)
   {
     lmm_constraint_t cnst = (lmm_constraint_t)_cnst;
index 61f78ed..a691217 100644 (file)
@@ -273,7 +273,7 @@ public:
    * @param elem A element of constraint of the constraint or NULL
    * @return A variable associated to a constraint
    */
-  lmm_variable_t get_variable(lmm_element_t * elem) const;
+  lmm_variable_t get_variable(const_lmm_element_t* elem) const;
 
   /**
    * @brief Get a var associated to a constraint
@@ -283,7 +283,7 @@ public:
    * @param numelem parameter representing the number of elements to go
    * @return A variable associated to a constraint
    */
-  lmm_variable_t get_variable_safe(lmm_element_t * elem, lmm_element_t * nextelem, int* numelem) const;
+  lmm_variable_t get_variable_safe(const_lmm_element_t* elem, const_lmm_element_t* nextelem, int* numelem) const;
 
   /**
    * @brief Get the data associated to a constraint
@@ -512,7 +512,7 @@ public:
   int constraint_used(lmm_constraint_t cnst) { return xbt_swag_belongs(cnst, &active_constraint_set); }
 
   /** @brief Print the lmm system */
-  void print();
+  void print() const;
 
   /** @brief Solve the lmm system */
   void solve();
@@ -555,7 +555,7 @@ private:
 
   /** @brief Remove all constraints of the modified_constraint_set. */
   void remove_all_modified_set();
-  void check_concurrency();
+  void check_concurrency() const;
 
 public:
   bool modified;
index 36fbc73..bfa4e53 100644 (file)
@@ -104,7 +104,7 @@ bool CpuCas01::isUsed()
 /** @brief take into account changes of speed (either load or max) */
 void CpuCas01::onSpeedChange() {
   lmm_variable_t var = nullptr;
-  lmm_element_t elem = nullptr;
+  const_lmm_element_t elem = nullptr;
 
   model()->getMaxminSystem()->update_constraint_bound(constraint(), coresAmount_ * speed_.scale * speed_.peak);
   while ((var = constraint()->get_variable(&elem))) {
@@ -138,7 +138,7 @@ void CpuCas01::apply_event(tmgr_trace_event_t event, double value)
     } else {
       lmm_constraint_t cnst = constraint();
       lmm_variable_t var = nullptr;
-      lmm_element_t elem = nullptr;
+      const_lmm_element_t elem = nullptr;
       double date = surf_get_clock();
 
       turnOff();
index 66a838f..e7338e9 100644 (file)
@@ -380,7 +380,7 @@ void NetworkCm02Link::apply_event(tmgr_trace_event_t triggered, double value)
       turnOn();
     else {
       lmm_variable_t var = nullptr;
-      lmm_element_t elem = nullptr;
+      const_lmm_element_t elem = nullptr;
       double now = surf_get_clock();
 
       turnOff();
@@ -414,8 +414,8 @@ void NetworkCm02Link::setBandwidth(double value)
     double delta = sg_weight_S_parameter / value - sg_weight_S_parameter / (bandwidth_.peak * bandwidth_.scale);
 
     lmm_variable_t var;
-    lmm_element_t elem = nullptr;
-    lmm_element_t nextelem = nullptr;
+    const_lmm_element_t elem     = nullptr;
+    const_lmm_element_t nextelem = nullptr;
     int numelem = 0;
     while ((var = constraint()->get_variable_safe(&elem, &nextelem, &numelem))) {
       NetworkCm02Action* action = static_cast<NetworkCm02Action*>(var->get_id());
@@ -428,10 +428,10 @@ void NetworkCm02Link::setBandwidth(double value)
 
 void NetworkCm02Link::setLatency(double value)
 {
-  double delta           = value - latency_.peak;
-  lmm_variable_t var = nullptr;
-  lmm_element_t elem = nullptr;
-  lmm_element_t nextelem = nullptr;
+  double delta                 = value - latency_.peak;
+  lmm_variable_t var           = nullptr;
+  const_lmm_element_t elem     = nullptr;
+  const_lmm_element_t nextelem = nullptr;
   int numelem = 0;
 
   latency_.peak = value;
index 55c1e24..d94f6fb 100644 (file)
@@ -295,7 +295,7 @@ bool CpuL07::isUsed(){
 /** @brief take into account changes of speed (either load or max) */
 void CpuL07::onSpeedChange() {
   lmm_variable_t var = nullptr;
-  lmm_element_t elem = nullptr;
+  const_lmm_element_t elem = nullptr;
 
   model()->getMaxminSystem()->update_constraint_bound(constraint(), speed_.peak * speed_.scale);
   while ((var = constraint()->get_variable(&elem))) {
@@ -365,7 +365,7 @@ void LinkL07::setLatency(double value)
 {
   lmm_variable_t var = nullptr;
   L07Action *action;
-  lmm_element_t elem = nullptr;
+  const_lmm_element_t elem = nullptr;
 
   latency_.peak = value;
   while ((var = constraint()->get_variable(&elem))) {