SourceXtractorPlusPlus 1.0.3
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
ModelFitting::LevmarEngine Class Reference

LeastSquareEngine implementation which uses the levmar library. More...

#include <LevmarEngine.h>

Inheritance diagram for ModelFitting::LevmarEngine:
Collaboration diagram for ModelFitting::LevmarEngine:

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 &parameter_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

Detailed Description

LeastSquareEngine implementation which uses the levmar library.

Definition at line 36 of file LevmarEngine.h.

Constructor & Destructor Documentation

◆ LevmarEngine()

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.

Parameters
itmaxmaximum 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\)
deltastep used in difference approximation to the Jacobian

Definition at line 103 of file LevmarEngine.cpp.

References ModelFitting::logger, m_itmax, and m_opts.

◆ ~LevmarEngine()

ModelFitting::LevmarEngine::~LevmarEngine ( )
virtualdefault

Destructor.

Member Function Documentation

◆ solveProblem()

LeastSquareSummary ModelFitting::LevmarEngine::solveProblem ( EngineParameterManager & parameter_manager,
ResidualEstimator & residual_estimator )
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().

Here is the call graph for this function:

Member Data Documentation

◆ m_itmax

size_t ModelFitting::LevmarEngine::m_itmax
private

Definition at line 71 of file LevmarEngine.h.

Referenced by LevmarEngine(), and solveProblem().

◆ m_opts

std::vector<double> ModelFitting::LevmarEngine::m_opts
private

Definition at line 72 of file LevmarEngine.h.

Referenced by LevmarEngine(), and solveProblem().


The documentation for this class was generated from the following files: