53 return entries.front();
59 [
x,
y](
const AssocModeConfig::CatalogEntry &a,
const AssocModeConfig::CatalogEntry &b) ->
bool {
60 auto dx_a = a.coord.m_x - x;
61 auto dy_a = a.coord.m_y - y;
62 auto dx_b = b.coord.m_x - x;
63 auto dy_b = b.coord.m_y - y;
64 return dx_a*dx_a + dy_a*dy_a < dx_b*dx_b + dy_b*dy_b;
70 [](
const AssocModeConfig::CatalogEntry &a,
const AssocModeConfig::CatalogEntry &b) ->
bool {
71 return a.weight < b.weight;
77 [](
const AssocModeConfig::CatalogEntry &a,
const AssocModeConfig::CatalogEntry &b) ->
bool {
78 return a.weight < b.weight;
83 AssocModeConfig::CatalogEntry result{{}, {}, 0., {}};
84 result.assoc_columns.resize(entries.front().assoc_columns.size());
85 double total_weight = 0.0;
86 for (
auto& entry : entries) {
87 total_weight += entry.weight;
88 for (
size_t i=0; i < result.assoc_columns.size(); i++) {
89 result.assoc_columns[i] += entry.assoc_columns[i] * entry.weight;
93 for (
size_t i=0; i < result.assoc_columns.size(); i++) {
94 result.assoc_columns[i] /= total_weight;
101 AssocModeConfig::CatalogEntry result{{}, {}, 0., {}};
102 result.assoc_columns.resize(entries.front().assoc_columns.size());
103 for (
auto& entry : entries) {
104 for (
size_t i=0; i < result.assoc_columns.size(); i++) {
105 result.assoc_columns[i] += entry.assoc_columns[i];
112 AssocModeConfig::CatalogEntry result{{}, {}, 0., {}};
113 result.assoc_columns.resize(entries.front().assoc_columns.size());
114 double total_weight = 0.0;
115 for (
auto& entry : entries) {
116 double linear_weight =
pow(10.0, -0.4 * entry.weight);
117 total_weight += linear_weight;
118 for (
size_t i=0; i < result.assoc_columns.size(); i++) {
119 result.assoc_columns[i] += entry.assoc_columns[i] * linear_weight;
123 for (
size_t i=0; i < result.assoc_columns.size(); i++) {
124 result.assoc_columns[i] /= total_weight;
131 AssocModeConfig::CatalogEntry result{{}, {}, 0., {}};
132 result.assoc_columns.resize(entries.front().assoc_columns.size());
133 for (
auto& entry : entries) {
134 for (
size_t i=0; i < result.assoc_columns.size(); i++) {
135 result.assoc_columns[i] +=
pow(10.0, -0.4 * entry.assoc_columns[i]);
139 for (
size_t i=0; i < result.assoc_columns.size(); i++) {
140 result.assoc_columns[i] = -2.5 *
log10(result.assoc_columns[i]);
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y