/* A few tests for the maxmin library */
-/* Copyright (c) 2007, 2008, 2009, 2010. The SimGrid Team.
+/* Copyright (c) 2007-2014. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
typedef enum {
MAXMIN,
LAGRANGE_RENO,
- LAGRANGE_VEGAS,
+ LAGRANGE_VEGAS
} method_t;
static double dichotomy(double func(double), double min, double max,
lmm_set_default_protocol_function(func_reno_f, func_reno_fpi,
func_reno_fpi);
- Sys = lmm_system_new();
+ Sys = lmm_system_new(1);
L1 = lmm_constraint_new(Sys, (void *) "L1", a);
L2 = lmm_constraint_new(Sys, (void *) "L2", b);
L3 = lmm_constraint_new(Sys, (void *) "L3", a);
max_deviation =
MAX(max_deviation, fabs(lmm_variable_getvalue(R_1_2_3) - (a - x)));
- if (max_deviation > MAXMIN_PRECISION) {
+ if (max_deviation > 0.00001) { // Legacy value used in lagrange.c
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,
max_deviation =
MAX(max_deviation, fabs(lmm_variable_getvalue(R_1_2_3) - (a - x)));
- if (max_deviation > MAXMIN_PRECISION) {
+ if (max_deviation > 0.00001) { // Legacy value used in lagrange.c
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,
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);
PRINT_VAR(R_2);
PRINT_VAR(R_3);
+ lmm_variable_free(Sys, R_1_2_3);
+ lmm_variable_free(Sys, R_1);
+ lmm_variable_free(Sys, R_2);
+ lmm_variable_free(Sys, R_3);
lmm_system_free(Sys);
}
lmm_set_default_protocol_function(func_reno_f, func_reno_fp,
func_reno_fpi);
- Sys = lmm_system_new();
+ Sys = lmm_system_new(1);
CPU1 = lmm_constraint_new(Sys, (void *) "CPU1", 200.0);
CPU2 = lmm_constraint_new(Sys, (void *) "CPU2", 100.0);
} else if (method == LAGRANGE_RENO) {
lagrange_solve(Sys);
} else {
- xbt_assert0(0, "Invalid method");
+ xbt_die("Invalid method");
}
PRINT_VAR(T1);
PRINT_VAR(T2);
+ lmm_variable_free(Sys, T1);
+ lmm_variable_free(Sys, T2);
lmm_system_free(Sys);
}
1, 1, 1, 1, 1
};
- /*A = xbt_new0(double*, links + 5); */
A = xbt_new0(double *, links + 5);
for (i = 0; i < links + 5; i++) {
lmm_set_default_protocol_function(func_reno_f, func_reno_fp,
func_reno_fpi);
- Sys = lmm_system_new();
+ Sys = lmm_system_new(1);
} 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);
+ for (j = 0; j < 16; j++)
+ lmm_variable_free(Sys, tmp_var[j]);
+ 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__