TooN
|
Performs iterative reweighted least squares. More...
#include <irls.h>
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 () |
![]() | |
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}\). | |
Performs iterative reweighted least squares.
Size | the size |
Reweight | The reweighting functor. This structure must provide reweight(), true-scale() and objective() methods. Existing examples are Robust I, Robust II and ILinear. |