+/**
+ * @brief Add value to the coefficient between a constraint and a variable or
+ * create one
+ *
+ * @param sys A system
+ * @param cnst A constraint
+ * @param var A variable
+ * @param value The value to add to the coefficient associated to the variable in the constraint
+ */
+XBT_PUBLIC(void) lmm_expand_add(lmm_system_t sys, lmm_constraint_t cnst,
+ lmm_variable_t var, double value);
+
+/**
+ * @brief Get the numth constraint associated to the variable
+ *
+ * @param sys The system associated to the variable (not used)
+ * @param var A variable
+ * @param num The rank of constraint we want to get
+ * @return The numth constraint
+ */
+XBT_PUBLIC(lmm_constraint_t) lmm_get_cnst_from_var(lmm_system_t sys,
+ lmm_variable_t var, int num);
+
+/**
+ * @brief Get the weigth of the numth constraint associated to the variable
+ *
+ * @param sys The system associated to the variable (not used)
+ * @param var A variable
+ * @param num The rank of constraint we want to get
+ * @return The numth constraint
+ */
+XBT_PUBLIC(double) lmm_get_cnst_weight_from_var(lmm_system_t sys, lmm_variable_t var,
+ int num);
+
+/**
+ * @brief Get the number of constraint associated to a variable
+ *
+ * @param sys The system associated to the variable (not used)
+ * @param var A variable
+ * @return The number of constraint associated to the variable
+ */
+XBT_PUBLIC(int) lmm_get_number_of_cnst_from_var(lmm_system_t sys, lmm_variable_t var);
+
+/**
+ * @brief Get a var associated to a constraint
+ * @details Get the first variable of the next variable of elem if elem is not NULL
+ *
+ * @param sys The system associated to the variable (not used)
+ * @param cnst A constraint
+ * @param elem A element of constraint of the constraint or NULL
+ * @return A variable associated to a constraint
+ */
+XBT_PUBLIC(lmm_variable_t) lmm_get_var_from_cnst(lmm_system_t sys,
+ lmm_constraint_t cnst,
+ lmm_element_t * elem);
+
+/**
+ * @brief Get a var associated to a constraint
+ * @details Get the first variable of the next variable of elem if elem is not NULL
+ *
+ * @param cnst A constraint
+ * @param elem A element of constraint of the constraint or NULL
+ * @param nextelem A element of constraint of the constraint or NULL, the one after elem
+ * @param numelem parameter representing the number of elements to go
+ *
+ * @return A variable associated to a constraint
+ */
+XBT_PUBLIC(lmm_variable_t) lmm_get_var_from_cnst_safe(lmm_system_t /*sys*/,
+ lmm_constraint_t cnst,
+ lmm_element_t * elem,
+ lmm_element_t * nextelem,
+ int * numelem);
+
+/**
+ * @brief Get the first active constraint of a system
+ *
+ * @param sys A system
+ * @return The first active constraint
+ */
+XBT_PUBLIC(lmm_constraint_t) lmm_get_first_active_constraint(lmm_system_t sys);
+
+/**
+ * @brief Get the next active constraint of a constraint in a system
+ *
+ * @param sys A system
+ * @param cnst An active constraint of the system
+ *
+ * @return The next active constraint
+ */
+XBT_PUBLIC(lmm_constraint_t) lmm_get_next_active_constraint(lmm_system_t sys,
+ lmm_constraint_t cnst);
+
+#ifdef HAVE_LATENCY_BOUND_TRACKING
+XBT_PUBLIC(int) lmm_is_variable_limited_by_latency(lmm_variable_t var);
+#endif