From f8d33e1ceb2b51c575450a13db6f5dfabdb5054b Mon Sep 17 00:00:00 2001 From: Andreas Fabri Date: Thu, 1 Jun 2017 10:49:05 +0200 Subject: [PATCH] take vectors out of the loop to have less reallocations --- .../CGAL/Classification/Feature/Vertical_dispersion.h | 5 +++-- .../include/CGAL/Classification/Local_eigen_analysis.h | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Classification/include/CGAL/Classification/Feature/Vertical_dispersion.h b/Classification/include/CGAL/Classification/Feature/Vertical_dispersion.h index dd776c4ea71..2d545072245 100644 --- a/Classification/include/CGAL/Classification/Feature/Vertical_dispersion.h +++ b/Classification/include/CGAL/Classification/Feature/Vertical_dispersion.h @@ -98,13 +98,14 @@ public: std::size_t square = (std::size_t)(0.5 * radius_neighbors / grid.resolution()) + 1; typename GeomTraits::Vector_3 verti (0., 0., 1.); - + + std::vector hori; for (std::size_t j = 0; j < grid.height(); j++){ for (std::size_t i = 0; i < grid.width(); i++){ if(!(grid.has_points(i,j))) continue; - std::vector hori; + hori.clear(); std::size_t squareXmin = (i < square ? 0 : i - square); std::size_t squareXmax = (std::min) (grid.width()-1, i + square); diff --git a/Classification/include/CGAL/Classification/Local_eigen_analysis.h b/Classification/include/CGAL/Classification/Local_eigen_analysis.h index dda061410b2..5e786eb96e2 100644 --- a/Classification/include/CGAL/Classification/Local_eigen_analysis.h +++ b/Classification/include/CGAL/Classification/Local_eigen_analysis.h @@ -83,9 +83,10 @@ private: void operator()(const tbb::blocked_range& r) const { + std::vector neighbors; for (std::size_t i = r.begin(); i != r.end(); ++ i) { - std::vector neighbors; + neighbors.clear(); m_neighbor_query (get(m_point_map, *(m_input.begin()+i)), std::back_inserter (neighbors)); std::vector neighbor_points;