/**********************/
/* SMPI callbacks */
/**********************/
+
+static int factor_cmp(const void *pa, const void *pb)
+{
+ return (((s_smpi_factor_t*)pa)->factor > ((s_smpi_factor_t*)pb)->factor);
+}
+
+
static xbt_dynar_t parse_factor(const char *smpi_coef_string)
{
char *value = NULL;
xbt_dynar_free(&radical_elements2);
}
xbt_dynar_free(&radical_elements);
+ iter=0;
+ xbt_dynar_sort(smpi_factor, &factor_cmp);
+ xbt_dynar_foreach(smpi_factor, iter, fact) {
+ XBT_DEBUG("ordered smpi_factor:\t%ld : %f", fact.factor, fact.value);
+
+ }
return smpi_factor;
}
unsigned int iter = 0;
s_smpi_factor_t fact;
+
xbt_dynar_foreach(smpi_bw_factor, iter, fact) {
- if (size >= fact.factor) {
- XBT_DEBUG("%lf >= %ld return %f", size, fact.factor, fact.value);
+ if (size < fact.factor) {
+ XBT_DEBUG("%lf < %ld return %f", size, fact.factor, fact.value);
return fact.value;
}
}
unsigned int iter = 0;
s_smpi_factor_t fact;
+
xbt_dynar_foreach(smpi_lat_factor, iter, fact) {
- if (size >= fact.factor) {
- XBT_DEBUG("%lf >= %ld return %f", size, fact.factor, fact.value);
+ if (size < fact.factor) {
+ XBT_DEBUG("%lf < %ld return %f", size, fact.factor, fact.value);
return fact.value;
}
+
}
return 1.0;