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