mirror of https://github.com/CGAL/cgal
Deprecating Diagonalize_traits: document dependency to Eigen
This commit is contained in:
parent
4599787d67
commit
41d554fe58
|
|
@ -137,6 +137,8 @@ for display in Maplesoft's Maple.
|
||||||
|
|
||||||
\cgalExample{Approximate_min_ellipsoid_d/ellipsoid_for_maple.cpp}
|
\cgalExample{Approximate_min_ellipsoid_d/ellipsoid_for_maple.cpp}
|
||||||
|
|
||||||
|
\note This class requires the \ref thirdpartyEigen library.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
template< typename Traits >
|
template< typename Traits >
|
||||||
class Approximate_min_ellipsoid_d {
|
class Approximate_min_ellipsoid_d {
|
||||||
|
|
|
||||||
|
|
@ -184,10 +184,9 @@ public:
|
||||||
algorithm. Possible values are `Parallel_tag` (default value is %CGAL
|
algorithm. Possible values are `Parallel_tag` (default value is %CGAL
|
||||||
is linked with TBB) or `Sequential_tag` (default value otherwise).
|
is linked with TBB) or `Sequential_tag` (default value otherwise).
|
||||||
\tparam DiagonalizeTraits model of `DiagonalizeTraits` used for
|
\tparam DiagonalizeTraits model of `DiagonalizeTraits` used for
|
||||||
matrix diagonalization. It can be omitted: if Eigen 3 (or greater)
|
matrix diagonalization. It can be omitted if Eigen 3 (or greater)
|
||||||
is available and `CGAL_EIGEN3_ENABLED` is defined then an overload
|
is available and `CGAL_EIGEN3_ENABLED` is defined. In that case,
|
||||||
using `Eigen_diagonalize_traits` is provided. Otherwise, the
|
an overload using `Eigen_diagonalize_traits` is provided.
|
||||||
internal implementation `Diagonalize_traits` is used.
|
|
||||||
|
|
||||||
\param input point range.
|
\param input point range.
|
||||||
\param point_map property map to access the input points.
|
\param point_map property map to access the input points.
|
||||||
|
|
|
||||||
|
|
@ -87,10 +87,8 @@ namespace Classification {
|
||||||
is linked with TBB) or `Sequential_tag` (default value otherwise).
|
is linked with TBB) or `Sequential_tag` (default value otherwise).
|
||||||
\tparam DiagonalizeTraits model of `DiagonalizeTraits` used for
|
\tparam DiagonalizeTraits model of `DiagonalizeTraits` used for
|
||||||
matrix diagonalization. It can be omitted: if Eigen 3 (or greater)
|
matrix diagonalization. It can be omitted: if Eigen 3 (or greater)
|
||||||
is available and `CGAL_EIGEN3_ENABLED` is defined then an overload
|
is available and `CGAL_EIGEN3_ENABLED` is defined: in that case, an
|
||||||
using `Eigen_diagonalize_traits` is provided. Otherwise, the
|
overload using `Eigen_diagonalize_traits` is provided.
|
||||||
internal implementation `Diagonalize_traits` is used.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
template <typename GeomTraits,
|
template <typename GeomTraits,
|
||||||
typename PointRange,
|
typename PointRange,
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,6 @@
|
||||||
#include <CGAL/Search_traits_3.h>
|
#include <CGAL/Search_traits_3.h>
|
||||||
#include <CGAL/Fuzzy_sphere.h>
|
#include <CGAL/Fuzzy_sphere.h>
|
||||||
#include <CGAL/Orthogonal_k_neighbor_search.h>
|
#include <CGAL/Orthogonal_k_neighbor_search.h>
|
||||||
#include <CGAL/Default_diagonalize_traits.h>
|
|
||||||
#include <CGAL/centroid.h>
|
#include <CGAL/centroid.h>
|
||||||
#include <CGAL/grid_simplify_point_set.h>
|
#include <CGAL/grid_simplify_point_set.h>
|
||||||
#include <CGAL/squared_distance_3.h>
|
#include <CGAL/squared_distance_3.h>
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ algebra algorithm required by the fitting method. The scalar type, `SvdTraits::
|
||||||
\sa `Eigen_svd`
|
\sa `Eigen_svd`
|
||||||
\sa `Monge_form`
|
\sa `Monge_form`
|
||||||
|
|
||||||
|
\note This class requires the \ref thirdpartyEigen library.
|
||||||
*/
|
*/
|
||||||
template< typename DataKernel, typename LocalKernel, typename SvdTraits >
|
template< typename DataKernel, typename LocalKernel, typename SvdTraits >
|
||||||
class Monge_via_jet_fitting {
|
class Monge_via_jet_fitting {
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,7 @@ lloyd_optimize_mesh_3(c3t3,
|
||||||
\sa `CGAL::perturb_mesh_3()`
|
\sa `CGAL::perturb_mesh_3()`
|
||||||
\sa `CGAL::odt_optimize_mesh_3()`
|
\sa `CGAL::odt_optimize_mesh_3()`
|
||||||
|
|
||||||
|
\note This function requires the \ref thirdpartyEigen library.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
template<typename C3T3, typename MeshDomain_3>
|
template<typename C3T3, typename MeshDomain_3>
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ No default value.
|
||||||
\cgalNPBegin{diagonalize_traits} \anchor PSP_diagonalize_traits
|
\cgalNPBegin{diagonalize_traits} \anchor PSP_diagonalize_traits
|
||||||
is the solver used for diagonalizing covariance matrices.\n
|
is the solver used for diagonalizing covariance matrices.\n
|
||||||
\b Type: a class model of `DiagonalizeTraits`.\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
|
\cgalNPEnd
|
||||||
|
|
||||||
\cgalNPBegin{svd_traits} \anchor PSP_svd_traits
|
\cgalNPBegin{svd_traits} \anchor PSP_svd_traits
|
||||||
|
|
|
||||||
|
|
@ -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 `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}
|
\cgalHeading{Requirements}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,10 +65,9 @@ value type of `InputIterator` is defined. It can be omitted and deduced
|
||||||
automatically from the value type.
|
automatically from the value type.
|
||||||
|
|
||||||
The class `DiagonalizeTraits_` is a model of `DiagonalizeTraits`. It
|
The class `DiagonalizeTraits_` is a model of `DiagonalizeTraits`. It
|
||||||
can be omitted: if Eigen 3 (or greater) is available and
|
can be omitted if Eigen 3 (or greater) is available and
|
||||||
`CGAL_EIGEN3_ENABLED` is defined then an overload using
|
`CGAL_EIGEN3_ENABLED` is defined: in that case, an overload using
|
||||||
`Eigen_diagonalize_traits` is provided. Otherwise, the internal
|
`Eigen_diagonalize_traits` is provided.
|
||||||
implementation `Diagonalize_traits` is used.
|
|
||||||
|
|
||||||
\note This function is significantly faster when using
|
\note This function is significantly faster when using
|
||||||
`Eigen_diagonalize_traits` and it is strongly advised to use this
|
`Eigen_diagonalize_traits` and it is strongly advised to use this
|
||||||
|
|
|
||||||
|
|
@ -61,11 +61,10 @@ namespace Scale_space_reconstruction_3
|
||||||
|
|
||||||
* \tparam DiagonalizeTraits model of `DiagonalizeTraits` that
|
* \tparam DiagonalizeTraits model of `DiagonalizeTraits` that
|
||||||
* determines how to diagonalize a weighted covariance matrix to
|
* determines how to diagonalize a weighted covariance matrix to
|
||||||
* approximate a weighted point set. It can be omitted: if Eigen 3
|
* approximate a weighted point set. It can be omitted if Eigen 3 (or
|
||||||
* (or greater) is available and `CGAL_EIGEN3_ENABLED` is defined
|
* greater) is available and `CGAL_EIGEN3_ENABLED` is defined: in
|
||||||
* then an overload using `Eigen_diagonalize_traits` is
|
* that case, an overload using `Eigen_diagonalize_traits` is
|
||||||
* provided. Otherwise, the internal implementation
|
* provided.
|
||||||
* `Diagonalize_traits` is used.
|
|
||||||
* \tparam ConcurrencyTag indicates whether to use concurrent
|
* \tparam ConcurrencyTag indicates whether to use concurrent
|
||||||
* processing. It can be omitted: if TBB (or greater) is available
|
* processing. It can be omitted: if TBB (or greater) is available
|
||||||
* and `CGAL_LINKED_WITH_TBB` is defined then `Parallel_tag` is
|
* and `CGAL_LINKED_WITH_TBB` is defined then `Parallel_tag` is
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,6 @@ follows:
|
||||||
\tparam FT Number type
|
\tparam FT Number type
|
||||||
\tparam dim Dimension of the matrices and vectors
|
\tparam dim Dimension of the matrices and vectors
|
||||||
|
|
||||||
\cgalHasModel `CGAL::Default_diagonalize_traits`
|
|
||||||
\cgalHasModel `CGAL::Diagonalize_traits`
|
|
||||||
\cgalHasModel `CGAL::Eigen_diagonalize_traits`
|
\cgalHasModel `CGAL::Eigen_diagonalize_traits`
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,23 +26,12 @@ Library (MKL)</a>.
|
||||||
The concept `DiagonalizeTraits<T,dim>` defines an interface for the
|
The concept `DiagonalizeTraits<T,dim>` defines an interface for the
|
||||||
diagonalization and computation of eigenvectors and eigenvalues of a
|
diagonalization and computation of eigenvectors and eigenvalues of a
|
||||||
symmetric matrix. `T` is the number type and `dim` is the dimension of
|
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
|
the matrices and vector (set to 3 by default). We provide the model
|
||||||
for this concept:
|
`Eigen_diagonalize_traits<T,dim>` that uses the \ref thirdpartyEigen library.
|
||||||
|
|
||||||
- `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.
|
|
||||||
|
|
||||||
This is an example of an eigen decomposition of a matrix using this
|
This is an example of an eigen decomposition of a matrix using this
|
||||||
class:
|
class:
|
||||||
|
|
||||||
|
|
||||||
\cgalExample{Solver_interface/diagonalize_matrix.cpp}
|
\cgalExample{Solver_interface/diagonalize_matrix.cpp}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,8 @@
|
||||||
#include <CGAL/Diagonalize_traits.h>
|
#include <CGAL/Diagonalize_traits.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/// \cond SKIP_IN_MANUAL
|
||||||
|
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
/// \ingroup PkgSolver
|
/// \ingroup PkgSolver
|
||||||
|
|
@ -84,4 +86,6 @@ public:
|
||||||
|
|
||||||
} // namespace CGAL
|
} // namespace CGAL
|
||||||
|
|
||||||
|
/// \endcond
|
||||||
|
|
||||||
#endif // CGAL_DEFAULT_DIAGONALIZE_TRAITS_H
|
#endif // CGAL_DEFAULT_DIAGONALIZE_TRAITS_H
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,8 @@
|
||||||
CGAL_DEPRECATED_MSG("CGAL::Diagonalize_traits is a deprecated class that can \
|
CGAL_DEPRECATED_MSG("CGAL::Diagonalize_traits is a deprecated class that can \
|
||||||
lead to precision issues, please use CGAL::Eigen_diagonalize_traits")
|
lead to precision issues, please use CGAL::Eigen_diagonalize_traits")
|
||||||
|
|
||||||
|
/// \cond SKIP_IN_MANUAL
|
||||||
|
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
/// \ingroup PkgSolver
|
/// \ingroup PkgSolver
|
||||||
|
|
@ -299,4 +301,6 @@ public:
|
||||||
|
|
||||||
} // namespace CGAL
|
} // namespace CGAL
|
||||||
|
|
||||||
|
/// \endcond
|
||||||
|
|
||||||
#endif // CGAL_DIAGONALIZE_TRAITS_H
|
#endif // CGAL_DIAGONALIZE_TRAITS_H
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue