106 using TraceIter = std::vector<DataPoint>::const_iterator;
107 TraceIter trace_iter_begin = trace.begin();
108 TraceIter trace_iter = trace_iter_begin;
109 TraceIter trace_iter_end = trace.end();
118 using BinIter = std::vector<pappso_double>::const_iterator;
120 BinIter bin_iter =
m_bins.begin();
121 BinIter bin_end_iter =
m_bins.end();
141 auto bin_iter_for_mz = lower_bound(bin_iter, bin_end_iter, trace_iter->x);
143 if(bin_iter_for_mz != bin_end_iter)
145 if(bin_iter_for_mz !=
m_bins.begin())
146 bin_iter = --bin_iter_for_mz;
151 while(bin_iter != bin_end_iter)
153 current_bin_mz = *bin_iter;
171 new_data_point.
x = current_bin_mz;
181 while(trace_iter != trace_iter_end)
187 bool trace_matched =
false;
201 trace_x = trace_iter->x;
202 trace_y = trace_iter->y;
230 if(trace_x <= current_bin_mz)
239 new_data_point.
y += trace_y;
246 trace_matched =
true;
274 trace_matched =
true;
296 std::pair<std::map<pappso_double, pappso_double>::iterator,
299 map_trace.insert(std::pair<pappso_double, pappso_double>(
300 new_data_point.
x, new_data_point.
y));
307 result.first->second += new_data_point.
y;
332 if(trace_iter == trace_iter_end)
341 std::pair<std::map<pappso_double, pappso_double>::iterator,
bool>
343 map_trace.insert(std::pair<pappso_double, pappso_double>(
344 new_data_point.
x, new_data_point.
y));
348 result.first->second += new_data_point.
y;