TooN 2.1
Public Member Functions
WLS< Size, Precision, Decomposition > Class Template Reference

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)
template<int N, class B1 , class B2 , class B3 >
void add_mJ_rows (const Vector< N, Precision, B1 > &m, const Matrix< N, Size, Precision, B2 > &J, const Matrix< N, N, Precision, B3 > &invcov)
template<int N, typename B1 >
void add_sparse_mJ (const Precision m, const Vector< N, Precision, B1 > &J1, const int index1, const Precision weight=1)
template<int N, int S1, class P1 , class P2 , class P3 , class B1 , class B2 , class B3 >
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)
template<int N, int S1, int S2, class B1 , class B2 , class B3 , class B4 >
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)
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 = DefaultPrecision, template< int DecompSize, class DecompPrecision > class Decomposition = Cholesky>
class TooN::WLS< Size, Precision, Decomposition >

Performs Gauss-Newton weighted least squares computation.

Parameters:
SizeThe number of dimensions in the system
PrecisionThe numerical precision used (double, float etc)
DecompositionThe 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

Member Function Documentation

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:
valThe 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:
vThe 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:
mThe inverse covariance matrix to add
void add_mJ ( Precision  m,
const Vector< Size, Precision, B2 > &  J,
Precision  weight = 1 
)

Add a single measurement.

Parameters:
mThe value of the measurement
JThe Jacobian for the measurement $\frac{\partial\text{m}}{\partial\text{param}_i}$
weightThe 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:
mThe measurements to add
JThe Jacobian matrix $\frac{\partial\text{m}_i}{\partial\text{param}_j}$
invcovThe inverse covariance of the measurement values
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)

Parameters:
mThe measurements to add
JThe Jacobian matrix $\frac{\partial\text{m}_i}{\partial\text{param}_j}$
invcovThe inverse covariance of the measurement values
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)

Parameters:
mThe measurements to add
J1The first block of the Jacobian matrix $\frac{\partial\text{m}_i}{\partial\text{param}_j}$
index1starting index for the first block
invcovThe inverse covariance of the measurement values
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)

Parameters:
mThe measurements to add
J1The first block of the Jacobian matrix $\frac{\partial\text{m}_i}{\partial\text{param}_j}$
index1starting index for the first block
invcovThe inverse covariance of the measurement values
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)

Parameters:
mThe measurements to add
J1The first block of the Jacobian matrix $\frac{\partial\text{m}_i}{\partial\text{param}_j}$
index1starting index for the first block
J2The second block of the Jacobian matrix $\frac{\partial\text{m}_i}{\partial\text{param}_j}$
index2starting index for the second block
invcovThe inverse covariance of the measurement values
void operator+= ( const WLS< Size, Precision, Decomposition > &  meas)

Combine measurements from two WLS systems.

Parameters:
measThe measurements to combine with