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
Snake case.
[simgrid.git]
/
src
/
surf
/
cpu_ti.cpp
diff --git
a/src/surf/cpu_ti.cpp
b/src/surf/cpu_ti.cpp
index
02a56ed
..
997b716
100644
(file)
--- a/
src/surf/cpu_ti.cpp
+++ b/
src/surf/cpu_ti.cpp
@@
-26,30
+26,17
@@
CpuTiProfile::CpuTiProfile(profile::Profile* profile)
{
double integral = 0;
double time = 0;
- int i = 0;
- nb_points_ = profile->event_list.size() + 1;
- time_points_ = new double[nb_points_];
- integral_ = new double[nb_points_];
+ unsigned nb_points = profile->event_list.size() + 1;
+ time_points_.reserve(nb_points);
+ integral_.reserve(nb_points);
for (auto const& val : profile->event_list) {
- time_points_[i] = time;
- integral_[i] = integral;
- integral += val.date_ * val.value_;
+ time_points_.push_back(time);
+ integral_.push_back(integral);
time += val.date_;
- i
++
;
+ i
ntegral += val.date_ * val.value_
;
}
- time_points_[i] = time;
- integral_[i] = integral;
-}
-
-CpuTiProfile::~CpuTiProfile()
-{
- delete[] time_points_;
- delete [] integral_;
-}
-
-CpuTiTmgr::~CpuTiTmgr()
-{
- delete profile_;
+ time_points_.push_back(time);
+ integral_.push_back(integral);
}
/**
@@
-115,7
+102,7
@@
double CpuTiProfile::integrate_simple_point(double a)
{
double integral = 0;
double a_aux = a;
- int ind = binary_search(time_points_, a
, nb_points_
);
+ int ind = binary_search(time_points_, a);
integral += integral_[ind];
XBT_DEBUG("a %f ind %d integral %f ind + 1 %f ind %f time +1 %f time %f", a, ind, integral, integral_[ind + 1],
@@
-197,7
+184,7
@@
double CpuTiTmgr::solve(double a, double amount)
double CpuTiProfile::solve_simple(double a, double amount)
{
double integral_a = integrate_simple_point(a);
- int ind = binary_search(integral_, integral_a + amount
, nb_points_
);
+ int ind = binary_search(integral_, integral_a + amount);
double time = time_points_[ind];
time += (integral_a + amount - integral_[ind]) /
((integral_[ind + 1] - integral_[ind]) / (time_points_[ind + 1] - time_points_[ind]));
@@
-215,7
+202,7
@@
double CpuTiProfile::solve_simple(double a, double amount)
double CpuTiTmgr::get_power_scale(double a)
{
double reduced_a = a - floor(a / last_time_) * last_time_;
- int point =
profile_->binary_search(profile_->time_points_, reduced_a, profile_->nb_points_
);
+ int point =
CpuTiProfile::binary_search(profile_->time_points_, reduced_a
);
kernel::profile::DatedValue val = speed_profile_->event_list.at(point);
return val.value_;
}
@@
-230,7
+217,7
@@
double CpuTiTmgr::get_power_scale(double a)
CpuTiTmgr::CpuTiTmgr(kernel::profile::Profile* speed_profile, double value) : speed_profile_(speed_profile)
{
double total_time = 0.0;
- profile_
= 0
;
+ profile_
.reset(nullptr)
;
/* no availability file, fixed trace */
if (not speed_profile) {
@@
-253,7
+240,7
@@
CpuTiTmgr::CpuTiTmgr(kernel::profile::Profile* speed_profile, double value) : sp
for (auto const& val : speed_profile->event_list)
total_time += val.date_;
- profile_
= new CpuTiProfile(speed_profile
);
+ profile_
.reset(new CpuTiProfile(speed_profile)
);
last_time_ = total_time;
total_ = profile_->integrate_simple(0, total_time);
@@
-265,16
+252,14
@@
CpuTiTmgr::CpuTiTmgr(kernel::profile::Profile* speed_profile, double value) : sp
* It returns the last point of the interval in which "a" is.
* @param array Array
* @param a Value to search
- * @param size Size of the array
* @return Index of point
*/
-int CpuTiProfile::binary_search(
double* array, double a, int size
)
+int CpuTiProfile::binary_search(
const std::vector<double>& array, double a
)
{
- xbt_assert(size > 0, "Wrong parameters: empty array");
if (array[0] > a)
return 0;
- auto pos = std::upper_bound(
array, array + size
, a);
- return std::distance(
array
, pos) - 1;
+ auto pos = std::upper_bound(
begin(array), end(array)
, a);
+ return std::distance(
begin(array)
, pos) - 1;
}
/*********