Deprecating Diagonalize_traits: document dependency to Eigen

This commit is contained in:
Simon Giraudot 2018-04-16 15:33:36 +02:00
parent 4599787d67
commit 41d554fe58
14 changed files with 28 additions and 35 deletions

View File

@ -137,6 +137,8 @@ for display in Maplesoft's Maple.
\cgalExample{Approximate_min_ellipsoid_d/ellipsoid_for_maple.cpp}
\note This class requires the \ref thirdpartyEigen library.
*/
template< typename Traits >
class Approximate_min_ellipsoid_d {

View File

@ -184,10 +184,9 @@ public:
algorithm. Possible values are `Parallel_tag` (default value is %CGAL
is linked with TBB) or `Sequential_tag` (default value otherwise).
\tparam DiagonalizeTraits model of `DiagonalizeTraits` used for
matrix diagonalization. It can be omitted: if Eigen 3 (or greater)
is available and `CGAL_EIGEN3_ENABLED` is defined then an overload
using `Eigen_diagonalize_traits` is provided. Otherwise, the
internal implementation `Diagonalize_traits` is used.
matrix diagonalization. It can be omitted if Eigen 3 (or greater)
is available and `CGAL_EIGEN3_ENABLED` is defined. In that case,
an overload using `Eigen_diagonalize_traits` is provided.
\param input point range.
\param point_map property map to access the input points.

View File

@ -87,10 +87,8 @@ namespace Classification {
is linked with TBB) or `Sequential_tag` (default value otherwise).
\tparam DiagonalizeTraits model of `DiagonalizeTraits` used for
matrix diagonalization. It can be omitted: if Eigen 3 (or greater)
is available and `CGAL_EIGEN3_ENABLED` is defined then an overload
using `Eigen_diagonalize_traits` is provided. Otherwise, the
internal implementation `Diagonalize_traits` is used.
is available and `CGAL_EIGEN3_ENABLED` is defined: in that case, an
overload using `Eigen_diagonalize_traits` is provided.
*/
template <typename GeomTraits,
typename PointRange,

View File

@ -30,7 +30,6 @@
#include <CGAL/Search_traits_3.h>
#include <CGAL/Fuzzy_sphere.h>
#include <CGAL/Orthogonal_k_neighbor_search.h>
#include <CGAL/Default_diagonalize_traits.h>
#include <CGAL/centroid.h>
#include <CGAL/grid_simplify_point_set.h>
#include <CGAL/squared_distance_3.h>

View File

@ -29,6 +29,7 @@ algebra algorithm required by the fitting method. The scalar type, `SvdTraits::
\sa `Eigen_svd`
\sa `Monge_form`
\note This class requires the \ref thirdpartyEigen library.
*/
template< typename DataKernel, typename LocalKernel, typename SvdTraits >
class Monge_via_jet_fitting {

View File

@ -100,6 +100,7 @@ lloyd_optimize_mesh_3(c3t3,
\sa `CGAL::perturb_mesh_3()`
\sa `CGAL::odt_optimize_mesh_3()`
\note This function requires the \ref thirdpartyEigen library.
*/
template<typename C3T3, typename MeshDomain_3>

View File

@ -49,7 +49,7 @@ No default value.
\cgalNPBegin{diagonalize_traits} \anchor PSP_diagonalize_traits
is the solver used for diagonalizing covariance matrices.\n
\b Type: a class model of `DiagonalizeTraits`.\n
\b Default: if \ref thirdpartyEigen "Eigen" 3.2 (or greater) is available and `CGAL_EIGEN3_ENABLED` is defined, then `CGAL::Eigen_diagonalize_traits` is used. Otherwise, the fallback `CGAL::Diagonalize_traits` is used (note that it is significantly slower, so using Eigen is strongly advised).\n
\b Default: `CGAL::Eigen_diagonalize_traits` if \ref thirdpartyEigen "Eigen" 3.2 (or greater) is available and `CGAL_EIGEN3_ENABLED` is defined.\n
\cgalNPEnd
\cgalNPBegin{svd_traits} \anchor PSP_svd_traits

View File

@ -13,7 +13,7 @@ The tag `tag` identifies the dimension to be considered from the objects. For po
The class `K` is the kernel in which the value type of the `InputIterator` is defined. It can be omitted and deduced automatically from the value type.
The class `DiagonalizeTraits_` is a model of `DiagonalizeTraits`. It can be omitted: if Eigen 3 (or greater) is available and `CGAL_EIGEN3_ENABLED` is defined then an overload using `Eigen_diagonalize_traits` is provided. Otherwise, the internal implementation `Diagonalize_traits` is used.
The class `DiagonalizeTraits_` is a model of `DiagonalizeTraits`. It can be omitted if Eigen 3 (or greater) is available and `CGAL_EIGEN3_ENABLED` is defined: in that case, an overload using `Eigen_diagonalize_traits` is provided.
\cgalHeading{Requirements}

View File

@ -65,10 +65,9 @@ value type of `InputIterator` is defined. It can be omitted and deduced
automatically from the value type.
The class `DiagonalizeTraits_` is a model of `DiagonalizeTraits`. It
can be omitted: if Eigen 3 (or greater) is available and
`CGAL_EIGEN3_ENABLED` is defined then an overload using
`Eigen_diagonalize_traits` is provided. Otherwise, the internal
implementation `Diagonalize_traits` is used.
can be omitted if Eigen 3 (or greater) is available and
`CGAL_EIGEN3_ENABLED` is defined: in that case, an overload using
`Eigen_diagonalize_traits` is provided.
\note This function is significantly faster when using
`Eigen_diagonalize_traits` and it is strongly advised to use this

View File

@ -61,11 +61,10 @@ namespace Scale_space_reconstruction_3
* \tparam DiagonalizeTraits model of `DiagonalizeTraits` that
* determines how to diagonalize a weighted covariance matrix to
* approximate a weighted point set. It can be omitted: if Eigen 3
* (or greater) is available and `CGAL_EIGEN3_ENABLED` is defined
* then an overload using `Eigen_diagonalize_traits` is
* provided. Otherwise, the internal implementation
* `Diagonalize_traits` is used.
* approximate a weighted point set. It can be omitted if Eigen 3 (or
* greater) is available and `CGAL_EIGEN3_ENABLED` is defined: in
* that case, an overload using `Eigen_diagonalize_traits` is
* provided.
* \tparam ConcurrencyTag indicates whether to use concurrent
* processing. It can be omitted: if TBB (or greater) is available
* and `CGAL_LINKED_WITH_TBB` is defined then `Parallel_tag` is

View File

@ -17,8 +17,6 @@ follows:
\tparam FT Number type
\tparam dim Dimension of the matrices and vectors
\cgalHasModel `CGAL::Default_diagonalize_traits`
\cgalHasModel `CGAL::Diagonalize_traits`
\cgalHasModel `CGAL::Eigen_diagonalize_traits`
*/

View File

@ -26,23 +26,12 @@ Library (MKL)</a>.
The concept `DiagonalizeTraits<T,dim>` defines an interface for the
diagonalization and computation of eigenvectors and eigenvalues of a
symmetric matrix. `T` is the number type and `dim` is the dimension of
the matrices and vector (set to 3 by default). We provide two models
for this concept:
- `Eigen_diagonalize_traits<T,dim>` uses the \ref thirdpartyEigen library.
- `Diagonalize_traits<T,dim>` is an internal implementation that does not
depend on another library.
Although both models achieve the same computation,
`Eigen_diagonalize_traits<T,dim>` is more precise and faster: it
should thus be used if the \ref thirdpartyEigen library is
available. The eigenvalues are stored in ascending order and
eigenvectors are stored in accordance.
the matrices and vector (set to 3 by default). We provide the model
`Eigen_diagonalize_traits<T,dim>` that uses the \ref thirdpartyEigen library.
This is an example of an eigen decomposition of a matrix using this
class:
\cgalExample{Solver_interface/diagonalize_matrix.cpp}

View File

@ -26,6 +26,8 @@
#include <CGAL/Diagonalize_traits.h>
#endif
/// \cond SKIP_IN_MANUAL
namespace CGAL {
/// \ingroup PkgSolver
@ -84,4 +86,6 @@ public:
} // namespace CGAL
/// \endcond
#endif // CGAL_DEFAULT_DIAGONALIZE_TRAITS_H

View File

@ -30,6 +30,8 @@
CGAL_DEPRECATED_MSG("CGAL::Diagonalize_traits is a deprecated class that can \
lead to precision issues, please use CGAL::Eigen_diagonalize_traits")
/// \cond SKIP_IN_MANUAL
namespace CGAL {
/// \ingroup PkgSolver
@ -299,4 +301,6 @@ public:
} // namespace CGAL
/// \endcond
#endif // CGAL_DIAGONALIZE_TRAITS_H