+ //These checks are very expensive, so do them only if we want to debug SURF LMM
+ if (XBT_LOG_ISENABLED(surf_maxmin, xbt_log_priority_debug)) {
+
+ xbt_swag_foreach(_cnst, &(sys->constraint_set)) {
+ cnst = (lmm_constraint_t) _cnst;
+ concurrency=0;
+ if(cnst->concurrency_limit<0)
+ continue;
+ xbt_swag_foreach(_elem, &(cnst->element_set)) {
+ elem = (lmm_element_t)_elem;
+ if (elem->variable->weight > 0)
+ concurrency++;
+ else {
+ //We should have staged variables only if conccurency is reached in some constraint
+ xbt_assert(cnst->concurrency_limit<0 || elem->variable->staged_weight==0 || lmm_cnstrs_min_concurrency_slack(elem->variable) < elem->variable->concurrency_share,"should not have staged variable!");
+ }
+ }
+ xbt_assert(cnst->concurrency_limit<0 || cnst->concurrency_limit >= concurrency,"concurrency check failed!");
+ xbt_assert(cnst->concurrency_current == concurrency, "concurrency_current is out-of-date!");
+ }
+
+ }
+}