Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add comment for workaround.
[simgrid.git] / src / kernel / lmm / bmf.hpp
index c4f1f55..55ed108 100644 (file)
@@ -7,7 +7,17 @@
 #define SIMGRID_KERNEL_LMM_BMF_HPP
 
 #include "src/kernel/lmm/System.hpp"
+
+#ifdef __clang__
+// Ignore deprecation warnings with Eigen < 4.0 (see https://gitlab.com/libeigen/eigen/-/issues/1850)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#endif
 #include <Eigen/Dense>
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
 #include <unordered_set>
 
 namespace simgrid {
@@ -92,6 +102,14 @@ private:
    * @return Actual resource capacity
    */
   double get_resource_capacity(int resource, const std::vector<int>& bounded_players) const;
+  /**
+   * @brief Get maxmin share of the resource
+   *
+   * @param resource Internal index of resource in C_ vector
+   * @param bounded_players List of players that are externally bounded
+   * @return maxmin share
+   */
+  double get_maxmin_share(int resource, const std::vector<int>& bounded_players) const;
   /**
    * @brief Auxiliary method to get list of bounded player from allocation
    *
@@ -178,7 +196,6 @@ private:
 
   std::set<std::vector<int>> allocations_; //!< set of already tested allocations, since last identified loop
   AllocationGenerator gen_;
-  std::vector<int> allocations_age_;
   static constexpr int NO_RESOURCE = -1;                    //!< flag to indicate player has selected no resource
   int max_iteration_;                                       //!< number maximum of iterations of BMF algorithm
 };
@@ -260,7 +277,6 @@ private:
 
   std::unordered_map<int, Variable*> idx2Var_; //!< Map player index (and position in matrices) to system's variable
   std::unordered_map<const Constraint*, int> cnst2idx_; //!< Conversely map constraint to index
-  bool warned_nonlinear_ = false;
 };
 
 } // namespace lmm