aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@mpi-sws.org>2012-11-27 06:30:52 -0500
committerBjoern Brandenburg <bbb@mpi-sws.org>2012-11-27 06:30:52 -0500
commita9d8499bbdfc69b24b65d38c370616a4f79e6b1c (patch)
treeb4a3fb904d3d50391671d158bf5e40ef69d84c6c
parent01251da14f0d3fb2bf4ed2299a70998ff3aa5a1f (diff)
Add bound_demand() to TaskSet
This corresponds to h(t) in Zhang and Burns (2009)'s QPA paper.
-rw-r--r--native/include/tasks.h1
-rw-r--r--native/src/tasks.cpp11
2 files changed, 12 insertions, 0 deletions
diff --git a/native/include/tasks.h b/native/include/tasks.h
index dbba8d1..0aafa98 100644
--- a/native/include/tasks.h
+++ b/native/include/tasks.h
@@ -176,6 +176,7 @@ class TaskSet
176 void get_density(fractional_t &density) const; 176 void get_density(fractional_t &density) const;
177 void get_max_density(fractional_t &max_density) const; 177 void get_max_density(fractional_t &max_density) const;
178 178
179 void bound_demand(const integral_t &time, integral_t &demand) const;
179 void approx_load(fractional_t &load, const fractional_t &epsilon = 0.1) const; 180 void approx_load(fractional_t &load, const fractional_t &epsilon = 0.1) const;
180 181
181 /* wrapper for Python access */ 182 /* wrapper for Python access */
diff --git a/native/src/tasks.cpp b/native/src/tasks.cpp
index 1d784bf..0d0624c 100644
--- a/native/src/tasks.cpp
+++ b/native/src/tasks.cpp
@@ -152,6 +152,17 @@ unsigned long TaskSet::k_for_epsilon(unsigned int idx,
152 return (unsigned long) ceil(std::max(0.0, bound.get_d())); 152 return (unsigned long) ceil(std::max(0.0, bound.get_d()));
153} 153}
154 154
155void TaskSet::bound_demand(const integral_t &time, integral_t &demand) const
156{
157 integral_t task_demand;
158 demand = 0;
159 for (unsigned int i = 0; i < tasks.size(); i++)
160 {
161 tasks[i].bound_demand(time, task_demand);
162 demand += task_demand;
163 }
164}
165
155void TaskSet::approx_load(fractional_t &load, const fractional_t &epsilon) const 166void TaskSet::approx_load(fractional_t &load, const fractional_t &epsilon) const
156{ 167{
157 fractional_t density; 168 fractional_t density;