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?
This commit is contained in:
Laurent Rineau 2012-03-09 15:01:39 +00:00
parent f9c20ae282
commit b1c09b9446
3 changed files with 7 additions and 7 deletions

View File

@ -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;

View File

@ -47,7 +47,7 @@ namespace internal {
{
boost::rand48 random;
boost::random_number_generator<boost::rand48> 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<boost::rand48> 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<boost::rand48> 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);

View File

@ -51,7 +51,7 @@ namespace internal {
typedef Hilbert_sort_2<Kernel, Policy> Sort;
boost::rand48 random;
boost::random_number_generator<boost::rand48> 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<Kernel, Policy> Sort;
boost::rand48 random;
boost::random_number_generator<boost::rand48> 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<Kernel, Policy> Sort;
boost::rand48 random;
boost::random_number_generator<boost::rand48> 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);