                 expr->sup_coeff[i] = 0.0;
                 double tmp1, tmp2;
                 elina_double_interval_mul(&tmp1, &tmp2, old_inf_coeff, old_sup_coeff, 0, ub);
-                expr->inf_cst = expr->inf_cst - tmp2;
-                expr->sup_cst = expr->sup_cst + tmp2;
+                atomicAdd(&expr->inf_cst, -tmp2);
+                atomicAdd(&expr->sup_cst, tmp2);
             }
         }
     }

                elina_double_interval_mul_expr_coeff(&expr->inf_coeff[i], &expr->sup_coeff[i], lambda_inf, lambda_sup, old_inf_coeff, old_sup_coeff);
                double tmp1, tmp2;
                elina_double_interval_mul_cst_coeff(&tmp1, &tmp2, mu_inf, mu_sup, old_inf_coeff, old_sup_coeff);
                expr->inf_cst = expr->inf_cst + tmp1 + min_denormal;
                expr->sup_cst = expr->sup_cst + tmp2 + min_denormal;
            }
            else if (old_inf_coeff < 0)
            {

                expr->sup_coeff[i] = 0.0;
                double tmp1, tmp2;
                elina_double_interval_mul(&tmp1, &tmp2, old_inf_coeff, old_sup_coeff, 0, ub);
                atomicAdd(&expr->inf_cst, tmp1);
                atomicAdd(&expr->sup_cst, -tmp1);
            }
        }
    }
