Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
vnl_sparse_lm Class Reference

Sparse Levenberg Marquardt nonlinear least squares. More...

#include <vnl_sparse_lm.h>

Inheritance diagram for vnl_sparse_lm:
Inheritance graph
[legend]

Public Types

enum  ReturnCodes {
  ERROR_FAILURE =-1, ERROR_DODGY_INPUT = 0, CONVERGED_FTOL = 1, CONVERGED_XTOL = 2,
  CONVERGED_XFTOL = 3, CONVERGED_GTOL = 4, FAILED_TOO_MANY_ITERATIONS = 5, TOO_MANY_ITERATIONS = FAILED_TOO_MANY_ITERATIONS,
  FAILED_FTOL_TOO_SMALL = 6, FAILED_XTOL_TOO_SMALL = 7, FAILED_GTOL_TOO_SMALL = 8, FAILED_USER_REQUEST = 9
}
 Some generic return codes that apply to all minimizers. More...
 

Public Member Functions

 vnl_sparse_lm (vnl_sparse_lst_sqr_function &f)
 Initialize with the function object that is to be minimized. More...
 
 ~vnl_sparse_lm () override
 Destructor. More...
 
bool minimize (vnl_vector< double > &a, vnl_vector< double > &b, vnl_vector< double > &c, bool use_gradient=true, bool use_weights=true)
 Minimize the function supplied in the constructor until convergence or failure. More...
 
void diagnose_outcome () const
 Provide an ASCII diagnosis of the last minimization on std::ostream. More...
 
void diagnose_outcome (std::ostream &) const
 
vnl_matrix< double > const & get_JtJ ()
 Return J'*J computed at last minimum. More...
 
const vnl_vector< double > & get_weights () const
 Access the final weights after optimization. More...
 
void set_f_tolerance (double v)
 Set the convergence tolerance on F (sum of squared residuals). More...
 
double get_f_tolerance () const
 
void set_x_tolerance (double v)
 Set the convergence tolerance on X. More...
 
double get_x_tolerance () const
 
void set_g_tolerance (double v)
 Set the convergence tolerance on Grad(F)' * F. More...
 
double get_g_tolerance () const
 
void set_max_function_evals (int v)
 Set the termination maximum number of iterations. More...
 
int get_max_function_evals () const
 
void set_epsilon_function (double v)
 Set the step length for FD Jacobian. More...
 
double get_epsilon_function () const
 
void set_trace (bool on)
 Turn on per-iteration printouts. More...
 
bool get_trace () const
 
void set_verbose (bool verb)
 Set verbose flag. More...
 
bool get_verbose () const
 
void set_check_derivatives (int cd)
 Set check_derivatives flag. Negative values may mean fewer checks. More...
 
int get_check_derivatives () const
 
double get_start_error () const
 Return the error of the function when it was evaluated at the start point of the last minimization. More...
 
double get_end_error () const
 Return the best error that was achieved by the last minimization, corresponding to the returned x. More...
 
int get_num_evaluations () const
 Return the total number of times the function was evaluated by the last minimization. More...
 
int get_num_iterations () const
 Return the number of {iterations} in the last minimization. More...
 
bool obj_value_reduced ()
 Whether the error reduced in the last minimization. More...
 
virtual vnl_matrix< double > const & get_covariance ()
 Return the covariance of the estimate at the end. More...
 
virtual std::string is_a () const
 Return the name of the class. More...
 
virtual bool is_class (std::string const &s) const
 Return true if the name of the class matches the argument. More...
 
ReturnCodes get_failure_code () const
 Return the failure code of the last minimization. More...
 

Protected Member Functions

void init (vnl_sparse_lst_sqr_function *f)
 
void reset ()
 
void report_eval (double f)
 Called by derived classes after each function evaluation. More...
 
virtual bool report_iter ()
 Called by derived classes after each iteration. More...
 

Protected Attributes

double tau_
 used to compute the initial damping. More...
 
vnl_sparse_lst_sqr_functionf_
 the function to minimize. More...
 
vnl_matrix< double > inv_covar_
 
bool set_covariance_
 
double xtol
 Termination tolerance on X (solution vector) More...
 
long maxfev
 Termination maximum number of iterations. More...
 
double ftol
 Termination tolerance on F (sum of squared residuals) More...
 
double gtol
 Termination tolerance on Grad(F)' * F = 0. More...
 
double epsfcn
 Step length for FD Jacobian. More...
 
unsigned num_iterations_
 
long num_evaluations_
 
double start_error_
 
double end_error_
 
bool trace
 
bool verbose_
 
int check_derivatives_
 
ReturnCodes failure_code_
 

Private Member Functions

void allocate_matrices ()
 allocate matrix memory by setting all the matrix sizes. More...
 
bool check_vector_sizes (vnl_vector< double > const &a, vnl_vector< double > const &b, vnl_vector< double > const &c)
 check vector sizes and verify that they match the problem size. More...
 
void compute_normal_equations ()
 compute the blocks making up the the normal equations: Jt J d = Jt e. More...
 
vnl_vector< double > extract_diagonal () const
 extract the vector on the diagonal of Jt J. More...
 
void set_diagonal (const vnl_vector< double > &diag)
 set the vector on the diagonal of Jt J. More...
 
void compute_invV_Y ()
 compute all inv(Vi) and Yij. More...
 
void compute_Z_Sa (vnl_matrix< double > &Sa)
 compute Z and Sa. More...
 
void compute_Ma (const vnl_matrix< double > &H)
 compute Ma. More...
 
void compute_Mb ()
 compute Mb. More...
 
void solve_dc (vnl_vector< double > &dc)
 solve for dc. More...
 
void compute_sea (vnl_vector< double > const &dc, vnl_vector< double > &sea)
 compute sea using ea, Z, dc, Y, and eb. More...
 
void compute_Sa_sea (vnl_matrix< double > &Sa, vnl_vector< double > &sea)
 compute Sa and sea. More...
 
void backsolve_db (vnl_vector< double > const &da, vnl_vector< double > const &dc, vnl_vector< double > &db)
 back solve to find db using da and dc. More...
 

Private Attributes

const int num_a_
 
const int num_b_
 
const int num_e_
 
const int num_nz_
 
const int size_a_
 
const int size_b_
 
const int size_c_
 
const int size_e_
 
std::vector< vnl_matrix< double > > A_
 Storage for each of the Jacobians A_ij, B_ij, and C_ij. More...
 
std::vector< vnl_matrix< double > > B_
 
std::vector< vnl_matrix< double > > C_
 
std::vector< vnl_matrix< double > > U_
 Storage for normal equation blocks. More...
 
std::vector< vnl_matrix< double > > V_
 
vnl_matrix< double > T_
 
std::vector< vnl_matrix< double > > W_
 
std::vector< vnl_matrix< double > > R_
 
std::vector< vnl_matrix< double > > Q_
 
vnl_vector< double > ea_
 
vnl_vector< double > eb_
 
vnl_vector< double > ec_
 
vnl_vector< double > e_
 
vnl_vector< double > weights_
 
std::vector< vnl_matrix< double > > inv_V_
 
std::vector< vnl_matrix< double > > Y_
 
std::vector< vnl_matrix< double > > Z_
 
std::vector< vnl_matrix< double > > Ma_
 
std::vector< vnl_matrix< double > > Mb_
 

Detailed Description

Sparse Levenberg Marquardt nonlinear least squares.

Unlike vnl_levenberg_marquardt this does not use the MINPACK routines. This class implements sparse Levenberg Marquardt as described in the Hartley and Zisserman "Multiple View Geometry" book and further described in a technical report on sparse bundle adjustment available at http://www.ics.forth.gr/~lourakis/sba

Definition at line 35 of file vnl_sparse_lm.h.

Member Enumeration Documentation

◆ ReturnCodes

Some generic return codes that apply to all minimizers.

Enumerator
ERROR_FAILURE 
ERROR_DODGY_INPUT 
CONVERGED_FTOL 
CONVERGED_XTOL 
CONVERGED_XFTOL 
CONVERGED_GTOL 
FAILED_TOO_MANY_ITERATIONS 
TOO_MANY_ITERATIONS 
FAILED_FTOL_TOO_SMALL 
FAILED_XTOL_TOO_SMALL 
FAILED_GTOL_TOO_SMALL 
FAILED_USER_REQUEST 

Definition at line 102 of file vnl_nonlinear_minimizer.h.

Constructor & Destructor Documentation

◆ vnl_sparse_lm()

vnl_sparse_lm::vnl_sparse_lm ( vnl_sparse_lst_sqr_function f)

Initialize with the function object that is to be minimized.

Definition at line 22 of file vnl_sparse_lm.cxx.

◆ ~vnl_sparse_lm()

vnl_sparse_lm::~vnl_sparse_lm ( )
overridedefault

Destructor.

Member Function Documentation

◆ allocate_matrices()

void vnl_sparse_lm::allocate_matrices ( )
private

allocate matrix memory by setting all the matrix sizes.

Definition at line 352 of file vnl_sparse_lm.cxx.

◆ backsolve_db()

void vnl_sparse_lm::backsolve_db ( vnl_vector< double > const &  da,
vnl_vector< double > const &  dc,
vnl_vector< double > &  db 
)
private

back solve to find db using da and dc.

Definition at line 751 of file vnl_sparse_lm.cxx.

◆ check_vector_sizes()

bool vnl_sparse_lm::check_vector_sizes ( vnl_vector< double > const &  a,
vnl_vector< double > const &  b,
vnl_vector< double > const &  c 
)
private

check vector sizes and verify that they match the problem size.

Definition at line 315 of file vnl_sparse_lm.cxx.

◆ compute_invV_Y()

void vnl_sparse_lm::compute_invV_Y ( )
private

compute all inv(Vi) and Yij.

Definition at line 493 of file vnl_sparse_lm.cxx.

◆ compute_Ma()

void vnl_sparse_lm::compute_Ma ( const vnl_matrix< double > &  H)
private

compute Ma.

Definition at line 580 of file vnl_sparse_lm.cxx.

◆ compute_Mb()

void vnl_sparse_lm::compute_Mb ( )
private

compute Mb.

Definition at line 600 of file vnl_sparse_lm.cxx.

◆ compute_normal_equations()

void vnl_sparse_lm::compute_normal_equations ( )
private

compute the blocks making up the the normal equations: Jt J d = Jt e.

Definition at line 392 of file vnl_sparse_lm.cxx.

◆ compute_Sa_sea()

void vnl_sparse_lm::compute_Sa_sea ( vnl_matrix< double > &  Sa,
vnl_vector< double > &  sea 
)
private

compute Sa and sea.

only used when size_c_ == 0

Definition at line 695 of file vnl_sparse_lm.cxx.

◆ compute_sea()

void vnl_sparse_lm::compute_sea ( vnl_vector< double > const &  dc,
vnl_vector< double > &  sea 
)
private

compute sea using ea, Z, dc, Y, and eb.

Definition at line 667 of file vnl_sparse_lm.cxx.

◆ compute_Z_Sa()

void vnl_sparse_lm::compute_Z_Sa ( vnl_matrix< double > &  Sa)
private

compute Z and Sa.

Definition at line 521 of file vnl_sparse_lm.cxx.

◆ diagnose_outcome() [1/2]

void vnl_sparse_lm::diagnose_outcome ( ) const

Provide an ASCII diagnosis of the last minimization on std::ostream.

Definition at line 782 of file vnl_sparse_lm.cxx.

◆ diagnose_outcome() [2/2]

void vnl_sparse_lm::diagnose_outcome ( std::ostream &  s) const

Definition at line 789 of file vnl_sparse_lm.cxx.

◆ extract_diagonal()

vnl_vector< double > vnl_sparse_lm::extract_diagonal ( ) const
private

extract the vector on the diagonal of Jt J.

Definition at line 451 of file vnl_sparse_lm.cxx.

◆ get_check_derivatives()

int vnl_nonlinear_minimizer::get_check_derivatives ( ) const
inlineinherited

Definition at line 82 of file vnl_nonlinear_minimizer.h.

◆ get_covariance()

vnl_matrix< double > const & vnl_nonlinear_minimizer::get_covariance ( )
virtualinherited

Return the covariance of the estimate at the end.

Definition at line 30 of file vnl_nonlinear_minimizer.cxx.

◆ get_end_error()

double vnl_nonlinear_minimizer::get_end_error ( ) const
inlineinherited

Return the best error that was achieved by the last minimization, corresponding to the returned x.

Definition at line 92 of file vnl_nonlinear_minimizer.h.

◆ get_epsilon_function()

double vnl_nonlinear_minimizer::get_epsilon_function ( ) const
inlineinherited

Definition at line 70 of file vnl_nonlinear_minimizer.h.

◆ get_f_tolerance()

double vnl_nonlinear_minimizer::get_f_tolerance ( ) const
inlineinherited

Definition at line 46 of file vnl_nonlinear_minimizer.h.

◆ get_failure_code()

ReturnCodes vnl_nonlinear_minimizer::get_failure_code ( ) const
inlineinherited

Return the failure code of the last minimization.

Definition at line 132 of file vnl_nonlinear_minimizer.h.

◆ get_g_tolerance()

double vnl_nonlinear_minimizer::get_g_tolerance ( ) const
inlineinherited

Definition at line 60 of file vnl_nonlinear_minimizer.h.

◆ get_JtJ()

vnl_matrix< double > const & vnl_sparse_lm::get_JtJ ( )

Return J'*J computed at last minimum.

it is an approximation of inverse of covariance

Definition at line 837 of file vnl_sparse_lm.cxx.

◆ get_max_function_evals()

int vnl_nonlinear_minimizer::get_max_function_evals ( ) const
inlineinherited

Definition at line 64 of file vnl_nonlinear_minimizer.h.

◆ get_num_evaluations()

int vnl_nonlinear_minimizer::get_num_evaluations ( ) const
inlineinherited

Return the total number of times the function was evaluated by the last minimization.

Definition at line 95 of file vnl_nonlinear_minimizer.h.

◆ get_num_iterations()

int vnl_nonlinear_minimizer::get_num_iterations ( ) const
inlineinherited

Return the number of {iterations} in the last minimization.

Each iteration may have comprised several function evaluations.

Definition at line 99 of file vnl_nonlinear_minimizer.h.

◆ get_start_error()

double vnl_nonlinear_minimizer::get_start_error ( ) const
inlineinherited

Return the error of the function when it was evaluated at the start point of the last minimization.

For minimizers driven by a vnl_least_squares_function (Levenberg-Marquardt) this is usually the RMS error. For those driven by a vnl_cost_function (CG, LBFGS, Amoeba) it is simply the value of the vnl_cost_function at the start (usually the sum of squared residuals).

Definition at line 89 of file vnl_nonlinear_minimizer.h.

◆ get_trace()

bool vnl_nonlinear_minimizer::get_trace ( ) const
inlineinherited

Definition at line 74 of file vnl_nonlinear_minimizer.h.

◆ get_verbose()

bool vnl_nonlinear_minimizer::get_verbose ( ) const
inlineinherited

Definition at line 78 of file vnl_nonlinear_minimizer.h.

◆ get_weights()

const vnl_vector<double>& vnl_sparse_lm::get_weights ( ) const
inline

Access the final weights after optimization.

Definition at line 69 of file vnl_sparse_lm.h.

◆ get_x_tolerance()

double vnl_nonlinear_minimizer::get_x_tolerance ( ) const
inlineinherited

Definition at line 56 of file vnl_nonlinear_minimizer.h.

◆ init()

void vnl_sparse_lm::init ( vnl_sparse_lst_sqr_function f)
protected

Definition at line 56 of file vnl_sparse_lm.cxx.

◆ is_a()

std::string vnl_nonlinear_minimizer::is_a ( ) const
virtualinherited

Return the name of the class.

Used by polymorphic IO

Definition at line 70 of file vnl_nonlinear_minimizer.cxx.

◆ is_class()

bool vnl_nonlinear_minimizer::is_class ( std::string const &  s) const
virtualinherited

Return true if the name of the class matches the argument.

Used by polymorphic IO

Definition at line 78 of file vnl_nonlinear_minimizer.cxx.

◆ minimize()

bool vnl_sparse_lm::minimize ( vnl_vector< double > &  a,
vnl_vector< double > &  b,
vnl_vector< double > &  c,
bool  use_gradient = true,
bool  use_weights = true 
)

Minimize the function supplied in the constructor until convergence or failure.

On return, a, b, and c are such that f(a,b,c) is the lowest value achieved. Returns true for convergence, false for failure. If use_gradient is set to false, a finite difference approximation will be used, even if the Jacobian functions have been provided. If use_weights is set to false, weights will not be computed even if a weighting function has been provided.

Systems to solve will be Sc*dc=sec and Sa*da=sea.

Definition at line 83 of file vnl_sparse_lm.cxx.

◆ obj_value_reduced()

bool vnl_nonlinear_minimizer::obj_value_reduced ( )
inlineinherited

Whether the error reduced in the last minimization.

Definition at line 118 of file vnl_nonlinear_minimizer.h.

◆ report_eval()

void vnl_nonlinear_minimizer::report_eval ( double  f)
protectedinherited

Called by derived classes after each function evaluation.

Definition at line 45 of file vnl_nonlinear_minimizer.cxx.

◆ report_iter()

bool vnl_nonlinear_minimizer::report_iter ( )
protectedvirtualinherited

Called by derived classes after each iteration.

When true is returned, minimizer should stop with code FAILED_USER_REQUEST. Derived classes can redefine this function to make the optimizer stop when a condition is satisfied.

Definition at line 58 of file vnl_nonlinear_minimizer.cxx.

◆ reset()

void vnl_nonlinear_minimizer::reset ( )
protectedinherited

Definition at line 36 of file vnl_nonlinear_minimizer.cxx.

◆ set_check_derivatives()

void vnl_nonlinear_minimizer::set_check_derivatives ( int  cd)
inlineinherited

Set check_derivatives flag. Negative values may mean fewer checks.

Definition at line 81 of file vnl_nonlinear_minimizer.h.

◆ set_diagonal()

void vnl_sparse_lm::set_diagonal ( const vnl_vector< double > &  diag)
private

set the vector on the diagonal of Jt J.

Definition at line 474 of file vnl_sparse_lm.cxx.

◆ set_epsilon_function()

void vnl_nonlinear_minimizer::set_epsilon_function ( double  v)
inlineinherited

Set the step length for FD Jacobian.

Be aware that set_x_tolerance will reset this to xtol * 0.001. The default is 1e-11.

Definition at line 69 of file vnl_nonlinear_minimizer.h.

◆ set_f_tolerance()

void vnl_nonlinear_minimizer::set_f_tolerance ( double  v)
inlineinherited

Set the convergence tolerance on F (sum of squared residuals).

When the differences in successive RMS errors is less than this, the routine terminates. So this is effectively the desired precision of your minimization. Setting it too low wastes time, too high might cause early convergence. The default of 1e-9 is on the safe side, but if speed is an issue, you can try raising it.

Definition at line 45 of file vnl_nonlinear_minimizer.h.

◆ set_g_tolerance()

void vnl_nonlinear_minimizer::set_g_tolerance ( double  v)
inlineinherited

Set the convergence tolerance on Grad(F)' * F.

Definition at line 59 of file vnl_nonlinear_minimizer.h.

◆ set_max_function_evals()

void vnl_nonlinear_minimizer::set_max_function_evals ( int  v)
inlineinherited

Set the termination maximum number of iterations.

Definition at line 63 of file vnl_nonlinear_minimizer.h.

◆ set_trace()

void vnl_nonlinear_minimizer::set_trace ( bool  on)
inlineinherited

Turn on per-iteration printouts.

Definition at line 73 of file vnl_nonlinear_minimizer.h.

◆ set_verbose()

void vnl_nonlinear_minimizer::set_verbose ( bool  verb)
inlineinherited

Set verbose flag.

Definition at line 77 of file vnl_nonlinear_minimizer.h.

◆ set_x_tolerance()

void vnl_nonlinear_minimizer::set_x_tolerance ( double  v)
inlineinherited

Set the convergence tolerance on X.

When the length of the steps taken in X are about this long, the routine terminates. The default is 1e-8, which should work for many problems, but if you can get away with 1e-4, say, minimizations will be much quicker.

Definition at line 52 of file vnl_nonlinear_minimizer.h.

◆ solve_dc()

void vnl_sparse_lm::solve_dc ( vnl_vector< double > &  dc)
private

solve for dc.

Definition at line 626 of file vnl_sparse_lm.cxx.

Member Data Documentation

◆ A_

std::vector<vnl_matrix<double> > vnl_sparse_lm::A_
private

Storage for each of the Jacobians A_ij, B_ij, and C_ij.

Definition at line 141 of file vnl_sparse_lm.h.

◆ B_

std::vector<vnl_matrix<double> > vnl_sparse_lm::B_
private

Definition at line 142 of file vnl_sparse_lm.h.

◆ C_

std::vector<vnl_matrix<double> > vnl_sparse_lm::C_
private

Definition at line 143 of file vnl_sparse_lm.h.

◆ check_derivatives_

int vnl_nonlinear_minimizer::check_derivatives_
protectedinherited

Definition at line 153 of file vnl_nonlinear_minimizer.h.

◆ e_

vnl_vector<double> vnl_sparse_lm::e_
private

Definition at line 160 of file vnl_sparse_lm.h.

◆ ea_

vnl_vector<double> vnl_sparse_lm::ea_
private

Definition at line 155 of file vnl_sparse_lm.h.

◆ eb_

vnl_vector<double> vnl_sparse_lm::eb_
private

Definition at line 156 of file vnl_sparse_lm.h.

◆ ec_

vnl_vector<double> vnl_sparse_lm::ec_
private

Definition at line 157 of file vnl_sparse_lm.h.

◆ end_error_

double vnl_nonlinear_minimizer::end_error_
protectedinherited

Definition at line 147 of file vnl_nonlinear_minimizer.h.

◆ epsfcn

double vnl_nonlinear_minimizer::epsfcn
protectedinherited

Step length for FD Jacobian.

Definition at line 141 of file vnl_nonlinear_minimizer.h.

◆ f_

vnl_sparse_lst_sqr_function* vnl_sparse_lm::f_
protected

the function to minimize.

Definition at line 76 of file vnl_sparse_lm.h.

◆ failure_code_

ReturnCodes vnl_nonlinear_minimizer::failure_code_
protectedinherited

Definition at line 154 of file vnl_nonlinear_minimizer.h.

◆ ftol

double vnl_nonlinear_minimizer::ftol
protectedinherited

Termination tolerance on F (sum of squared residuals)

Definition at line 139 of file vnl_nonlinear_minimizer.h.

◆ gtol

double vnl_nonlinear_minimizer::gtol
protectedinherited

Termination tolerance on Grad(F)' * F = 0.

Definition at line 140 of file vnl_nonlinear_minimizer.h.

◆ inv_covar_

vnl_matrix<double> vnl_sparse_lm::inv_covar_
protected

Definition at line 78 of file vnl_sparse_lm.h.

◆ inv_V_

std::vector<vnl_matrix<double> > vnl_sparse_lm::inv_V_
private

Definition at line 166 of file vnl_sparse_lm.h.

◆ Ma_

std::vector<vnl_matrix<double> > vnl_sparse_lm::Ma_
private

Definition at line 169 of file vnl_sparse_lm.h.

◆ maxfev

long vnl_nonlinear_minimizer::maxfev
protectedinherited

Termination maximum number of iterations.

Definition at line 138 of file vnl_nonlinear_minimizer.h.

◆ Mb_

std::vector<vnl_matrix<double> > vnl_sparse_lm::Mb_
private

Definition at line 170 of file vnl_sparse_lm.h.

◆ num_a_

const int vnl_sparse_lm::num_a_
private

Definition at line 130 of file vnl_sparse_lm.h.

◆ num_b_

const int vnl_sparse_lm::num_b_
private

Definition at line 131 of file vnl_sparse_lm.h.

◆ num_e_

const int vnl_sparse_lm::num_e_
private

Definition at line 132 of file vnl_sparse_lm.h.

◆ num_evaluations_

long vnl_nonlinear_minimizer::num_evaluations_
protectedinherited

Definition at line 145 of file vnl_nonlinear_minimizer.h.

◆ num_iterations_

unsigned vnl_nonlinear_minimizer::num_iterations_
protectedinherited

Definition at line 144 of file vnl_nonlinear_minimizer.h.

◆ num_nz_

const int vnl_sparse_lm::num_nz_
private

Definition at line 133 of file vnl_sparse_lm.h.

◆ Q_

std::vector<vnl_matrix<double> > vnl_sparse_lm::Q_
private

Definition at line 153 of file vnl_sparse_lm.h.

◆ R_

std::vector<vnl_matrix<double> > vnl_sparse_lm::R_
private

Definition at line 152 of file vnl_sparse_lm.h.

◆ set_covariance_

bool vnl_sparse_lm::set_covariance_
protected

Definition at line 79 of file vnl_sparse_lm.h.

◆ size_a_

const int vnl_sparse_lm::size_a_
private

Definition at line 135 of file vnl_sparse_lm.h.

◆ size_b_

const int vnl_sparse_lm::size_b_
private

Definition at line 136 of file vnl_sparse_lm.h.

◆ size_c_

const int vnl_sparse_lm::size_c_
private

Definition at line 137 of file vnl_sparse_lm.h.

◆ size_e_

const int vnl_sparse_lm::size_e_
private

Definition at line 138 of file vnl_sparse_lm.h.

◆ start_error_

double vnl_nonlinear_minimizer::start_error_
protectedinherited

Definition at line 146 of file vnl_nonlinear_minimizer.h.

◆ T_

vnl_matrix<double> vnl_sparse_lm::T_
private

Definition at line 149 of file vnl_sparse_lm.h.

◆ tau_

double vnl_sparse_lm::tau_
protected

used to compute the initial damping.

Definition at line 74 of file vnl_sparse_lm.h.

◆ trace

bool vnl_nonlinear_minimizer::trace
protectedinherited

Definition at line 149 of file vnl_nonlinear_minimizer.h.

◆ U_

std::vector<vnl_matrix<double> > vnl_sparse_lm::U_
private

Storage for normal equation blocks.

diagonals of JtJ

Definition at line 147 of file vnl_sparse_lm.h.

◆ V_

std::vector<vnl_matrix<double> > vnl_sparse_lm::V_
private

Definition at line 148 of file vnl_sparse_lm.h.

◆ verbose_

bool vnl_nonlinear_minimizer::verbose_
protectedinherited

Definition at line 152 of file vnl_nonlinear_minimizer.h.

◆ W_

std::vector<vnl_matrix<double> > vnl_sparse_lm::W_
private

Definition at line 151 of file vnl_sparse_lm.h.

◆ weights_

vnl_vector<double> vnl_sparse_lm::weights_
private

Definition at line 163 of file vnl_sparse_lm.h.

◆ xtol

double vnl_nonlinear_minimizer::xtol
protectedinherited

Termination tolerance on X (solution vector)

Definition at line 137 of file vnl_nonlinear_minimizer.h.

◆ Y_

std::vector<vnl_matrix<double> > vnl_sparse_lm::Y_
private

Definition at line 167 of file vnl_sparse_lm.h.

◆ Z_

std::vector<vnl_matrix<double> > vnl_sparse_lm::Z_
private

Definition at line 168 of file vnl_sparse_lm.h.


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