"New directory Mesh_2/include/CGAL/Meshes/ that aggregates several
non documented files that are common to Mesh_2, Mesh_3 and Surface_mesher."
I forgot to commit the removal of old files.
Boost.Bimap is a bit faster (150-190% faster), and less
memory-consumer. Whereas the old Double_map implementation does not seem to
be sensitive to caching effects, the Bimap implementation seems to be
faster when run twice or more.
See the measurements bellow. Three runs of ./bench_double_map.bimap and
./bench_double_map.cgal. They are both compiled with -O2, and
./bench_double_map.bimap is compiled with -DCGAL_USE_BOOST_BIMAP
-I<path_to_boost_bimap>.
lrineau@tsetse ~/CGAL/Packages/Mesh_2/test/Mesh_2 $ for in in 1 2 3; do
echo 'BIMAP';
./bench_double_map.bimap 200000 30;
echo 'OLD DOUBLE_MAP';
./bench_double_map.cgal 200000 30;
done
BIMAP
Total time: 4.41933
Time for 'insert': 3.15152
Time for 'pop_front': 1.26781
Resident memory: 14843904
Virtual memory: 26423296
OLD DOUBLE_MAP
Total time: 6.581
Time for 'insert': 4.5593
Time for 'pop_front': 2.0217
Resident memory: 18030592
Virtual memory: 29519872
BIMAP
Total time: 3.56746
Time for 'insert': 2.49262
Time for 'pop_front': 1.07484
Resident memory: 14843904
Virtual memory: 26427392
OLD DOUBLE_MAP
Total time: 6.76597
Time for 'insert': 4.70729
Time for 'pop_front': 2.05869
Resident memory: 18034688
Virtual memory: 29519872
BIMAP
Total time: 3.51347
Time for 'insert': 2.43964
Time for 'pop_front': 1.07383
Resident memory: 14856192
Virtual memory: 26427392
OLD DOUBLE_MAP
Total time: 6.74597
Time for 'insert': 4.6183
Time for 'pop_front': 2.12768
Resident memory: 17854464
Virtual memory: 29523968
The following (commented) line triggered the error:
direct_func[rit->second] = rit;
The new following line fixes the bug. Actually, it is even more
efficient.
direct_func.insert(std::make_pair(rit->second, rit));
- factorize code in Is_locally_conforming_Gabriel and
Is_locally_conforming_Delaunay.
- all triangulation references are now named "tr" (instead of "ct").
(Tests OK)
- CGAL_MESH_3_DIRTY_DEBUG_SPHERES,
- and CGAL_MESHES_DEBUG_REFINEMENT_POINTS.
- new macro CGAL_MESHES_OUTPUT_STREAM, which is set to std::cout by
default.
- in Mesh_2: new header <CGAL/Mesh_2/Output_stream.h>
- CGAL_MESH_3_DEBUG_INSERTION_RADIUS,
- CGAL_MESH_2_DEBUG_INSERTION_RADIUS,
- CGAL_MESHES_DEBUG_REFINEMENT_POINTS,
- and CGAL_MESH_3_DIRTY_DEBUG_SPHERES.
These are not activated by default, of course. The latter was to debug
test/Mesh_3/combined_spheres.cpp.
"cannot_wait_for_CGAL-3.2" to the trunk.
My idea: the branch is the real working version, and I want it to be joined
back to the trunk:
__________________________ cannot_wait_for_CGAL-3.2 branch
/ \
/ \
-------------------------------------------- trunk
S M
The modification of the trunk between the splitting point S and the merging
point M has already been merged into "cannot_wait_for_CGAL-3.2".
The trunk versions of these three packages have been removed already.
Do not worry: I will "svn cp" the branch "cannot_wait_for_CGAL-3.2" into the
trunk, and the trunk will inherit from the logs of the branch.
My idea: the branch is the real working version, and I want it to be joined
back to the trunk:
__________________________ cannot_wait_for_CGAL-3.2 branch
/ \
/ \
-------------------------------------------- trunk
S M
The modification of the trunk between the splitting point S and the merging
point M has already been merged into "cannot_wait_for_CGAL-3.2".
- rename test/Mesh_2/makefile to GNUmakefile, not submitted:
makefiles in the testsuite are generated.
- fix a BUG in Mesher_level: one_step() and try_to_insert_one_point(), in
Null_mesher_level must return false! This fix solves the "follow under
mouse" bug of mesh_demo.C!
- change some DEBUG macro names to:
CGAL_MESH_2_DEBUG_BAD_FACES
CGAL_MESH_2_DEBUG_CLUSTERS
CGAL_MESH_2_DEBUG_CONFLICTS_ZONE
CGAL_MESH_2_DEBUG_DRAW
CGAL_MESH_2_DEBUG_INSERTIONS
CGAL_MESH_2_VERBOSE
to please CGAL developer manual.
- add a seed in fish.poly
(Note to Andreas: this is the bug I was looking for. The added test file
helped me to find it cause.)