Commit Graph

87648 Commits

Author SHA1 Message Date
Mael 8cdcd006f0
Use 'seed' even when TBB is not linked 2019-12-17 17:57:54 +01:00
Mael Rouxel-Labbé 7af0704cea Reintegrate the callback within the call to box_intersection_d()
This is motivated by the fact that if you have a configuration
where there is a large number of boxes intersection (such as
k*n^2, with n being the number of faces), then the size
of the concurrent container can be very large and thus
the memory footprint would be huge.

Instead, since the box_intersection_d call is now parallel,
we can just do callbacks in the tree directly. The only thing is,
we want to have these (heavy) callback calls to be roughly balanced.
For this, we random shuffle the range of faces.

Same runtime as before, no more huge memory footprint!
2019-12-11 09:52:52 +01:00
Mael Rouxel-Labbé 5fdeb06326 Generalize box_d 'divide and conquer' approach to any given integer 2019-12-11 09:52:42 +01:00
Mael Rouxel-Labbé 57fed1416a Factorize code creating throwing output iterators 2019-12-04 09:10:49 +01:00
Mael Rouxel-Labbé b210bf3f08 Fix conflict in struct names 2019-12-03 19:56:00 +01:00
Mael Rouxel-Labbé e9e3d9b5b0 Add missing includes 2019-12-03 16:23:35 +01:00
Mael Rouxel-Labbé c526d40b44 Fix throwing as soon as boxes intersect and not checking for actual intersection 2019-12-03 16:17:53 +01:00
Mael Rouxel-Labbé 47585d85b5 Add an additional comment in the doc about parallel box_intersection_d 2019-12-03 16:12:49 +01:00
Mael Rouxel-Labbé 6bd31f593e Minor doc fix 2019-12-03 14:30:11 +01:00
Mael Rouxel-Labbé b93e556ff3 Document the parallel version of the box_intersection_d 2019-12-03 14:20:24 +01:00
Mael Rouxel-Labbé 9d2e92ac4c Document the new type 2019-12-03 14:09:48 +01:00
Mael Rouxel-Labbé cbf78b3de1 Minor doc / comment changes 2019-12-03 12:11:19 +01:00
Mael Rouxel-Labbé c0921a5e53 Fix collecting all intersecting pairs before throwing + fix NP improper forward 2019-12-03 12:00:31 +01:00
Mael Rouxel-Labbé a1adb5fc94 Use correct parallel tags in the example 2019-12-03 12:00:09 +01:00
Mael Rouxel-Labbé 0191d868fa Simplify and clean parallel code for PMP::self_intersections 2019-12-02 16:39:58 +01:00
Mael Rouxel-Labbé 82bf0f22f1 Test parallel box_intersection_d and ptr-based box_intersection_d 2019-12-02 15:01:50 +01:00
Mael Rouxel-Labbé d302c56d05 Keep a single version (3 split) of parallel box_intersection_d 2019-12-02 15:01:26 +01:00
Mael Rouxel-Labbé 47c0ce254e Enrich example 2019-11-19 18:40:34 +01:00
Mael Rouxel-Labbé 1e6b42d029 Add a split in 3 box_intersection_d parallel version 2019-11-19 18:40:03 +01:00
Mael Rouxel-Labbé 16350e84a4 Fix bad typedef 2019-11-19 17:12:44 +01:00
Mael Rouxel-Labbé 41bb11cdee Make unique indentation style a little less unique (no real changes) 2019-11-19 17:08:25 +01:00
Mael Rouxel-Labbé b6dd62be52 Use ID_FROM_BOX_ADDRESS in Box_with_info_d where safe
That is, where we are passing box ranges by pointer.

See also 52ce0b6ac4
2019-11-19 17:06:47 +01:00
Mael Rouxel-Labbé 52ce0b6ac4 Change Box_with_info to use the policy ID_EXPLICIT by default
ID_FROM_BOX_ADDRESS does not work when you pass a range of boxes
by value and not by pointers. Since doing that while using
ID_FROM_BOX_ADDRESS is completely silent (no errors despite
not being compatible), this is super dangerous.

Besides, the Box_d has default policy ID_EXPLICIT, so it should
have been that in the first place.
2019-11-19 16:40:11 +01:00
Mael Rouxel-Labbé b7d20e0033 Move range splitting higher to also parallelize 'box_intersection_d()' 2019-11-19 14:40:30 +01:00
Mael Rouxel-Labbé 9ef1c976c6 Use one of the tests of self_intersection.h to test the parallel tags 2019-11-19 12:51:36 +01:00
Mael Rouxel-Labbé ac86fadd7a Misc code formatting improvements 2019-11-19 12:51:17 +01:00
Mael Rouxel-Labbé 44e2b52ca7 Clean superfluous overloads 2019-11-19 12:50:21 +01:00
Mael Rouxel-Labbé 4bbaafe808 Fix using undefined type 2019-11-19 11:56:10 +01:00
Mael d33eb65cbf
fix CGAL_USE usage 2019-11-18 15:43:04 +01:00
Andreas Fabri a682dcb360 use -> USE 2019-11-18 14:21:21 +01:00
Andreas Fabri a44674a694 Add ConcurrencyTag in Box_intersection_d 2019-11-15 21:45:19 +01:00
Andreas Fabri bef2b5f1b8 Parallelize using 2 or 4 parallel threads 2019-11-15 16:21:25 +01:00
Andreas Fabri 363f77145c Do first self-intersection tests in parallel in the demo 2019-11-15 14:24:09 +01:00
Andreas Fabri d6a89652a1 CGAL:: Add Parallel_if_available_tag 2019-11-15 13:48:46 +01:00
Andreas Fabri 40fbe18dcd Merge branch 'Box_intersection_d-accelerate-GF' of github.com:afabri/cgal into Box_intersection_d-accelerate-GF 2019-11-15 12:55:43 +01:00
Mael ff960adea0
Fix namespace lookup issue (and a warning) 2019-11-14 17:08:58 +01:00
Andreas Fabri 3caad9bc88 Remove #include 2019-11-14 13:26:47 +01:00
Andreas Fabri 9c9284fbb4 make typedef public 2019-11-14 12:17:46 +01:00
Andreas Fabri f033e0a244 Cleanup 2019-11-14 11:45:37 +01:00
Andreas Fabri 899b9ec384 Remove experimental code 2019-11-14 11:31:50 +01:00
Andreas Fabri 45cd4dc8bf remove parameter; Add ConcurrencyTag to does_self_intersect 2019-11-14 11:21:40 +01:00
Sébastien Loriot e4b205bca6 update doc + reorder/factorize code 2019-11-14 06:31:43 +01:00
Sébastien Loriot ceddeb9756 hide debug code 2019-11-13 15:55:08 +01:00
Sébastien Loriot 884b2cf2ab restore removed code 2019-11-13 15:41:11 +01:00
Andreas Fabri 5ea8d36129 Do not use a concurrent_vector 2019-11-13 09:35:48 +01:00
Andreas Fabri 2d14c67304 Remove unused class Output_iterator_with_bool 2019-11-13 09:07:10 +01:00
Andreas Fabri a35a7ebf9b fix a reserve() 2019-11-12 18:40:17 +01:00
Andreas Fabri 0faaf2d21c Add CGAL_LINKED_WITH_TBB in the Box_intersection_d without ConcurrencyTag 2019-11-12 18:35:46 +01:00
Andreas Fabri 343ca0b4a7 Add the version that reports all pairs of faces and performs the intersection tests in parallel 2019-11-12 18:27:32 +01:00
Andreas Fabri 732d1d8f8a Add overloads with ConcurencyTag 2019-11-12 16:32:08 +01:00