diff --git a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_euclidean_vs_hyperbolic.txt b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_euclidean_vs_hyperbolic.txt new file mode 100644 index 00000000000..e185befc423 --- /dev/null +++ b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_euclidean_vs_hyperbolic.txt @@ -0,0 +1,23 @@ +---- for best results, make sure that you have compiled me in Release mode ---- +iteration 1: inserting into hyperbolic periodic triangulation... DONE! (# of vertices = 1000000, time = 50.3773 secs) +iteration 1: inserting into Euclidean non-periodic triangulation... DONE! (# of vertices = 1000000, time = 20.7566 secs) +iteration 2: inserting into hyperbolic periodic triangulation... DONE! (# of vertices = 1000000, time = 58.7336 secs) +iteration 2: inserting into Euclidean non-periodic triangulation... DONE! (# of vertices = 1000000, time = 24.6808 secs) +iteration 3: inserting into hyperbolic periodic triangulation... DONE! (# of vertices = 1000000, time = 57.6734 secs) +iteration 3: inserting into Euclidean non-periodic triangulation... DONE! (# of vertices = 1000000, time = 23.9461 secs) +iteration 4: inserting into hyperbolic periodic triangulation... DONE! (# of vertices = 1000000, time = 54.9728 secs) +iteration 4: inserting into Euclidean non-periodic triangulation... DONE! (# of vertices = 1000000, time = 21.1166 secs) +iteration 5: inserting into hyperbolic periodic triangulation... DONE! (# of vertices = 1000000, time = 51.4028 secs) +iteration 5: inserting into Euclidean non-periodic triangulation... DONE! (# of vertices = 1000000, time = 21.3222 secs) +iteration 6: inserting into hyperbolic periodic triangulation... DONE! (# of vertices = 1000000, time = 50.6842 secs) +iteration 6: inserting into Euclidean non-periodic triangulation... DONE! (# of vertices = 1000000, time = 21.144 secs) +iteration 7: inserting into hyperbolic periodic triangulation... DONE! (# of vertices = 1000000, time = 52.2119 secs) +iteration 7: inserting into Euclidean non-periodic triangulation... DONE! (# of vertices = 1000000, time = 21.848 secs) +iteration 8: inserting into hyperbolic periodic triangulation... DONE! (# of vertices = 1000000, time = 52.7987 secs) +iteration 8: inserting into Euclidean non-periodic triangulation... DONE! (# of vertices = 1000000, time = 23.4349 secs) +iteration 9: inserting into hyperbolic periodic triangulation... DONE! (# of vertices = 1000000, time = 56.7236 secs) +iteration 9: inserting into Euclidean non-periodic triangulation... DONE! (# of vertices = 1000000, time = 22.5812 secs) +iteration 10: inserting into hyperbolic periodic triangulation... DONE! (# of vertices = 1000000, time = 56.6275 secs) +iteration 10: inserting into Euclidean non-periodic triangulation... DONE! (# of vertices = 1000000, time = 22.441 secs) +Hyperbolic periodic triangulation: average time = 54.2206 +Euclidean non-periodic triangulation: average time = 22.3271 \ No newline at end of file diff --git a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_complex.cpp b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_complex.cpp index e210d06236c..3f8c01197ee 100644 --- a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_complex.cpp +++ b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_complex.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include #include diff --git a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_dummy_points.cpp b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_dummy_points.cpp index 4610cd02e18..b6b7b33d319 100644 --- a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_dummy_points.cpp +++ b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_dummy_points.cpp @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include #include diff --git a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_hyperbolic_vs_euclidean.cpp b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_hyperbolic_vs_euclidean.cpp index f826bb6a1f7..45d89c25e29 100644 --- a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_hyperbolic_vs_euclidean.cpp +++ b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_hyperbolic_vs_euclidean.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +//#include #include #include #include @@ -61,21 +61,18 @@ int main(int argc, char** argv) { for (int exec = 1; exec <= iters; exec++) { - std::vector v; std::vector pts; - - Hyperbolic_random_points_in_disc_2_double(v, 5*N, -1, 0.159); + CGAL::Random_points_in_disc_2 g(0.85); int cnt = 0; - int idx = 0; do { - Point pt = Point(v[idx].x(), v[idx].y()); + Point_double pd = *(++g); + Point pt = Point(pd.x(), pd.y()); if (pred(pt) != CGAL::ON_UNBOUNDED_SIDE) { pts.push_back(pt); cnt++; } - idx++; - } while (cnt < N && idx < v.size()); + } while (cnt < N); if (cnt < N) { cout << "I failed to generate all the random points! Exiting..." << endl; diff --git a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_insertion.cpp b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_insertion.cpp index 72fdf5313eb..bc1e5f2adbe 100644 --- a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_insertion.cpp +++ b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_insertion.cpp @@ -100,7 +100,7 @@ int main(int argc, char** argv) { CGAL::Timer tt; tt.start(); - tr.insert(pts.begin(), pts.end(), true); + tr.insert(pts.begin(), pts.end()); tt.stop(); cout << "DONE! (# of vertices = " << tr.number_of_vertices() << ", time = " << tt.time() << " secs)" << endl; extime += tt.time(); diff --git a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_insertion_euclidean.cpp b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_insertion_euclidean.cpp index 9c2dd139b7c..b2a7baa6f11 100644 --- a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_insertion_euclidean.cpp +++ b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_insertion_euclidean.cpp @@ -8,7 +8,8 @@ #include #include #include - +#include +#include #include typedef double NT; @@ -18,6 +19,13 @@ typedef Kernel::Point_2 typedef Triangulation::Vertex_handle Vertex_handle; typedef CGAL::Creator_uniform_2 Creator; + +typedef CORE::Expr NT2; +typedef CGAL::Cartesian Kernel2; +typedef CGAL::Periodic_4_hyperbolic_Delaunay_triangulation_traits_2 Traits2; +typedef Traits2::Side_of_original_octagon Side_of_original_octagon; + using std::cout; using std::endl; @@ -37,23 +45,27 @@ int main(int argc, char** argv) { cout << "---- for best results, make sure that you have compiled me in Release mode ----" << endl; double extime = 0.0; + Side_of_original_octagon pred; for (int exec = 1; exec <= iters; exec++) { std::vector pts; - pts.reserve(N); - CGAL::Random_points_in_disc_2 g(1.0); - CGAL::cpp11::copy_n( g, N, std::back_inserter(pts)); + CGAL::Random_points_in_disc_2 g(0.85); + + int cnt = 0; + do { + Point pt = *(++g); + if (pred(pt) != CGAL::ON_UNBOUNDED_SIDE) { + pts.push_back(pt); + cnt++; + } + } while (cnt < N); cout << "iteration " << exec << ": inserting into triangulation (rational dummy points)... "; cout.flush(); Triangulation tr; - //tr.insert_dummy_points(true); CGAL::Timer tt; tt.start(); tr.insert(pts.begin(), pts.end()); - //for (int j = 0; j < pts.size(); j++) { - // tr.insert(pts[j]); - //} tt.stop(); cout << "DONE! (# of vertices = " << tr.number_of_vertices() << ", time = " << tt.time() << " secs)" << endl; extime += tt.time(); diff --git a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_locate.cpp b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_locate.cpp index cdd662ba722..d45a9ad24db 100644 --- a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_locate.cpp +++ b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_locate.cpp @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include #include @@ -55,7 +55,7 @@ int main(void) { cout << "---- locating dummy points (all should be vertices) ----" << endl; for (int j = 0; j < 14; j++) { Point query = tr.get_dummy_point(j); - fh = tr.locate(query, lt, li); + fh = tr.hyperbolic_locate(query, lt, li); assert(lt == Triangulation::VERTEX); cout << " dummy point " << j << ": OK " << endl; } @@ -63,13 +63,13 @@ int main(void) { cout << "---- locating the midpoint of a Euclidean segment ----" << endl; Point p1 = tr.get_dummy_point(0), p2 = tr.get_dummy_point(1); Point query = midpoint(p1, p2); - fh = tr.locate(query, lt, li); + fh = tr.hyperbolic_locate(query, lt, li); assert(lt == Triangulation::EDGE); cout << " located as edge OK" << endl; cout << "---- inserting a single point and locating it ----" << endl; Vertex_handle v = tr.insert(Point(-0.4, -0.1)); - fh = tr.locate(v->point(), lt, li); + fh = tr.hyperbolic_locate(v->point(), lt, li); assert(lt == Triangulation::VERTEX); cout << " located as vertex OK" << endl; diff --git a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_matrix.cpp b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_matrix.cpp index 8c12b65c1a7..f3fbc8f62e5 100644 --- a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_matrix.cpp +++ b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_matrix.cpp @@ -3,8 +3,8 @@ #include #include #include -#include -#include +#include +#include #include using namespace CGAL; diff --git a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_remove_dummy_points.cpp b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_remove_dummy_points.cpp index 896c91fbb10..9d87667396c 100644 --- a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_remove_dummy_points.cpp +++ b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_remove_dummy_points.cpp @@ -5,7 +5,7 @@ #include #include #include -#include +//#include #include #include @@ -44,10 +44,10 @@ int main(int argc, char** argv) { int max = -1; double mean = 0.0; for (int j = 0; j < iter; j++) { - cout << "Iteration " << (j+1) << "/" << iter << "..." << endl; + //cout << "Iteration " << (j+1) << "/" << iter << "..." << endl; std::vector v; - Hyperbolic_random_points_in_disc_2_double(v, N, -1, 0.159); + CGAL::Random_points_in_disc_2 g(0.85); Triangulation tr; assert(tr.is_valid(true)); @@ -55,7 +55,7 @@ int main(int argc, char** argv) { int cnt = 0; int idx = 0; do { - Point_double pt = v[idx++]; + Point_double pt = *(++g); if (pred(pt) != CGAL::ON_UNBOUNDED_SIDE) { tr.insert(Point(pt.x(), pt.y())); cnt++; @@ -66,7 +66,7 @@ int main(int argc, char** argv) { continue; } assert(tr.is_valid()); - + std::cout << cnt << std::endl; if (cnt > max) max = cnt; if (cnt < min) diff --git a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_triangulation.cpp b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_triangulation.cpp index 7f3087b3d07..466c72d098c 100644 --- a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_triangulation.cpp +++ b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_triangulation.cpp @@ -23,7 +23,7 @@ int main(void) { Triangulation tr; CGAL_assertion(tr.is_valid()); - cout << "triangulation works!" << + cout << "triangulation works!" << std::endl; cout << "nb of vertices: " << tr.number_of_vertices() << endl; cout << "nb of faces: " << tr.number_of_faces() << endl; diff --git a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_words.cpp b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_words.cpp index 770bb7d0200..cc8e623c90c 100644 --- a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_words.cpp +++ b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_p4ht2_words.cpp @@ -4,7 +4,7 @@ #include #include // #include -#include +#include #include #include diff --git a/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_remove_dummy_points_euclidean.txt b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_remove_dummy_points_euclidean.txt new file mode 100644 index 00000000000..8fab40bb961 --- /dev/null +++ b/Periodic_4_hyperbolic_triangulation_2/test/Periodic_4_hyperbolic_triangulation_2/test_remove_dummy_points_euclidean.txt @@ -0,0 +1,13 @@ +Test ran on 04/06/2018, 11:18am +================================================= +Finished 100 iterations! +Minimum number of points inserted: 30 +Maximum number of points inserted: 147 +Average number of points inserted: 61.66 + + +Context +================================================= +There were some doubts about how correct it is to say that we used random points +uniformly distributed in the hyperbolic metric. I ran the test with points +distributed uniformly in the Euclidean metric, and these are the results. \ No newline at end of file