Commit Graph

800 Commits

Author SHA1 Message Date
Laurent Rineau 18cac48bae Merge pull request #367 from sgiraudot/Point_set_processing-hierarchical_clustering-sgiraudot
New point set processing algorithm: Hierarchical clustering
2015-10-14 10:54:37 +02:00
Clement Jamin 145131e2e6 Use Real_timer in PSP3 and T3 since the algorithms might be parallel 2015-10-08 15:34:40 +02:00
Simon Giraudot 0916c32ded Fix numeric_limits::max bug (conflict with other max) 2015-10-08 07:59:56 +02:00
Simon Giraudot bc2a944ded Fix Visual Studio errors (typename + max macro bug) 2015-10-07 16:03:08 +02:00
Simon Giraudot b35e34238a Bugfix: if 2 input points are equal, avoid infinite loop and terminate non-empty cluster 2015-10-07 16:00:54 +02:00
Simon Giraudot 564f156eeb Fix typos in doc 2015-10-07 16:00:54 +02:00
Simon Giraudot a068249ac5 Minor code cleaning/rewriting 2015-10-07 16:00:53 +02:00
Simon Giraudot e028ff8955 Update doc and example 2015-10-07 16:00:53 +02:00
Simon Giraudot e6054bfdeb Rename function and files in accordance to content 2015-10-07 16:00:53 +02:00
Simon Giraudot 20698d4dde Make the algorithm a simplification algorithm instead of a clustering one 2015-10-07 16:00:53 +02:00
Simon Giraudot 347af82e80 Fix testsuite error (missing #include <limits>) 2015-10-07 16:00:53 +02:00
Simon Giraudot 28cf05f189 Remove duplicate code (use PCA_util.h to assemble covariance matrix) 2015-10-07 16:00:52 +02:00
Simon Giraudot 648c19b6f6 Remove unused typedef warning 2015-10-07 16:00:52 +02:00
Simon Giraudot b16f7605d6 Enhancement: keep current cluster an only build one side instead of two 2015-10-07 16:00:52 +02:00
Simon Giraudot cf9b7230d8 Algorithm is faster if the plane is not constructed 2015-10-07 16:00:52 +02:00
Simon Giraudot 5df527d2f0 Correct preconditions 2015-10-07 16:00:52 +02:00
Simon Giraudot c965754d00 Update example of hierarchical clustering 2015-10-07 16:00:52 +02:00
Simon Giraudot 59e11b4ae6 More on user manual 2015-10-07 16:00:52 +02:00
Simon Giraudot b84b724984 Add citation and update manual 2015-10-07 16:00:51 +02:00
Simon Giraudot bf8d876d6d More on user manual and reference manual 2015-10-07 16:00:51 +02:00
Simon Giraudot bd52620404 Add a test for hierarchical_clustering 2015-10-07 16:00:51 +02:00
Simon Giraudot e6c757f463 Begin working on reference manual 2015-10-07 16:00:51 +02:00
Simon Giraudot 14567ae261 Add variant with default diagonalize traits 2015-10-07 16:00:51 +02:00
Simon Giraudot fea22733ee Speed up using list instead of queue (avoid multiple copies) + bugfix 2015-10-07 16:00:51 +02:00
Simon Giraudot 5ab793531c Bugfix: if one of the two sides is empty, only treat the non-empty side 2015-10-07 16:00:51 +02:00
Simon Giraudot ed2d3167e2 Stack is faster than queue in this case 2015-10-07 16:00:51 +02:00
Simon Giraudot 7babff9f05 Optimizations (using splice for lists and reference for queue.front()) 2015-10-07 16:00:51 +02:00
Simon Giraudot 0841e423a2 Add example for hierarchical clustering 2015-10-07 16:00:51 +02:00
Simon Giraudot eb7266a42d Cleaning/reorganizing code, use diagonalize_traits and add variants with default parameters and template deduction 2015-10-07 16:00:50 +02:00
Simon Giraudot e8dd34cb21 Implemented the efficient computation of the second centroid.
The hierarchical clustering algorithm gets about 15% faster
(on test Eglise Fontaine, from 91s to 76s).
2015-10-07 16:00:50 +02:00
Simon Giraudot ee1e7ee714 Added the alternative implementation of hierarchical clustering using
the Eigen library.

For now, both implementations are available (switchable with a
2015-10-07 16:00:50 +02:00
Pierre Alliez 00fad8756a Add comments in hierarchical clustering and fix indentations 2015-10-07 16:00:50 +02:00
Simon Giraudot b87d1bbc3e Very first version of the hierarchical clustering added (work in
progress).

It contains somes functions that may be more relevant in some other
package :
* 2 functions to compute the covariance matrix of a 3D point set
* 2 functions to split a point set according to a plane

Also the function of the actual hierachical clustering algorithm.
2015-10-07 16:00:50 +02:00
Sebastien Loriot 62644a62aa Merge pull request #318 from sgiraudot/CGAL-Solver-package-GF
Regroup solver interface in Solver_package
2015-10-07 15:54:48 +02:00
Simon Giraudot ac591cf257 Merge branch 'Point_set_processing_3-TBB-GF-old' into Point_set_processing_3-TBB-GF 2015-09-29 13:50:17 +02:00
Simon Giraudot 692a8686ca Fix warning (implicit conversion double to std::size_t) 2015-09-29 13:46:37 +02:00
Sébastien Loriot da650cbd1c Merge branch 'old/CGAL-Solver-packages-GF' into CGAL-Solver-package-GF 2015-09-26 15:47:54 +02:00
Simon Giraudot 13e4a76cd8 Merge branch 'Point_set_processing_3-TBB-GF-old' into Point_set_processing_3-TBB-GF 2015-09-24 12:45:58 +02:00
Simon Giraudot 36723443a4 Merge branch 'CGAL-Solver-package-GF-old' into CGAL-Solver-package-GF 2015-09-23 10:29:14 +02:00
Sébastien Loriot cdfc7f1c31 Merge branch 'old/CGAL-split_packages-GF' into CGAL-split_packages-GF 2015-09-23 10:08:41 +02:00
Sébastien Loriot b970fc80ef Merge branch 'old/Surface_reconstruction_points_3-Change_package_name-GF' into Surface_reconstruction_points_3-Change_package_name-GF 2015-09-22 09:54:18 +02:00
Sébastien Loriot 68aa21292a Merge branch 'old/CGAL-Solver-packages-GF' into CGAL-Solver-package-GF 2015-09-21 07:34:18 +02:00
Simon Giraudot a4f242a0cc Replace Internal_diagonalize_traits by Diagonalize_traits + corrections in Concepts/Models 2015-09-16 11:41:26 +02:00
Andreas Fabri 58b7dc7319 fix typo 2015-09-16 09:29:09 +02:00
Andreas Fabri 23740f5921 add a dependency 2015-09-16 09:25:02 +02:00
Simon Giraudot b840307161 Generate compile-time error if Parallel_tag is used without TBB 2015-09-08 15:31:28 +02:00
Simon Giraudot 2c6e6e5e57 Update Reference Manual with additional template parameter 2015-09-08 12:38:34 +02:00
Simon Giraudot 935956a10f Merge branch 'Point_set_processing_3-TBB-GF-old' into Point_set_processing_3-TBB-GF 2015-09-08 11:11:07 +02:00
Simon Giraudot 95682d11e0 Update PSP examples with concurrency template 2015-09-08 10:44:36 +02:00
Simon Giraudot 0afe0249f9 Bugfix: badly placed #ifdef caused bug if TBB was not used 2015-09-08 10:42:47 +02:00