Skip to content
Snippets Groups Projects
Commit 0d3ac76c authored by Marco Clemencic's avatar Marco Clemencic
Browse files

Replace ranges::views::partial_sum with transform on clang to avoid a crash

parent 9f70e28b
No related branches found
No related tags found
No related merge requests found
......@@ -141,17 +141,34 @@ StatusCode TupleToolTrackKink::kinkChi2( const LHCb::Track& track, double& chi2k
int N = measnodes.size();
// Get chi2 in the forward direction up to each node
#ifdef __clang__
double partial = 0.0;
#endif
auto chi2forward = measnodes | ranges::views::transform( []( const LHCb::FitNode* node ) {
return node ? node->deltaChi2Forward().chi2() : 0;
} ) |
ranges::views::partial_sum | ranges::to<std::vector<double>>();
#ifdef __clang__
ranges::views::transform( [&partial]( double elem ) { return ( partial += elem ); } ) |
#else
// this causes a crash in clang
ranges::views::partial_sum |
#endif
ranges::to<std::vector<double>>();
// Get chi2 in the backward direction up to each node
#ifdef __clang__
partial = 0.0;
#endif
auto deltaChi2backward = measnodes | ranges::views::reverse |
ranges::views::transform( []( const LHCb::FitNode* node ) {
return node ? node->deltaChi2Backward().chi2() : 0;
} ) |
#ifdef __clang__
ranges::views::transform( [&partial]( double elem ) { return ( partial += elem ); } );
#else
// this causes a crash in clang
ranges::views::partial_sum;
#endif
std::vector<double> chi2backward( N, 0 );
ranges::copy( deltaChi2backward, chi2backward.rbegin() );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment