11#include "../../defines.h"
12#include "../concepts.h"
14#include PONCA_MULTIARCH_INCLUDE_STD(cmath)
15#include PONCA_MULTIARCH_INCLUDE_CU_STD(limits)
19#define COVARIANCE_FIT_BASE_REQUIREMENTS ProvidesMeanPosition<T>
20#define COVARIANCE_FIT_DER_REQUIREMENTS \
21 ProvidesBasketDiffUnitBase<T>&& ProvidesMeanPositionDerivative<T>&& ProvidesPositionCovariance<T>
63 template <
class DataPo
int,
class _NFilter,
typename T>
64 requires COVARIANCE_FIT_BASE_REQUIREMENTS
67 PONCA_FITTING_DECLARE_DEFAULT_TYPES
71 using Solver = Eigen::SelfAdjointEigenSolver<MatrixType>;
80 PONCA_FITTING_DECLARE_INIT_ADD_FINALIZE
144 template <
class DataPo
int,
class _NFilter,
int DiffType,
typename T>
145 requires COVARIANCE_FIT_DER_REQUIREMENTS
148 PONCA_FITTING_DECLARE_DEFAULT_TYPES
149 PONCA_FITTING_DECLARE_MATRIX_TYPE
150 PONCA_FITTING_DECLARE_DEFAULT_DER_TYPES
157 PONCA_FITTING_DECLARE_INIT_ADDDER_FINALIZE
160#include "covariance.hpp"
Aggregator class used to declare specialized structures using CRTP.
Procedure that compute and decompose the covariance matrix of the neighbors positions.
Scalar lambda_0() const
The minimum eigenvalue .
CovarianceBase< DataPoint, _NFilter, T > & covarianceBase()
Explicit conversion to CovarianceBase , to access methods potentially hidden by heritage.
Scalar sphericity() const
Implements the sphericity .
Scalar lambda_2() const
The maximum eigenvalue .
Eigen::SelfAdjointEigenSolver< MatrixType > Solver
Solver used to analyse the covariance matrix.
MatrixType m_cov
Covariance matrix.
Scalar surfaceVariation() const
Implements surface variation.
typename DataPoint::MatrixType MatrixType
Alias to matrix type.
typename DataPoint::Scalar Scalar
Alias to scalar type.
Scalar lambda_1() const
The second eigenvalue .
Scalar planarity() const
Implements the planarity .
Solver m_solver
Solver used to analyse the covariance matrix.
Scalar anisotropy() const
Implements the anisotropy .
Scalar linearity() const
Implements the linearity .
const Solver & solver() const
Reading access to the Solver used to analyze the covariance matrix.
Scalar eigenentropy() const
Implements the eigenentropy .
Internal generic class computing the derivatives of covariance matrix computed by covarianceBase.
typename DataPoint::MatrixType MatrixType
Alias to matrix type.
CovarianceDer< DataPoint, _NFilter, DiffType, T > & covarianceDer()
Explicit conversion to CovarianceDer , to access methods potentially hidden by heritage.
MatrixType m_dCov[Base::NbDerivatives]
Computation data: derivatives of the covariance matrix.
This Source Code Form is subject to the terms of the Mozilla Public License, v.