X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cc5b5b9677debbad591cd039172d7a07cba48211..0d17d68ef25921dbdfde20b85e0a1de773ca263e:/testsuite/surf/lmm_usage.c diff --git a/testsuite/surf/lmm_usage.c b/testsuite/surf/lmm_usage.c index 5ae7e20a4d..586cd8c902 100644 --- a/testsuite/surf/lmm_usage.c +++ b/testsuite/surf/lmm_usage.c @@ -1,8 +1,7 @@ -/* $Id$ */ - /* A few tests for the maxmin library */ -/* Copyright (c) 2004 Arnaud Legrand. All rights reserved. */ +/* Copyright (c) 2007, 2008, 2009, 2010. The SimGrid Team. + * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -17,10 +16,11 @@ #include "xbt/module.h" #include -XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test, "Messages specific for surf example"); +XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test, + "Messages specific for surf example"); -#define PRINT_VAR(var) DEBUG1(#var " = %g",lmm_variable_getvalue(var)); -#define SHOW_EXPR(expr) DEBUG1(#expr " = %g",expr); +#define PRINT_VAR(var) XBT_DEBUG(#var " = %g",lmm_variable_getvalue(var)); +#define SHOW_EXPR(expr) XBT_DEBUG(#expr " = %g",expr); /* */ /* ______ */ @@ -152,7 +152,7 @@ void test1(method_t method) lmm_solve(Sys); } else if (method == LAGRANGE_VEGAS) { double x = 3 * a / 4 - 3 * b / 8 + - sqrt(9 * b * b + 4 * a * a - 4 * a * b) / 8; + sqrt(9 * b * b + 4 * a * a - 4 * a * b) / 8; /* Computed with mupad and D_f=1.0 */ double max_deviation = 0.0; if (x > a) { @@ -164,23 +164,25 @@ void test1(method_t method) lagrange_solve(Sys); - max_deviation = MAX(max_deviation, fabs(lmm_variable_getvalue(R_1) - x)); - max_deviation = MAX(max_deviation, fabs(lmm_variable_getvalue(R_3) - x)); max_deviation = - MAX(max_deviation, fabs(lmm_variable_getvalue(R_2) - (b - a + x))); + MAX(max_deviation, fabs(lmm_variable_getvalue(R_1) - x)); + max_deviation = + MAX(max_deviation, fabs(lmm_variable_getvalue(R_3) - x)); + max_deviation = + MAX(max_deviation, fabs(lmm_variable_getvalue(R_2) - (b - a + x))); max_deviation = - MAX(max_deviation, fabs(lmm_variable_getvalue(R_1_2_3) - (a - x))); + MAX(max_deviation, fabs(lmm_variable_getvalue(R_1_2_3) - (a - x))); if (max_deviation > MAXMIN_PRECISION) { - WARN1("Max Deviation from optimal solution : %g", max_deviation); - WARN1("Found x = %1.20f", x); - WARN2("Deviation from optimal solution (R_1 = %g): %1.20f", x, + XBT_WARN("Max Deviation from optimal solution : %g", max_deviation); + XBT_WARN("Found x = %1.20f", x); + XBT_WARN("Deviation from optimal solution (R_1 = %g): %1.20f", x, lmm_variable_getvalue(R_1) - x); - WARN2("Deviation from optimal solution (R_2 = %g): %1.20f", + XBT_WARN("Deviation from optimal solution (R_2 = %g): %1.20f", b - a + x, lmm_variable_getvalue(R_2) - (b - a + x)); - WARN2("Deviation from optimal solution (R_3 = %g): %1.20f", x, + XBT_WARN("Deviation from optimal solution (R_3 = %g): %1.20f", x, lmm_variable_getvalue(R_3) - x); - WARN2("Deviation from optimal solution (R_1_2_3 = %g): %1.20f", + XBT_WARN("Deviation from optimal solution (R_1_2_3 = %g): %1.20f", a - x, lmm_variable_getvalue(R_1_2_3) - (a - x)); } } else if (method == LAGRANGE_RENO) { @@ -197,27 +199,29 @@ void test1(method_t method) x = a; lagrange_solve(Sys); - max_deviation = MAX(max_deviation, fabs(lmm_variable_getvalue(R_1) - x)); - max_deviation = MAX(max_deviation, fabs(lmm_variable_getvalue(R_3) - x)); max_deviation = - MAX(max_deviation, fabs(lmm_variable_getvalue(R_2) - (b - a + x))); + MAX(max_deviation, fabs(lmm_variable_getvalue(R_1) - x)); + max_deviation = + MAX(max_deviation, fabs(lmm_variable_getvalue(R_3) - x)); + max_deviation = + MAX(max_deviation, fabs(lmm_variable_getvalue(R_2) - (b - a + x))); max_deviation = - MAX(max_deviation, fabs(lmm_variable_getvalue(R_1_2_3) - (a - x))); + MAX(max_deviation, fabs(lmm_variable_getvalue(R_1_2_3) - (a - x))); if (max_deviation > MAXMIN_PRECISION) { - WARN1("Max Deviation from optimal solution : %g", max_deviation); - WARN1("Found x = %1.20f", x); - WARN2("Deviation from optimal solution (R_1 = %g): %1.20f", x, + XBT_WARN("Max Deviation from optimal solution : %g", max_deviation); + XBT_WARN("Found x = %1.20f", x); + XBT_WARN("Deviation from optimal solution (R_1 = %g): %1.20f", x, lmm_variable_getvalue(R_1) - x); - WARN2("Deviation from optimal solution (R_2 = %g): %1.20f", + XBT_WARN("Deviation from optimal solution (R_2 = %g): %1.20f", b - a + x, lmm_variable_getvalue(R_2) - (b - a + x)); - WARN2("Deviation from optimal solution (R_3 = %g): %1.20f", x, + XBT_WARN("Deviation from optimal solution (R_3 = %g): %1.20f", x, lmm_variable_getvalue(R_3) - x); - WARN2("Deviation from optimal solution (R_1_2_3 = %g): %1.20f", + XBT_WARN("Deviation from optimal solution (R_1_2_3 = %g): %1.20f", a - x, lmm_variable_getvalue(R_1_2_3) - (a - x)); } } else { - xbt_assert0(0, "Invalid method"); + xbt_die( "Invalid method"); } PRINT_VAR(R_1_2_3); @@ -269,7 +273,7 @@ void test2(method_t method) } else if (method == LAGRANGE_RENO) { lagrange_solve(Sys); } else { - xbt_assert0(0, "Invalid method"); + xbt_die("Invalid method"); } PRINT_VAR(T1); @@ -303,7 +307,6 @@ void test3(method_t method) 1, 1, 1, 1, 1 }; - /*A = xbt_new0(double*, links + 5); */ A = xbt_new0(double *, links + 5); for (i = 0; i < links + 5; i++) { @@ -417,7 +420,7 @@ void test3(method_t method) for (j = 0; j < 16; 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_variable_new(Sys, (void *) tmp_name[i + j], 1.0, -1.0, 15); lmm_update_variable_weight(Sys, tmp_var[j], 1.0); } @@ -441,17 +444,22 @@ void test3(method_t method) } else if (method == LAGRANGE_RENO) { lagrange_solve(Sys); } else { - xbt_assert0(0, "Invalid method"); + xbt_die("Invalid method"); } for (j = 0; j < 16; j++) { PRINT_VAR(tmp_var[j]); } - free(tmp_var); - free(tmp_cnst); - free(tmp_name); + xbt_free(tmp_var); + xbt_free(tmp_cnst); + for (i = 0; i < 31; i++) + xbt_free(tmp_name[i]); + xbt_free(tmp_name); lmm_system_free(Sys); + for (i = 0; i < links + 5; i++) + xbt_free(A[i]); + xbt_free(A); } #ifdef __BORLANDC__ @@ -462,30 +470,29 @@ int main(int argc, char **argv) { xbt_init(&argc, argv); - INFO0("***** Test 1 (Max-Min)"); + XBT_INFO("***** Test 1 (Max-Min)"); test1(MAXMIN); - INFO0("***** Test 1 (Lagrange - Vegas)"); + XBT_INFO("***** Test 1 (Lagrange - Vegas)"); test1(LAGRANGE_VEGAS); - INFO0("***** Test 1 (Lagrange - Reno)"); + XBT_INFO("***** Test 1 (Lagrange - Reno)"); test1(LAGRANGE_RENO); - INFO0("***** Test 2 (Max-Min)"); + XBT_INFO("***** Test 2 (Max-Min)"); test2(MAXMIN); - INFO0("***** Test 2 (Lagrange - Vegas)"); + XBT_INFO("***** Test 2 (Lagrange - Vegas)"); test2(LAGRANGE_VEGAS); - INFO0("***** Test 2 (Lagrange - Reno)"); + XBT_INFO("***** Test 2 (Lagrange - Reno)"); test2(LAGRANGE_RENO); - INFO0("***** Test 3 (Max-Min)"); + XBT_INFO("***** Test 3 (Max-Min)"); test3(MAXMIN); - INFO0("***** Test 3 (Lagrange - Vegas)"); + XBT_INFO("***** Test 3 (Lagrange - Vegas)"); test3(LAGRANGE_VEGAS); - INFO0("***** Test 3 (Lagrange - Reno)"); + XBT_INFO("***** Test 3 (Lagrange - Reno)"); test3(LAGRANGE_RENO); - xbt_exit(); return 0; }