- xbt_dynar_t power_range_list = power_range_watts_list;
- xbt_assert(power_range_watts_list, "No power range properties specified for host %s", host->getName());
-
- int pstate = host->p_cpu->getPState();
- xbt_assert(pstate < (int)xbt_dynar_length(power_range_list),
- "pstate %d >= power range amound %d",pstate,(int)xbt_dynar_length(power_range_list));
- /* retrieve the power values associated with the current pstate */
- xbt_dynar_t current_power_values = xbt_dynar_get_as( power_range_list, pstate, xbt_dynar_t);
-
- /* min_power corresponds to the idle power (cpu load = 0) */
- /* max_power is the power consumed at 100% cpu load */
- double min_power = xbt_dynar_get_as(current_power_values, 0, double);
- double max_power = xbt_dynar_get_as(current_power_values, 1, double);
- double power_slope = max_power - min_power;
-
+ xbt_assert(!power_range_watts_list.empty(),
+ "No power range properties specified for host %s", host->getName());
+
+ /* min_power corresponds to the idle power (cpu load = 0) */
+ /* max_power is the power consumed at 100% cpu load */
+ auto range = power_range_watts_list.at(host->p_cpu->getPState());
+ double min_power = range.first;
+ double max_power = range.second;
+ double power_slope = max_power - min_power;