#include #include // CGAL headers #include #include #include #include typedef CGAL::Exact_circular_kernel_2 K; typedef CGAL::Hyperbolic_Delaunay_triangulation_traits_2 Gt; typedef K::Point_2 Point_2; typedef K::FT FT; typedef CGAL::Hyperbolic_Delaunay_triangulation_2 HDt; int main(int argc, char *argv[]) { FT eps = 0; for(int k = 0; k < 2; k++) { if(k == 0) { eps = 1e-3; } if(k == 1) { eps = 1e-7; } int trials_nb = 10; int start_nb = 10000; std::cout << std::endl << eps << std::endl << std::endl; for(int nb = start_nb, k = 0; k < 4; nb = nb*10, k++) { std::vector< std::vector > pts(trials_nb); for(int i = 0; i < trials_nb; i++) { if(argc > 1 && argv[1][0] == 'e') { Random_points_in_disc_2(pts[i], nb, i, eps); } else { Hyperbolic_random_points_in_disc_2(pts[i], nb, i, eps); } } double average_time = 0; double average_nb = 0; double average_nb_of_edges = 0; for(int trials = 0; trials < trials_nb; trials++) { HDt hdt; CGAL::Timer timer; timer.start(); hdt.insert(pts[trials].begin(), pts[trials].end()); timer.stop(); average_time += timer.time(); timer.reset(); average_nb += hdt.number_of_vertices(); average_nb_of_edges = 0; for(HDt::Hyperbolic_edges_iterator eit = hdt.hyperbolic_edges_begin(); eit != hdt.hyperbolic_edges_end(); ++eit) { average_nb_of_edges++; } } average_time = average_time/trials_nb; average_nb = average_nb/trials_nb; std::cout << "Eps: " << eps << std::endl; std::cout << "Number of points: " << average_nb << std::endl; std::cout << "Time: " << average_time << std::endl; std::cout << "number of edges " << average_nb_of_edges << std::endl; std::cout << std::endl; } } return 0; }