+ /* Printing Constraints */
+ cnst_list = &(sys->active_constraint_set);
+ xbt_swag_foreach(cnst, cnst_list) {
+ sum=0.0;
+ elem_list = &(cnst->element_set);
+ sprintf(print_buf,"\t");
+ trace_buf = xbt_realloc(trace_buf,strlen(trace_buf)+strlen(print_buf)+1);
+ strcat(trace_buf, print_buf);
+ xbt_swag_foreach(elem, elem_list) {
+ sprintf(print_buf,"%f.'%p'(%f) + ",elem->value,
+ elem->variable,elem->variable->value);
+ trace_buf = xbt_realloc(trace_buf,strlen(trace_buf)+strlen(print_buf)+1);
+ strcat(trace_buf, print_buf);
+ sum += elem->value * elem->variable->value;
+ }
+ sprintf(print_buf,"0 <= %f ('%p')",cnst->bound,cnst);
+ trace_buf = xbt_realloc(trace_buf,strlen(trace_buf)+strlen(print_buf)+1);
+ strcat(trace_buf, print_buf);
+
+ if(!cnst->shared) {
+ sprintf(print_buf," [MAX-Constraint]");
+ trace_buf = xbt_realloc(trace_buf,strlen(trace_buf)+strlen(print_buf)+1);
+ strcat(trace_buf, print_buf);
+ }
+ DEBUG1("%s",trace_buf);
+ trace_buf[0]='\000';
+ xbt_assert3(!double_positive(sum-cnst->bound), "Incorrect value (%f is not smaller than %f): %g",
+ sum,cnst->bound,sum-cnst->bound);
+ }
+
+ /* Printing Result */
+ xbt_swag_foreach(var, var_list) {
+ if(var->bound>0) {
+ DEBUG4("'%p'(%f) : %f (<=%f)",var,var->weight,var->value, var->bound);
+ xbt_assert2(!double_positive(var->value-var->bound), "Incorrect value (%f is not smaller than %f",
+ var->value, var->bound);
+ }
+ else
+ DEBUG3("'%p'(%f) : %f",var,var->weight,var->value);
+ }
+
+ free(trace_buf);