2 #ifndef vnl_sparse_lm_h_ 3 #define vnl_sparse_lm_h_ 19 # include <vcl_msvc_warnings.h> 25 #include <vnl/algo/vnl_algo_export.h> 55 bool use_gradient =
true,
56 bool use_weights =
true);
61 void diagnose_outcome()
const;
62 void diagnose_outcome(std::ostream&)
const;
86 void allocate_matrices();
94 void compute_normal_equations();
103 void compute_invV_Y();
141 std::vector<vnl_matrix<double> >
A_;
142 std::vector<vnl_matrix<double> >
B_;
143 std::vector<vnl_matrix<double> >
C_;
147 std::vector<vnl_matrix<double> >
U_;
148 std::vector<vnl_matrix<double> >
V_;
151 std::vector<vnl_matrix<double> >
W_;
152 std::vector<vnl_matrix<double> >
R_;
153 std::vector<vnl_matrix<double> >
Q_;
167 std::vector<vnl_matrix<double> >
Y_;
168 std::vector<vnl_matrix<double> >
Z_;
169 std::vector<vnl_matrix<double> >
Ma_;
170 std::vector<vnl_matrix<double> >
Mb_;
175 #endif // vnl_sparse_lm_h_
std::vector< vnl_matrix< double > > inv_V_
Sparse Levenberg Marquardt nonlinear least squares.
An ordinary mathematical matrix.
vnl_sparse_lst_sqr_function * f_
the function to minimize.
std::vector< vnl_matrix< double > > W_
vnl_matrix< double > inv_covar_
std::vector< vnl_matrix< double > > B_
std::vector< vnl_matrix< double > > C_
Abstract base for sparse least squares functions.
vnl_nonlinear_minimizer is a base class for nonlinear optimization.
std::vector< vnl_matrix< double > > Ma_
std::vector< vnl_matrix< double > > Mb_
std::vector< vnl_matrix< double > > A_
Storage for each of the Jacobians A_ij, B_ij, and C_ij.
Base class for nonlinear optimization.
std::vector< vnl_matrix< double > > V_
std::vector< vnl_matrix< double > > R_
double tau_
used to compute the initial damping.
std::vector< vnl_matrix< double > > Y_
std::vector< vnl_matrix< double > > Q_
std::vector< vnl_matrix< double > > Z_
const vnl_vector< double > & get_weights() const
Access the final weights after optimization.
vnl_vector< double > weights_
std::vector< vnl_matrix< double > > U_
Storage for normal equation blocks.