Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Rename simgrid::kernel::lmm::lmm_set_default_protocol_function -> set_default_protoco...
[simgrid.git] / src / kernel / lmm / maxmin.hpp
index 3deb516..608d6f4 100644 (file)
@@ -145,9 +145,9 @@ XBT_PUBLIC(void) bottleneck_solve(lmm_system_t sys);
 /** Default functions associated to the chosen protocol. When using the lagrangian approach. */
 
 XBT_PUBLIC(void)
-lmm_set_default_protocol_function(double (*func_f)(const Variable& var, double x),
-                                  double (*func_fp)(const Variable& var, double x),
-                                  double (*func_fpi)(const Variable& var, double x));
+set_default_protocol_function(double (*func_f)(const Variable& var, double x),
+                              double (*func_fp)(const Variable& var, double x),
+                              double (*func_fpi)(const Variable& var, double x));
 
 XBT_PUBLIC(double) func_reno_f(const Variable& var, double x);
 XBT_PUBLIC(double) func_reno_fp(const Variable& var, double x);
@@ -168,7 +168,7 @@ XBT_PUBLIC(double) func_vegas_fpi(const Variable& var, double x);
  * Then, it is used to list all variables involved in constraint through constraint's xxx_element_set lists, or
  * vice-versa list all constraints for a given variable.
  */
-XBT_PUBLIC_CLASS s_lmm_element_t
+XBT_PUBLIC_CLASS Element
 {
 public:
   int get_concurrency() const;
@@ -192,7 +192,7 @@ public:
   double consumption_weight;
 };
 
-struct s_lmm_constraint_light_t {
+struct ConstraintLight {
   double remaining_over_usage;
   lmm_constraint_t cnst;
 };
@@ -206,11 +206,11 @@ struct s_lmm_constraint_light_t {
  * \li Active elements which variable's weight is non-zero (i.e. it is enabled) AND its element value is non-zero.
  *     LMM_solve iterates over active elements during resolution, dynamically making them active or unactive.
  */
-XBT_PUBLIC_CLASS s_lmm_constraint_t
+XBT_PUBLIC_CLASS Constraint
 {
 public:
-  s_lmm_constraint_t() = default;
-  s_lmm_constraint_t(void* id_value, double bound_value);
+  Constraint() = default;
+  Constraint(void* id_value, double bound_value);
 
   /** @brief Unshare a constraint. */
   void unshare() { sharing_policy = 0; }
@@ -297,17 +297,14 @@ public:
   boost::intrusive::list_member_hook<> active_constraint_set_hook;
   boost::intrusive::list_member_hook<> modified_constraint_set_hook;
   boost::intrusive::list_member_hook<> saturated_constraint_set_hook;
-  boost::intrusive::list<s_lmm_element_t,
-                         boost::intrusive::member_hook<s_lmm_element_t, boost::intrusive::list_member_hook<>,
-                                                       &s_lmm_element_t::enabled_element_set_hook>>
+  boost::intrusive::list<Element, boost::intrusive::member_hook<Element, boost::intrusive::list_member_hook<>,
+                                                                &Element::enabled_element_set_hook>>
       enabled_element_set;
-  boost::intrusive::list<s_lmm_element_t,
-                         boost::intrusive::member_hook<s_lmm_element_t, boost::intrusive::list_member_hook<>,
-                                                       &s_lmm_element_t::disabled_element_set_hook>>
+  boost::intrusive::list<Element, boost::intrusive::member_hook<Element, boost::intrusive::list_member_hook<>,
+                                                                &Element::disabled_element_set_hook>>
       disabled_element_set;
-  boost::intrusive::list<s_lmm_element_t,
-                         boost::intrusive::member_hook<s_lmm_element_t, boost::intrusive::list_member_hook<>,
-                                                       &s_lmm_element_t::active_element_set_hook>>
+  boost::intrusive::list<Element, boost::intrusive::member_hook<Element, boost::intrusive::list_member_hook<>,
+                                                                &Element::active_element_set_hook>>
       active_element_set;
   double remaining;
   double usage;
@@ -404,7 +401,7 @@ public:
   boost::intrusive::list_member_hook<> variable_set_hook;
   boost::intrusive::list_member_hook<> saturated_variable_set_hook;
 
-  std::vector<s_lmm_element_t> cnsts;
+  std::vector<Element> cnsts;
 
   // sharing_weight: variable's impact on the resource during the sharing
   //   if == 0, the variable is not considered by LMM
@@ -419,7 +416,7 @@ public:
   short int concurrency_share; /* The maximum number of elements that variable will add to a constraint */
   simgrid::surf::Action* id;
   int id_int;
-  unsigned visited; /* used by lmm_update_modified_set */
+  unsigned visited; /* used by System::update_modified_set() */
   /* \begin{For Lagrange only} */
   double mu;
   double new_mu;
@@ -432,11 +429,11 @@ private:
   static int Global_debug_id;
 };
 
-inline void s_lmm_element_t::make_active()
+inline void Element::make_active()
 {
   constraint->active_element_set.push_front(*this);
 }
-inline void s_lmm_element_t::make_inactive()
+inline void Element::make_inactive()
 {
   if (active_element_set_hook.is_linked())
     simgrid::xbt::intrusive_erase(constraint->active_element_set, *this);
@@ -445,16 +442,16 @@ inline void s_lmm_element_t::make_inactive()
 /**
  * @brief LMM system
  */
-XBT_PUBLIC_CLASS s_lmm_system_t
+XBT_PUBLIC_CLASS System
 {
 public:
   /**
    * @brief Create a new Linear MaxMim system
    * @param selective_update whether we should do lazy updates
    */
-  explicit s_lmm_system_t(bool selective_update);
+  explicit System(bool selective_update);
   /** @brief Free an existing Linear MaxMin system */
-  ~s_lmm_system_t();
+  ~System();
 
   /**
    * @brief Create a new Linear MaxMin constraint
@@ -596,16 +593,14 @@ public:
   boost::intrusive::list<Variable, boost::intrusive::member_hook<Variable, boost::intrusive::list_member_hook<>,
                                                                  &Variable::variable_set_hook>>
       variable_set;
-  boost::intrusive::list<s_lmm_constraint_t,
-                         boost::intrusive::member_hook<s_lmm_constraint_t, boost::intrusive::list_member_hook<>,
-                                                       &s_lmm_constraint_t::active_constraint_set_hook>>
+  boost::intrusive::list<Constraint, boost::intrusive::member_hook<Constraint, boost::intrusive::list_member_hook<>,
+                                                                   &Constraint::active_constraint_set_hook>>
       active_constraint_set;
   boost::intrusive::list<Variable, boost::intrusive::member_hook<Variable, boost::intrusive::list_member_hook<>,
                                                                  &Variable::saturated_variable_set_hook>>
       saturated_variable_set;
-  boost::intrusive::list<s_lmm_constraint_t,
-                         boost::intrusive::member_hook<s_lmm_constraint_t, boost::intrusive::list_member_hook<>,
-                                                       &s_lmm_constraint_t::saturated_constraint_set_hook>>
+  boost::intrusive::list<Constraint, boost::intrusive::member_hook<Constraint, boost::intrusive::list_member_hook<>,
+                                                                   &Constraint::saturated_constraint_set_hook>>
       saturated_constraint_set;
 
   simgrid::surf::ActionLmmListPtr keep_track;
@@ -614,15 +609,13 @@ public:
 
 private:
   bool selective_update_active; /* flag to update partially the system only selecting changed portions */
-  unsigned visited_counter;     /* used by lmm_update_modified_set and lmm_remove_modified_set to cleverly (un-)flag the
-                                 * constraints (more details in these functions) */
-  boost::intrusive::list<s_lmm_constraint_t,
-                         boost::intrusive::member_hook<s_lmm_constraint_t, boost::intrusive::list_member_hook<>,
-                                                       &s_lmm_constraint_t::constraint_set_hook>>
+  unsigned visited_counter;     /* used by System::update_modified_set() and System::remove_all_modified_set() to
+                                 * cleverly (un-)flag the constraints (more details in these functions) */
+  boost::intrusive::list<Constraint, boost::intrusive::member_hook<Constraint, boost::intrusive::list_member_hook<>,
+                                                                   &Constraint::constraint_set_hook>>
       constraint_set;
-  boost::intrusive::list<s_lmm_constraint_t,
-                         boost::intrusive::member_hook<s_lmm_constraint_t, boost::intrusive::list_member_hook<>,
-                                                       &s_lmm_constraint_t::modified_constraint_set_hook>>
+  boost::intrusive::list<Constraint, boost::intrusive::member_hook<Constraint, boost::intrusive::list_member_hook<>,
+                                                                   &Constraint::modified_constraint_set_hook>>
       modified_constraint_set;
   xbt_mallocator_t variable_mallocator;
 };