From b1c09b9446d927d8b64eb6b351d113876c9e11e2 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Fri, 9 Mar 2012 15:01:39 +0000 Subject: [PATCH] spatial_sort is ~15% slower with the CGAL::nth_element than with the one from GNU/g++ STL. The feature is used only if that macro is defined: #define CGAL_HILBERT_SORT_WITH_MEDIAN_POLICY_CROSS_PLATFORM_BEHAVIOR 1 Pretty name, is not it? --- Spatial_sorting/include/CGAL/Hilbert_sort_base.h | 2 +- Spatial_sorting/include/CGAL/hilbert_sort.h | 6 +++--- Spatial_sorting/include/CGAL/spatial_sort.h | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Spatial_sorting/include/CGAL/Hilbert_sort_base.h b/Spatial_sorting/include/CGAL/Hilbert_sort_base.h index 7708ec07bab..43c5cd7830d 100644 --- a/Spatial_sorting/include/CGAL/Hilbert_sort_base.h +++ b/Spatial_sorting/include/CGAL/Hilbert_sort_base.h @@ -34,7 +34,7 @@ namespace internal { Cmp cmp = Cmp ()) { if (begin >= end) return begin; - #if !defined(CGAL_DONT_USE_INDEPENDENT_SHUFFLE) + #if defined(CGAL_HILBERT_SORT_WITH_MEDIAN_POLICY_CROSS_PLATFORM_BEHAVIOR) RandomAccessIterator middle = begin + (end - begin) / 2; CGAL::nth_element (begin, middle, end, cmp); return middle; diff --git a/Spatial_sorting/include/CGAL/hilbert_sort.h b/Spatial_sorting/include/CGAL/hilbert_sort.h index 206f99ec76e..715b350bbca 100644 --- a/Spatial_sorting/include/CGAL/hilbert_sort.h +++ b/Spatial_sorting/include/CGAL/hilbert_sort.h @@ -47,7 +47,7 @@ namespace internal { { boost::rand48 random; boost::random_number_generator rng(random); -#if !defined(CGAL_DONT_USE_INDEPENDENT_SHUFFLE) +#if defined(CGAL_HILBERT_SORT_WITH_MEDIAN_POLICY_CROSS_PLATFORM_BEHAVIOR) CGAL::random_shuffle(begin,end, rng); #else std::random_shuffle(begin,end, rng); @@ -63,7 +63,7 @@ namespace internal { { boost::rand48 random; boost::random_number_generator rng(random); -#if !defined(CGAL_DONT_USE_INDEPENDENT_SHUFFLE) +#if defined(CGAL_HILBERT_SORT_WITH_MEDIAN_POLICY_CROSS_PLATFORM_BEHAVIOR) CGAL::random_shuffle(begin,end, rng); #else std::random_shuffle(begin,end, rng); @@ -79,7 +79,7 @@ namespace internal { { boost::rand48 random; boost::random_number_generator rng(random); -#if !defined(CGAL_DONT_USE_INDEPENDENT_SHUFFLE) +#if defined(CGAL_HILBERT_SORT_WITH_MEDIAN_POLICY_CROSS_PLATFORM_BEHAVIOR) CGAL::random_shuffle(begin,end, rng); #else std::random_shuffle(begin,end, rng); diff --git a/Spatial_sorting/include/CGAL/spatial_sort.h b/Spatial_sorting/include/CGAL/spatial_sort.h index 27efae9c9f4..f4e7b28f4eb 100644 --- a/Spatial_sorting/include/CGAL/spatial_sort.h +++ b/Spatial_sorting/include/CGAL/spatial_sort.h @@ -51,7 +51,7 @@ namespace internal { typedef Hilbert_sort_2 Sort; boost::rand48 random; boost::random_number_generator rng(random); -#if !defined(CGAL_DONT_USE_INDEPENDENT_SHUFFLE) +#if defined(CGAL_HILBERT_SORT_WITH_MEDIAN_POLICY_CROSS_PLATFORM_BEHAVIOR) CGAL::random_shuffle(begin,end,rng); #else std::random_shuffle(begin,end,rng); @@ -78,7 +78,7 @@ namespace internal { typedef Hilbert_sort_3 Sort; boost::rand48 random; boost::random_number_generator rng(random); -#if !defined(CGAL_DONT_USE_INDEPENDENT_SHUFFLE) +#if defined(CGAL_HILBERT_SORT_WITH_MEDIAN_POLICY_CROSS_PLATFORM_BEHAVIOR) CGAL::random_shuffle(begin,end, rng); #else std::random_shuffle(begin,end, rng); @@ -105,7 +105,7 @@ namespace internal { typedef Hilbert_sort_d Sort; boost::rand48 random; boost::random_number_generator rng(random); -#if !defined(CGAL_DONT_USE_INDEPENDENT_SHUFFLE) +#if defined(CGAL_HILBERT_SORT_WITH_MEDIAN_POLICY_CROSS_PLATFORM_BEHAVIOR) CGAL::random_shuffle(begin,end, rng); #else std::random_shuffle(begin,end, rng);