WLS< Size, Precision, Decomposition > Class Template Reference
[Linear equation solvers]

Performs Gauss-Newton weighted least squares computation. More...

#include <wls.h>

List of all members.

Public Member Functions

 WLS (int size=0)
void clear ()
void add_prior (Precision val)
template<class B2 >
void add_prior (const Vector< Size, Precision, B2 > &v)
template<class B2 >
void add_prior (const Matrix< Size, Size, Precision, B2 > &m)
template<class B2 >
void add_mJ (Precision m, const Vector< Size, Precision, B2 > &J, Precision weight=1)
template<int N, class B1 , class B2 , class B3 >
void add_mJ (const Vector< N, Precision, B1 > &m, const Matrix< Size, N, Precision, B2 > &J, const Matrix< N, N, Precision, B3 > &invcov)
void compute ()
void operator+= (const WLS &meas)
Matrix< Size, Size, Precision > & get_C_inv ()
const Matrix< Size, Size,
Precision > & 
get_C_inv () const
Vector< Size, Precision > & get_mu ()
const Vector< Size, Precision > & get_mu () const
Vector< Size, Precision > & get_vector ()
const Vector< Size, Precision > & get_vector () const
Decomposition< Size, Precision > & get_decomposition ()
const Decomposition< Size,
Precision > & 
get_decomposition () const


Detailed Description

template<int Size = Dynamic, class Precision = double, template< int Size, class Precision > class Decomposition = Cholesky>
class TooN::WLS< Size, Precision, Decomposition >

Performs Gauss-Newton weighted least squares computation.

Parameters:
Size The number of dimensions in the system
Precision The numerical precision used (double, float etc)
Decomposition The class used to invert the inverse Covariance matrix (must have one integer size and one typename precision template arguments) this is Cholesky by default, but could also be SQSVD

Constructor & Destructor Documentation

WLS ( int  size = 0  ) 

Default constructor or construct with the number of dimensions for the Dynamic case.


Member Function Documentation

void clear (  ) 

Clear all the measurements and apply a constant regularisation term.

Reimplemented in IRLS< Size, Precision, Reweight >.

Referenced by WLS< Size, Precision >::WLS().

void add_prior ( Precision  val  ) 

Applies a constant regularisation term.

Equates to a prior that says all the parameters are zero with $\sigma^2 = \frac{1}{\text{val}}$.

Parameters:
val The strength of the prior

void add_prior ( const Vector< Size, Precision, B2 > &  v  ) 

Applies a regularisation term with a different strength for each parameter value.

Equates to a prior that says all the parameters are zero with $\sigma_i^2 = \frac{1}{\text{v}_i}$.

Parameters:
v The vector of priors

void add_prior ( const Matrix< Size, Size, Precision, B2 > &  m  ) 

Applies a whole-matrix regularisation term.

This is the same as adding the $m$ to the inverse covariance matrix.

Parameters:
m The inverse covariance matrix to add

void add_mJ ( Precision  m,
const Vector< Size, Precision, B2 > &  J,
Precision  weight = 1 
)

Add a single measurement.

Parameters:
m The value of the measurement
J The Jacobian for the measurement $\frac{\partial\text{m}}{\partial\text{param}_i}$
weight The inverse variance of the measurement (default = 1)

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).

Parameters:
m The measurements to add
J The Jacobian matrix $\frac{\partial\text{m}_i}{\partial\text{param}_j}$
invcov The inverse covariance of the measurement values

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< Size, Precision, Decomposition > &  meas  ) 

Combine measurements from two WLS systems.

Parameters:
meas The measurements to combine with

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$.

Decomposition<Size,Precision>& get_decomposition (  ) 

Return the decomposition object used to compute $(J^{\mathsf T} J + P)^{-1}$.

const Decomposition<Size,Precision>& get_decomposition (  )  const

Return the decomposition object used to compute $(J^{\mathsf T} J + P)^{-1}$.


Generated on Tue Oct 27 16:09:25 2009 for TooN by  doxygen 1.5.9