11 #ifndef _MULTITASKKERNELPLIFNORMALIZER_H___
12 #define _MULTITASKKERNELPLIFNORMALIZER_H___
44 num_betas =
static_cast<int>(support_.size());
103 std::sort(vec.begin(), vec.end());
106 std::vector<int32_t>::iterator endLocation = std::unique(vec.begin(), vec.end());
109 int32_t num_vec = std::distance(vec.begin(), endLocation);
148 int32_t upper_bound_idx = -1;
162 if (upper_bound_idx == -1)
169 int32_t lower_bound_idx = upper_bound_idx - 1;
172 float64_t factor_lower = 1 - (distance - support[lower_bound_idx]) / interval_size;
173 float64_t factor_upper = 1 - factor_lower;
175 similarity = factor_lower*
betas[lower_bound_idx] + factor_upper*
betas[upper_bound_idx];
225 ASSERT(task_lhs < num_tasks && task_lhs >= 0);
226 ASSERT(task_rhs < num_tasks && task_rhs >= 0);
241 ASSERT(task_lhs < num_tasks && task_lhs >= 0);
242 ASSERT(task_rhs < num_tasks && task_rhs >= 0);
256 ASSERT(task_lhs < num_tasks && task_lhs >= 0);
257 ASSERT(task_rhs < num_tasks && task_rhs >= 0);
272 ASSERT(task_lhs < num_tasks && task_lhs >= 0);
273 ASSERT(task_rhs < num_tasks && task_rhs >= 0);
316 return "MultitaskKernelPlifNormalizer";