A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Pfff. These functions are actually not available from the high APIs
[simgrid.git]
/
src
/
surf
/
lagrange.cpp
diff --git
a/src/surf/lagrange.cpp
b/src/surf/lagrange.cpp
index
64fc0ad
..
9257a84
100644
(file)
--- a/
src/surf/lagrange.cpp
+++ b/
src/surf/lagrange.cpp
@@
-52,14
+52,13
@@
static int __check_feasible(xbt_swag_t cnst_list, xbt_swag_t var_list,
double tmp;
xbt_swag_foreach(_cnst, cnst_list) {
double tmp;
xbt_swag_foreach(_cnst, cnst_list) {
-
cnst = (lmm_constraint_t)_cnst;
+ cnst = (lmm_constraint_t)_cnst;
tmp = 0;
tmp = 0;
- elem_list = &(cnst->element_set);
+ elem_list = &(cnst->e
nabled_e
lement_set);
xbt_swag_foreach(_elem, elem_list) {
elem = (lmm_element_t)_elem;
var = elem->variable;
xbt_swag_foreach(_elem, elem_list) {
elem = (lmm_element_t)_elem;
var = elem->variable;
- if (var->weight <= 0)
- continue;
+ xbt_assert(var->weight > 0);
tmp += var->value;
}
tmp += var->value;
}
@@
-76,7
+75,7
@@
static int __check_feasible(xbt_swag_t cnst_list, xbt_swag_t var_list,
}
xbt_swag_foreach(_var, var_list) {
}
xbt_swag_foreach(_var, var_list) {
-
var = (lmm_variable_t)_var;
+ var = (lmm_variable_t)_var;
if (!var->weight)
break;
if (var->bound < 0)
if (!var->weight)
break;
if (var->bound < 0)
@@
-135,7
+134,7
@@
static double dual_objective(xbt_swag_t var_list, xbt_swag_t cnst_list)
double obj = 0.0;
xbt_swag_foreach(_var, var_list) {
double obj = 0.0;
xbt_swag_foreach(_var, var_list) {
-
var = (lmm_variable_t)_var;
+ var = (lmm_variable_t)_var;
double sigma_i = 0.0;
int j;
double sigma_i = 0.0;
int j;
@@
-215,7
+214,7
@@
void lagrange_solve(lmm_system_t sys)
*/
cnst_list = &(sys->active_constraint_set);
xbt_swag_foreach(_cnst, cnst_list) {
*/
cnst_list = &(sys->active_constraint_set);
xbt_swag_foreach(_cnst, cnst_list) {
-
cnst = (lmm_constraint_t)_cnst;
+ cnst = (lmm_constraint_t)_cnst;
cnst->lambda = 1.0;
cnst->new_lambda = 2.0;
XBT_DEBUG("#### cnst(%p)->lambda : %e", cnst, cnst->lambda);
cnst->lambda = 1.0;
cnst->new_lambda = 2.0;
XBT_DEBUG("#### cnst(%p)->lambda : %e", cnst, cnst->lambda);
@@
-228,7
+227,7
@@
void lagrange_solve(lmm_system_t sys)
var_list = &(sys->variable_set);
i = 0;
xbt_swag_foreach(_var, var_list) {
var_list = &(sys->variable_set);
i = 0;
xbt_swag_foreach(_var, var_list) {
-
var = (lmm_variable_t)_var;
+ var = (lmm_variable_t)_var;
if (!var->weight)
var->value = 0.0;
else {
if (!var->weight)
var->value = 0.0;
else {
@@
-397,7
+396,6
@@
static double dichotomy(double init, double diff(double, void *),
min = max = 0.5;
}
min = max = 0.5;
}
- min_diff = max_diff = middle_diff = 0.0;
overall_error = 1;
if ((diff_0 = diff(1e-16, var_cnst)) >= 0) {
overall_error = 1;
if ((diff_0 = diff(1e-16, var_cnst)) >= 0) {
@@
-502,16
+500,14
@@
static double partial_diff_lambda(double lambda, void *param_cnst)
double sigma_i = 0.0;
XBT_IN();
double sigma_i = 0.0;
XBT_IN();
- elem_list = &(cnst->element_set);
+ elem_list = &(cnst->e
nabled_e
lement_set);
XBT_CDEBUG(surf_lagrange_dichotomy, "Computing diff of cnst (%p)", cnst);
xbt_swag_foreach(_elem, elem_list) {
XBT_CDEBUG(surf_lagrange_dichotomy, "Computing diff of cnst (%p)", cnst);
xbt_swag_foreach(_elem, elem_list) {
-
elem = (lmm_element_t)_elem;
+ elem = (lmm_element_t)_elem;
var = elem->variable;
var = elem->variable;
- if (var->weight <= 0)
- continue;
-
+ xbt_assert(var->weight > 0);
XBT_CDEBUG(surf_lagrange_dichotomy, "Computing sigma_i for var (%p)",
var);
// Initialize the summation variable
XBT_CDEBUG(surf_lagrange_dichotomy, "Computing sigma_i for var (%p)",
var);
// Initialize the summation variable