cgal/Triangulation_2/include/CGAL
Laurent Rineau 95bec3999c Use Unique_has_map instead of std::map (patch from Andreas Fabri)
The gain on copies of T2 or T3 is the following:


afabri@klimt /cygdrive/c/cgal/next/Triangulation_3/benchmark/Triangulation_3
$ ./copy 1000000 2
36.806 sec

afabri@klimt /cygdrive/c/cgal/next/Triangulation_3/benchmark/Triangulation_3
$ ./copy 1000000 2
4.865 sec

The benchmarck copy.cpp is the following (not commited):

#define  CGAL_T3_HASH
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Delaunay_triangulation_3.h>
#include <CGAL/Timer.h>
#include <CGAL/point_generators_3.h>


#include <iostream>
#include <fstream>
#include <string>
#include <vector>

typedef CGAL::Exact_predicates_inexact_constructions_kernel  K;
typedef CGAL::Delaunay_triangulation_3<K> Delaunay;
typedef K::Point_3                                     Point;
typedef CGAL::Creator_uniform_3<double,Point>  Creator;



int main(int argc, char **argv)
{
  int n=1000000;
  int rep=100;
  if (argc>=2)
    n=atoi(argv[1]);
  if (argc>=3)
    rep=atoi(argv[2]);
  std::vector<Point> points;
  points.reserve(n);  
  CGAL::Random_points_in_sphere_3<Point,Creator> g(1);
  CGAL::copy_n( g, n, std::back_inserter(points));
  Delaunay original;
  original.insert(points.begin(),points.end());
  
  double res = 0;
  for (int r=0;r<rep;++r){
    CGAL::Timer t;    t.start();
    Delaunay delaunay=original;
    t.stop();
    res+=t.time();
  }

  std::cout << res << std::endl;
            
  return 0;
}
2012-03-30 12:37:19 +00:00
..
IO Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
predicates Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Constrained_Delaunay_triangulation_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Constrained_triangulation_2.h merge from next 2012-01-16 15:28:51 +00:00
Constrained_triangulation_face_base_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Constrained_triangulation_plus_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Constraint_hierarchy_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Delaunay_triangulation_2.h Make the insert-by-range function more permissive 2012-01-24 17:25:20 +00:00
Distance_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Dummy_tds_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Regular_triangulation_2.h Make the insert-by-range function more permissive 2012-01-24 17:25:20 +00:00
Regular_triangulation_euclidean_traits_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Regular_triangulation_face_base_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Regular_triangulation_filtered_traits_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Regular_triangulation_vertex_base_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_2.h optimize 2012-01-24 16:24:56 +00:00
Triangulation_2_filtered_projection_traits_3.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_2_projection_traits_3.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_2_traits_3.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_data_structure_2.h Use Unique_has_map instead of std::map (patch from Andreas Fabri) 2012-03-30 12:37:19 +00:00
Triangulation_data_structure_using_list_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_default_data_structure_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_ds_circulators_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_ds_face_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_ds_face_base_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_ds_iterators_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_ds_vertex_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_ds_vertex_base_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_euclidean_traits_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_euclidean_traits_xy_3.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_euclidean_traits_xz_3.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_euclidean_traits_yz_3.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_face_base_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_face_base_with_info_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_hierarchy_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_hierarchy_vertex_base_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_iterator_adaptator.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_line_face_circulator_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_structural_filtering_traits.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_utils_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_vertex_base_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Triangulation_vertex_base_with_info_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Trivial_iterator.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Weighted_point.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
apply_to_range.h change LGPLv2 -> LGPLv3 2011-10-10 13:48:25 +00:00
constructions_on_weighted_points_cartesian_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
constructions_on_weighted_points_homogeneous_2.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
triangulation_assertions.h Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00