diff options
author | Gard Spreemann <gspr@nonempty.org> | 2020-12-16 15:15:38 +0100 |
---|---|---|
committer | Gard Spreemann <gspr@nonempty.org> | 2020-12-16 15:15:38 +0100 |
commit | b6a3def70b15baf2dda0844762dcd291e240d2c1 (patch) | |
tree | df4d6b690d0fc7f46d259364fe4a6fcc85f62b40 /src/Subsampling/include/gudhi/pick_n_random_points.h | |
parent | 1c05c20d7cf92c96b5036620cc892cb956c96785 (diff) | |
parent | cf36a3971fb6a0ed37577295d7f1f13a930d1dba (diff) |
Merge tag 'tags/gudhi-release-3.4.0' into dfsg/latest
Diffstat (limited to 'src/Subsampling/include/gudhi/pick_n_random_points.h')
-rw-r--r-- | src/Subsampling/include/gudhi/pick_n_random_points.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/Subsampling/include/gudhi/pick_n_random_points.h b/src/Subsampling/include/gudhi/pick_n_random_points.h index a67b2b84..e4246c29 100644 --- a/src/Subsampling/include/gudhi/pick_n_random_points.h +++ b/src/Subsampling/include/gudhi/pick_n_random_points.h @@ -11,7 +11,9 @@ #ifndef PICK_N_RANDOM_POINTS_H_ #define PICK_N_RANDOM_POINTS_H_ -#include <gudhi/Clock.h> +#ifdef GUDHI_SUBSAMPLING_PROFILING +# include <gudhi/Clock.h> +#endif #include <boost/range/size.hpp> @@ -44,6 +46,12 @@ void pick_n_random_points(Point_container const &points, Gudhi::Clock t; #endif + std::random_device rd; + std::mt19937 g(rd()); + +#if __cplusplus >= 201703L + std::sample(std::begin(points), std::end(points), output_it, final_size, g); +#else std::size_t nbP = boost::size(points); if (final_size > nbP) final_size = nbP; @@ -51,14 +59,12 @@ void pick_n_random_points(Point_container const &points, std::vector<int> landmarks(nbP); std::iota(landmarks.begin(), landmarks.end(), 0); - std::random_device rd; - std::mt19937 g(rd()); - std::shuffle(landmarks.begin(), landmarks.end(), g); landmarks.resize(final_size); for (int l : landmarks) *output_it++ = points[l]; +#endif #ifdef GUDHI_SUBSAMPLING_PROFILING t.end(); |