#include <cmath>
#include <limits>
#include <memory>
+#include <string_view>
#include <vector>
-namespace simgrid {
-namespace kernel {
-namespace lmm {
+namespace simgrid::kernel::lmm {
/** @addtogroup SURF_lmm
* @details
/** @brief Get the usage of the constraint after the last lmm solve */
double get_usage() const;
- int get_variable_amount() const;
/** @brief Sets the concurrency limit for this constraint */
void set_concurrency_limit(int limit)
* @param selective_update Enables lazy updates
* @return pointer to System instance
*/
- static System* build(const std::string& solver_name, bool selective_update);
+ static System* build(std::string_view solver_name, bool selective_update);
/** @brief Validates solver configuration */
static void validate_solver(const std::string& solver_name);
* @param cnst A constraint
* @param var A variable
* @param value The coefficient associated to the variable in the constraint
+ * @param force_creation Force the creation of new element linking the variable to the constraint. Should be used only
+ * by the model ptask_L07 to cope with ptasks composed of flows running on the same resource (see
+ * https://framagit.org/simgrid/simgrid/-/issues/111)
*/
- void expand(Constraint * cnst, Variable * var, double value);
+ void expand(Constraint* cnst, Variable* var, double value, bool force_creation = false);
/** @brief Update the bound of a variable */
void update_variable_bound(Variable * var, double bound);
};
/** @} */
-} // namespace lmm
-} // namespace kernel
-} // namespace simgrid
+} // namespace simgrid::kernel::lmm
#endif