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}
|
||||
|
||||
\note This class requires the \ref thirdpartyEigen library.
|
||||
|
||||
*/
|
||||
template< typename Traits >
|
||||
class Approximate_min_ellipsoid_d {
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue