|
SourceXtractorPlusPlus 1.0.3
SourceXtractor++, the next generation SExtractor
|
LeastSquareEngine implementation which uses the levmar library. More...
#include <LevmarEngine.h>


Public Member Functions | |
| LevmarEngine (size_t itmax=1000, double tau=1E-3, double epsilon1=1E-8, double epsilon2=1E-8, double epsilon3=1E-8, double delta=1E-4) | |
| Constructs a new instance of the engine. | |
| virtual | ~LevmarEngine () |
| Destructor. | |
| LeastSquareSummary | solveProblem (EngineParameterManager ¶meter_manager, ResidualEstimator &residual_estimator) override |
| Public Member Functions inherited from ModelFitting::LeastSquareEngine | |
| virtual | ~LeastSquareEngine ()=default |
| Destructor. | |
Private Attributes | |
| size_t | m_itmax |
| std::vector< double > | m_opts |
LeastSquareEngine implementation which uses the levmar library.
Definition at line 36 of file LevmarEngine.h.
| ModelFitting::LevmarEngine::LevmarEngine | ( | size_t | itmax = 1000, |
| double | tau = 1E-3, | ||
| double | epsilon1 = 1E-8, | ||
| double | epsilon2 = 1E-8, | ||
| double | epsilon3 = 1E-8, | ||
| double | delta = 1E-4 ) |
Constructs a new instance of the engine.
| itmax | maximum number of iterations |
| tau | \(\tau\): scale factor for initial \(\mu\) |
| epsilon1 | \(\epsilon1\): stopping threshold for \(||J^T\epsilon||_{inf}\) |
| epsilon2 | \(\epsilon1\): stopping threshold for \(||\Delta p||_2\) |
| epsilon3 | \(\epsilon1\): stopping threshold for \(||\epsilon||_2\) |
| delta | step used in difference approximation to the Jacobian |
Definition at line 103 of file LevmarEngine.cpp.
References ModelFitting::logger, m_itmax, and m_opts.
|
virtualdefault |
Destructor.
|
overridevirtual |
Solves the minimization problem using the levmar library. The returned summary contains as underlying_framework_info an std::array<double,10>, which keeps the information regarding the minimization as it is provided by levmar (for more info see http://users.ics.forth.gr/~lourakis/levmar).
Implements ModelFitting::LeastSquareEngine.
Definition at line 122 of file LevmarEngine.cpp.
References std::vector< T >::begin(), ModelFitting::EngineParameterManager::convertCovarianceMatrixToWorldSpace(), std::chrono::duration::count(), std::array< T >::data(), std::vector< T >::data(), ModelFitting::LeastSquareSummary::duration, std::end(), ModelFitting::LeastSquareSummary::engine_stop_reason, std::unique_ptr< T >::get(), ModelFitting::EngineParameterManager::getEngineValues(), ModelFitting::getStatusFlag(), ModelFitting::LeastSquareSummary::iteration_no, LEVMAR_WORKAREA_MAX_SIZE, m_itmax, m_opts, ModelFitting::LeastSquareSummary::MEMORY, std::chrono::steady_clock::now(), ModelFitting::EngineParameterManager::numberOfParameters(), ModelFitting::ResidualEstimator::numberOfResiduals(), ModelFitting::LeastSquareSummary::parameter_sigmas, ModelFitting::ResidualEstimator::populateResiduals(), std::vector< T >::push_back(), std::unique_ptr< T >::reset(), std::vector< T >::resize(), std::sqrt(), ModelFitting::LeastSquareSummary::status_flag, std::tie(), ModelFitting::LeastSquareSummary::underlying_framework_info, and ModelFitting::EngineParameterManager::updateEngineValues().

|
private |
Definition at line 71 of file LevmarEngine.h.
Referenced by LevmarEngine(), and solveProblem().
|
private |
Definition at line 72 of file LevmarEngine.h.
Referenced by LevmarEngine(), and solveProblem().