53 return entries.
front();
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;
71 return a.weight < b.weight;
78 return a.weight < b.weight;
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;
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];
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;
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]);
151 for (
auto& catalog : catalogs) {
165 const auto& catalog =
m_catalogs.at(hdu_index);
167 auto nearby_catalog_entries = catalog.findPointsWithinRadius(Tree::Coord { x, y },
m_radius);
169 if (nearby_catalog_entries.size() == 0) {
185 auto assoc_data = assoc_mode_implementation_table.
at(
m_assoc_mode)(nearby_catalog_entries);