Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Bug fix. I wonder how this function may have ever worked...
[simgrid.git] / testsuite / surf / lmm_usage.c
index 935c9fa..c44fe71 100644 (file)
@@ -17,8 +17,6 @@
 #include "xbt/module.h"
 #include <math.h>
 
-
-
 XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test,
                             "Messages specific for surf example");
 
@@ -56,26 +54,36 @@ static double dichotomy(double func(double), double min, double max,
   if ((min_func > 0 && max_func < 0))
     abort();
 
+  SHOW_EXPR(min_error);
+
   while (overall_error > min_error) {
+    SHOW_EXPR(overall_error);
     if ((min_func > 0 && max_func > 0) ||
        (min_func < 0 && max_func < 0) || (min_func > 0 && max_func < 0)) {
       abort();
     }
 
+    SHOW_EXPR(min);
+    SHOW_EXPR(min_func);
+    SHOW_EXPR(max);
+    SHOW_EXPR(max_func);
+
     middle = (max + min) / 2.0;
     if ((min == middle) || (max == middle)) {
       break;
     }
     middle_func = func(middle);
+    SHOW_EXPR(middle);
+    SHOW_EXPR(middle_func);
 
     if (middle_func < 0) {
       min = middle;
       min_func = middle_func;
-      overall_error = max - middle_func;
+      overall_error = max_func - middle_func;
     } else if (middle_func > 0) {
       max = middle;
       max_func = middle_func;
-      overall_error = max - middle_func;
+      overall_error = middle_func-min_func;
     } else {
       overall_error = 0;
     }
@@ -189,7 +197,7 @@ void test1(method_t method)
 
     a_test_1 = a;
     b_test_1 = b;
-    x = dichotomy(diff_lagrange_test_1, 0, a, 1e-8);
+    x = dichotomy(diff_lagrange_test_1, 0, a, 1e-13);
 
     if (x < 0)
       x = 0;
@@ -308,12 +316,12 @@ void test3(method_t method)
 
     1, 1, 1, 1, 1
   };
-
-  A = (double **) calloc(links + 5, sizeof(double));
+       
+  /*A = xbt_new0(double*, links + 5);*/
+  A = xbt_new0(double*, links + 5);
 
   for (i = 0; i < links + 5; i++) {
-    A[i] = (double *) calloc(flows + 5, sizeof(double));
-
+    A[i] = xbt_new0(double, flows + 5);
     for (j = 0; j < flows + 5; j++) {
       A[i][j] = 0.0;
 
@@ -404,17 +412,14 @@ void test3(method_t method)
 
 
 
-  tmp_name = (char **) calloc(31, sizeof(char *));
-  for (i = 0; i < 31; i++) {
-    tmp_name[i] = (char *) calloc(10, sizeof(char));
-  }
+  tmp_name = xbt_new0(char *,31);
 
   /*
    * Creates the constraints
    */
-  tmp_cnst = calloc(15, sizeof(lmm_constraint_t));
+  tmp_cnst = xbt_new0(lmm_constraint_t,15);
   for (i = 0; i < 15; i++) {
-    sprintf(tmp_name[i], "C_%03d", i);
+    tmp_name[i] = bprintf("C_%03d", i);
     tmp_cnst[i] = lmm_constraint_new(Sys, (void *) tmp_name[i], B[i]);
   }
 
@@ -422,9 +427,9 @@ void test3(method_t method)
   /*
    * Creates the variables
    */
-  tmp_var = calloc(16, sizeof(lmm_variable_t));
+  tmp_var = xbt_new0(lmm_variable_t,16);
   for (j = 0; j < 16; j++) {
-    sprintf(tmp_name[i + j], "X_%03d", j);
+    tmp_name[i + j] = bprintf("X_%03d", j);
     tmp_var[j] =
        lmm_variable_new(Sys, (void *) tmp_name[i + j], 1.0, -1.0, 15);
     lmm_update_variable_latency(Sys, tmp_var[j], 1.0);
@@ -475,62 +480,40 @@ int main(int argc, char **argv)
 {
   xbt_init(&argc, argv);
 
-
-  DEBUG0("**************************** ");
-  DEBUG0("*****                  ***** ");
-  DEBUG0("*****      TEST 1      ***** ");
-  DEBUG0("*****                  ***** ");
-  DEBUG0("**************************** ");
-
-
-  DEBUG0("***** Test 1 (Max-Min) ***** ");
+  INFO0("***** Test 1 (Max-Min)");
   test1(MAXMIN);
 #ifdef HAVE_SDP
-  DEBUG0("***** Test 1 (SDP) ***** ");
+  INFO0("***** Test 1 (SDP)");
   test1(SDP);
 #endif
-  DEBUG0("***** Test 1 (Lagrange - Vegas) ***** ");
+  INFO0("***** Test 1 (Lagrange - Vegas)");
   test1(LAGRANGE_VEGAS);
-  DEBUG0("***** Test 1 (Lagrange - Reno) ***** ");
+  INFO0("***** Test 1 (Lagrange - Reno)");
   test1(LAGRANGE_RENO);
 
-
-  DEBUG0("**************************** ");
-  DEBUG0("*****                  ***** ");
-  DEBUG0("*****      TEST 2      ***** ");
-  DEBUG0("*****                  ***** ");
-  DEBUG0("**************************** ");
-
-
-  DEBUG0("***** Test 2 (Max-Min) ***** ");
+   
+   
+  INFO0("***** Test 2 (Max-Min)");
   test2(MAXMIN);
 #ifdef HAVE_SDP
-  DEBUG0("***** Test 2 (SDP) ***** ");
+  INFO0("***** Test 2 (SDP)");
   test2(SDP);
 #endif
-  DEBUG0("***** Test 2 (Lagrange - Vegas) ***** ");
+  INFO0("***** Test 2 (Lagrange - Vegas)");
   test2(LAGRANGE_VEGAS);
-  DEBUG0("***** Test 2 (Lagrange - Reno) ***** ");
+  INFO0("***** Test 2 (Lagrange - Reno)");
   test2(LAGRANGE_RENO);
 
 
-
-  DEBUG0("**************************** ");
-  DEBUG0("*****                  ***** ");
-  DEBUG0("*****      TEST 3      ***** ");
-  DEBUG0("*****                  ***** ");
-  DEBUG0("**************************** ");
-
-
-  DEBUG0("***** Test 3 (Max-Min) ***** ");
+  INFO0("***** Test 3 (Max-Min)");
   test3(MAXMIN);
 #ifdef HAVE_SDP
-  DEBUG0("***** Test 3 (SDP) ***** ");
+  INFO0("***** Test 3 (SDP)");
   test3(SDP);
 #endif
-  DEBUG0("***** Test 3 (Lagrange - Vegas) ***** ");
+  INFO0("***** Test 3 (Lagrange - Vegas)");
   test3(LAGRANGE_VEGAS);
-  DEBUG0("***** Test 3 (Lagrange - Reno) ***** ");
+  INFO0("***** Test 3 (Lagrange - Reno)");
   test3(LAGRANGE_RENO);
 
   return 0;