TooN
Public Member Functions | List of all members
TooN::IRLS< Size, Precision, Reweight > Class Template Reference

Performs iterative reweighted least squares. More...

#include <irls.h>

Inheritance diagram for TooN::IRLS< Size, Precision, Reweight >:
Inheritance graph
[legend]
Collaboration diagram for TooN::IRLS< Size, Precision, Reweight >:
Collaboration graph
[legend]

Public Member Functions

 IRLS (int size=Size)
 
template<int Size2, typename Precision2 , typename Base2 >
void add_mJ (Precision m, const Vector< Size2, Precision2, Base2 > &J)
 
void operator+= (const IRLS &meas)
 
Matrix< Size, Size, Precision > & get_true_C_inv ()
 
const Matrix< Size, Size, Precision > & get_true_C_inv () const
 
Precision get_residual ()
 
void clear ()
 
- Public Member Functions inherited from TooN::WLS< Size, Precision >
 WLS (int size=0)
 Default constructor or construct with the number of dimensions for the Dynamic case.
 
void clear ()
 Clear all the measurements and apply a constant regularisation term.
 
void add_prior (Precision val)
 Applies a constant regularisation term. More...
 
void add_prior (const Vector< Size, Precision, B2 > &v)
 Applies a regularisation term with a different strength for each parameter value. More...
 
void add_prior (const Matrix< Size, Size, Precision, B2 > &m)
 Applies a whole-matrix regularisation term. More...
 
void add_mJ (Precision m, const Vector< Size, P2, B2 > &J, Precision weight=1)
 Add a single measurement. More...
 
void add_mJ (const Vector< S2, Precision, VB > &m, const Matrix< S2, Size, Precision, B2 > &J, Precision weight=1)
 Add a several measurements measurement. More...
 
void add_mJ (const Vector< N, Precision, B1 > &m, const Matrix< Size, N, Precision, B2 > &J, const Matrix< N, N, Precision, B3 > &invcov)
 Add multiple measurements at once (much more efficiently) More...
 
void add_mJ_rows (const Vector< N, Precision, B1 > &m, const Matrix< N, Size, Precision, B2 > &J, const Matrix< N, N, Precision, B3 > &invcov)
 Add multiple measurements at once (much more efficiently) More...
 
void add_sparse_mJ (const Precision m, const Vector< N, Precision, B1 > &J1, const int index1, const Precision weight=1)
 Add a single measurement at once with a sparse Jacobian (much, much more efficiently) More...
 
void add_sparse_mJ_rows (const Vector< N, P1, B1 > &m, const Matrix< N, S1, P2, B2 > &J1, const int index1, const Matrix< N, N, P3, B3 > &invcov)
 Add multiple measurements at once with a sparse Jacobian (much, much more efficiently) More...
 
void add_sparse_mJ_rows (const Vector< N, Precision, B1 > &m, const Matrix< N, S1, Precision, B2 > &J1, const int index1, const Matrix< N, S2, Precision, B3 > &J2, const int index2, const Matrix< N, N, Precision, B4 > &invcov)
 Add multiple measurements at once with a sparse Jacobian (much, much more efficiently) More...
 
void compute ()
 Process all the measurements and compute the weighted least squares set of parameter values stores the result internally which can then be accessed by calling get_mu()
 
void operator+= (const WLS &meas)
 Combine measurements from two WLS systems. More...
 
Matrix< Size, Size, Precision > & get_C_inv ()
 Returns the inverse covariance matrix.
 
const Matrix< Size, Size, Precision > & get_C_inv () const
 Returns the inverse covariance matrix.
 
Vector< Size, Precision > & get_mu ()
 Returns the update. With no prior, this is the result of \(J^\dagger e\).
 
const Vector< Size, Precision > & get_mu () const
 Returns the update. With no prior, this is the result of \(J^\dagger e\).
 
Vector< Size, Precision > & get_vector ()
 Returns the vector \(J^{\mathsf T} e\).
 
const Vector< Size, Precision > & get_vector () const
 Returns the vector \(J^{\mathsf T} e\).
 
Cholesky< Size, Precision > & get_decomposition ()
 Return the decomposition object used to compute \((J^{\mathsf T} J + P)^{-1}\).
 
const Cholesky< Size, Precision > & get_decomposition () const
 Return the decomposition object used to compute \((J^{\mathsf T} J + P)^{-1}\).
 

Detailed Description

template<int Size, typename Precision, template< typename RWPrecision > class Reweight>
class TooN::IRLS< Size, Precision, Reweight >

Performs iterative reweighted least squares.

Parameters
Sizethe size
ReweightThe reweighting functor. This structure must provide reweight(), true-scale() and objective() methods. Existing examples are Robust I, Robust II and ILinear.

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