From ba4c17319eb812cee7e2e9b3de8c60580d37e616 Mon Sep 17 00:00:00 2001 From: navarro Date: Thu, 3 May 2012 19:15:46 +0200 Subject: [PATCH 1/1] A priori, no need to propagate modifications when the variable has no impact on the constraint. --- src/surf/maxmin.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/surf/maxmin.c b/src/surf/maxmin.c index 047004309e..743bd013cf 100644 --- a/src/surf/maxmin.c +++ b/src/surf/maxmin.c @@ -267,11 +267,14 @@ void lmm_expand(lmm_system_t sys, lmm_constraint_t cnst, xbt_swag_insert_at_head(elem, &(elem->constraint->element_set)); else xbt_swag_insert_at_tail(elem, &(elem->constraint->element_set)); - - make_constraint_active(sys, cnst); - lmm_update_modified_set(sys, cnst); - if (var->cnsts_number > 1) - lmm_update_modified_set(sys, var->cnsts[0].constraint); + if(!sys->selective_update_active) { + make_constraint_active(sys, cnst); + } else if(elem->value>0 || var->weight >0) { + make_constraint_active(sys, cnst); + lmm_update_modified_set(sys, cnst); + if (var->cnsts_number > 1) + lmm_update_modified_set(sys, var->cnsts[0].constraint); + } } void lmm_expand_add(lmm_system_t sys, lmm_constraint_t cnst, -- 2.20.1