Fix examples

This commit is contained in:
Andreas Fabri 2019-11-04 16:45:30 +01:00
parent cffd1fe3a0
commit b98d2f6876
8 changed files with 28 additions and 25 deletions

View File

@ -1,4 +1,5 @@
/*! /*!
\example Spatial_sorting/parallel.cpp
\example Spatial_sorting/hilbert.cpp \example Spatial_sorting/hilbert.cpp
\example Spatial_sorting/hilbert_policies.cpp \example Spatial_sorting/hilbert_policies.cpp
\example Spatial_sorting/small_example_delaunay_2.cpp \example Spatial_sorting/small_example_delaunay_2.cpp

View File

@ -17,12 +17,12 @@ typedef CGAL::Creator_uniform_3<double,Point_3> Creator_3;
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
std::vector<Point_3> points; std::vector<Point_3> points;
v.reserve (2000); points.reserve (2000);
CGAL::Random_points_in_cube_3<Point_3> gen (1.0); CGAL::Random_points_in_cube_3<Point_3> gen (1.0);
for (int i = 0; i < 2000; ++i){ for (int i = 0; i < 2000; ++i){
v.push_back (*gen++); points.push_back (*gen++);
} }
#ifdef CGAL_LINKED_WITH_TBB #ifdef CGAL_LINKED_WITH_TBB
CGAL::spatial_sort<CGAL::Parallel_tag>(points.begin(),points.end()); CGAL::spatial_sort<CGAL::Parallel_tag>(points.begin(),points.end());

View File

@ -18,7 +18,7 @@
namespace CGAL { namespace CGAL {
template <class K, class Hilbert_policy, class ConcurrencyTag > template <class K, class Hilbert_policy, class ConcurrencyTag = Sequential_tag >
class Hilbert_sort_2; class Hilbert_sort_2;
template <class K, class ConcurrencyTag> template <class K, class ConcurrencyTag>

View File

@ -18,7 +18,7 @@
namespace CGAL { namespace CGAL {
template <class K, class Hilbert_policy, class ConcurrencyTag> template <class K, class Hilbert_policy, class ConcurrencyTag = Sequential_tag>
class Hilbert_sort_3; class Hilbert_sort_3;
template <class K, class ConcurrencyTag> template <class K, class ConcurrencyTag>

View File

@ -13,6 +13,7 @@
#define CGAL_HILBERT_SORT_MEDIAN_2_H #define CGAL_HILBERT_SORT_MEDIAN_2_H
#include <CGAL/config.h> #include <CGAL/config.h>
#include <CGAL/tags.h>
#include <functional> #include <functional>
#include <cstddef> #include <cstddef>
#include <CGAL/Hilbert_sort_base.h> #include <CGAL/Hilbert_sort_base.h>

View File

@ -42,7 +42,7 @@ class Hilbert_sort_on_sphere_3 {
typedef internal::Transform_coordinates_traits_3<K,-1,0,1,1> Face_5_traits_3; // -z +x typedef internal::Transform_coordinates_traits_3<K,-1,0,1,1> Face_5_traits_3; // -z +x
typedef internal::Transform_coordinates_traits_3<K,1,1,0,0> Face_6_traits_3; // +x +y typedef internal::Transform_coordinates_traits_3<K,1,1,0,0> Face_6_traits_3; // +x +y
Hilbert_sort_2<Face_1_traits_3, Hilbert_policy > _hs_1_object; Hilbert_sort_2<Face_1_traits_3, Hilbert_policy > _hs_1_object;
Hilbert_sort_2<Face_2_traits_3, Hilbert_policy > _hs_2_object; Hilbert_sort_2<Face_2_traits_3, Hilbert_policy > _hs_2_object;
Hilbert_sort_2<Face_3_traits_3, Hilbert_policy > _hs_3_object; Hilbert_sort_2<Face_3_traits_3, Hilbert_policy > _hs_3_object;
Hilbert_sort_2<Face_4_traits_3, Hilbert_policy > _hs_4_object; Hilbert_sort_2<Face_4_traits_3, Hilbert_policy > _hs_4_object;

View File

@ -31,7 +31,7 @@ namespace CGAL {
namespace internal { namespace internal {
template <class RandomAccessIterator, class Kernel, class Policy> template <class ConcurrencyTag = Sequential_tag, class RandomAccessIterator, class Kernel, class Policy>
void hilbert_sort (RandomAccessIterator begin, void hilbert_sort (RandomAccessIterator begin,
RandomAccessIterator end, RandomAccessIterator end,
const Kernel &k, const Kernel &k,
@ -43,10 +43,10 @@ namespace internal {
boost::rand48 random; boost::rand48 random;
boost::random_number_generator<boost::rand48, Diff_t> rng(random); boost::random_number_generator<boost::rand48, Diff_t> rng(random);
CGAL::cpp98::random_shuffle(begin,end, rng); CGAL::cpp98::random_shuffle(begin,end, rng);
(Hilbert_sort_2<Kernel, Policy> (k))(begin, end); (Hilbert_sort_2<Kernel, Policy, ConcurrencyTag> (k))(begin, end);
} }
template <class RandomAccessIterator, class Kernel, class Policy> template <class ConcurrencyTag = Sequential_tag, class RandomAccessIterator, class Kernel, class Policy>
void hilbert_sort (RandomAccessIterator begin, void hilbert_sort (RandomAccessIterator begin,
RandomAccessIterator end, RandomAccessIterator end,
const Kernel &k, const Kernel &k,
@ -58,10 +58,10 @@ namespace internal {
boost::rand48 random; boost::rand48 random;
boost::random_number_generator<boost::rand48, Diff_t> rng(random); boost::random_number_generator<boost::rand48, Diff_t> rng(random);
CGAL::cpp98::random_shuffle(begin,end, rng); CGAL::cpp98::random_shuffle(begin,end, rng);
(Hilbert_sort_3<Kernel, Policy> (k))(begin, end); (Hilbert_sort_3<Kernel, Policy, ConcurrencyTag> (k))(begin, end);
} }
template <class RandomAccessIterator, class Kernel, class Policy> template <class ConcurrencyTag = Sequential_tag, class RandomAccessIterator, class Kernel, class Policy>
void hilbert_sort (RandomAccessIterator begin, void hilbert_sort (RandomAccessIterator begin,
RandomAccessIterator end, RandomAccessIterator end,
const Kernel &k, const Kernel &k,
@ -75,9 +75,9 @@ namespace internal {
CGAL::cpp98::random_shuffle(begin,end, rng); CGAL::cpp98::random_shuffle(begin,end, rng);
(Hilbert_sort_d<Kernel, Policy> (k))(begin, end); (Hilbert_sort_d<Kernel, Policy> (k))(begin, end);
} }
} } // namespace internal
template <class RandomAccessIterator> template <class ConcurrencyTag = Sequential_tag, class RandomAccessIterator>
void hilbert_sort (RandomAccessIterator begin, RandomAccessIterator end) void hilbert_sort (RandomAccessIterator begin, RandomAccessIterator end)
{ {
@ -86,23 +86,23 @@ void hilbert_sort (RandomAccessIterator begin, RandomAccessIterator end)
typedef CGAL::Kernel_traits<value_type> KTraits; typedef CGAL::Kernel_traits<value_type> KTraits;
typedef typename KTraits::Kernel Kernel; typedef typename KTraits::Kernel Kernel;
internal::hilbert_sort(begin, end, Kernel(), Hilbert_sort_median_policy(), internal::hilbert_sort<ConcurrencyTag>(begin, end, Kernel(), Hilbert_sort_median_policy(),
static_cast<value_type *> (0)); static_cast<value_type *> (0));
} }
template <class RandomAccessIterator, class Kernel> template <class ConcurrencyTag = Sequential_tag, class RandomAccessIterator, class Kernel>
void hilbert_sort (RandomAccessIterator begin, RandomAccessIterator end, void hilbert_sort (RandomAccessIterator begin, RandomAccessIterator end,
const Kernel &k) const Kernel &k)
{ {
typedef std::iterator_traits<RandomAccessIterator> ITraits; typedef std::iterator_traits<RandomAccessIterator> ITraits;
typedef typename ITraits::value_type value_type; typedef typename ITraits::value_type value_type;
internal::hilbert_sort(begin, end, k, Hilbert_sort_median_policy(), internal::hilbert_sort<ConcurrencyTag>(begin, end, k, Hilbert_sort_median_policy(),
static_cast<value_type *> (0)); static_cast<value_type *> (0));
} }
template <class RandomAccessIterator> template <class ConcurrencyTag = Sequential_tag, class RandomAccessIterator>
void hilbert_sort (RandomAccessIterator begin, RandomAccessIterator end, void hilbert_sort (RandomAccessIterator begin, RandomAccessIterator end,
Hilbert_sort_median_policy policy) Hilbert_sort_median_policy policy)
{ {
@ -111,13 +111,13 @@ void hilbert_sort (RandomAccessIterator begin, RandomAccessIterator end,
typedef CGAL::Kernel_traits<value_type> KTraits; typedef CGAL::Kernel_traits<value_type> KTraits;
typedef typename KTraits::Kernel Kernel; typedef typename KTraits::Kernel Kernel;
internal::hilbert_sort(begin, end, Kernel(), policy, internal::hilbert_sort<ConcurrencyTag>(begin, end, Kernel(), policy,
static_cast<value_type *> (0)); static_cast<value_type *> (0));
} }
template <class RandomAccessIterator> template <class ConcurrencyTag = Sequential_tag, class RandomAccessIterator>
void hilbert_sort (RandomAccessIterator begin, RandomAccessIterator end, void hilbert_sort (RandomAccessIterator begin, RandomAccessIterator end,
Hilbert_sort_middle_policy policy) Hilbert_sort_middle_policy policy)
{ {
@ -126,21 +126,21 @@ void hilbert_sort (RandomAccessIterator begin, RandomAccessIterator end,
typedef CGAL::Kernel_traits<value_type> KTraits; typedef CGAL::Kernel_traits<value_type> KTraits;
typedef typename KTraits::Kernel Kernel; typedef typename KTraits::Kernel Kernel;
internal::hilbert_sort(begin, end, Kernel(), policy, internal::hilbert_sort<ConcurrencyTag>(begin, end, Kernel(), policy,
static_cast<value_type *> (0)); static_cast<value_type *> (0));
} }
template <class RandomAccessIterator, class Kernel, class Policy> template <class ConcurrencyTag = Sequential_tag, class RandomAccessIterator, class Kernel, class Policy>
void hilbert_sort (RandomAccessIterator begin, RandomAccessIterator end, void hilbert_sort (RandomAccessIterator begin, RandomAccessIterator end,
const Kernel &k, Policy policy) const Kernel &k, Policy policy)
{ {
typedef std::iterator_traits<RandomAccessIterator> ITraits; typedef std::iterator_traits<RandomAccessIterator> ITraits;
typedef typename ITraits::value_type value_type; typedef typename ITraits::value_type value_type;
internal::hilbert_sort(begin, end, internal::hilbert_sort<ConcurrencyTag>(begin, end,
k, policy, static_cast<value_type *> (0)); k, policy, static_cast<value_type *> (0));
} }
} // namespace CGAL } // namespace CGAL

View File

@ -93,6 +93,7 @@ class Delaunay_triangulation_3<Gt, Tds_, Default, Lock_data_structure_>
typedef Delaunay_triangulation_3<Gt, Tds_, Default, Lock_data_structure_> Self; typedef Delaunay_triangulation_3<Gt, Tds_, Default, Lock_data_structure_> Self;
public: public:
typedef typename Tds::Concurrency_tag Concurrency_tag;
typedef Triangulation_3<Gt, Tds, Lock_data_structure_> Tr_Base; typedef Triangulation_3<Gt, Tds, Lock_data_structure_> Tr_Base;
typedef Tds Triangulation_data_structure; typedef Tds Triangulation_data_structure;
@ -349,7 +350,7 @@ public:
size_type n = number_of_vertices(); size_type n = number_of_vertices();
std::vector<Point> points(first, last); std::vector<Point> points(first, last);
spatial_sort(points.begin(), points.end(), geom_traits()); spatial_sort<Concurrency_tag>(points.begin(), points.end(), geom_traits());
// Parallel // Parallel
#ifdef CGAL_LINKED_WITH_TBB #ifdef CGAL_LINKED_WITH_TBB
@ -425,8 +426,8 @@ private:
typedef typename Pointer_property_map<Point>::type Pmap; typedef typename Pointer_property_map<Point>::type Pmap;
typedef Spatial_sort_traits_adapter_3<Geom_traits,Pmap> Search_traits; typedef Spatial_sort_traits_adapter_3<Geom_traits,Pmap> Search_traits;
spatial_sort(indices.begin(), indices.end(), spatial_sort<Concurrency_tag>(indices.begin(), indices.end(),
Search_traits(make_property_map(points),geom_traits())); Search_traits(make_property_map(points),geom_traits()));
#ifdef CGAL_LINKED_WITH_TBB #ifdef CGAL_LINKED_WITH_TBB
if(this->is_parallel()) if(this->is_parallel())