TooN Algorithm Library - tag  0.2
Functions
Unscented Transform

Functions

template<int N, int M, class F , class V1 , class V2 , class M1 , class M2 >
void tag::unscentedTransform (const TooN::FixedVector< N, V1 > &x, const TooN::FixedMatrix< N, N, M1 > &P, const F &f, TooN::FixedVector< M, V2 > &newx, TooN::FixedMatrix< M, M, M2 > &newP)
 
template<int N, int M, class F , class V1 , class V2 , class M1 , class M2 , class M3 >
void tag::unscentedTransform (const TooN::FixedVector< N, V1 > &x, const TooN::FixedMatrix< N, N, M1 > &P, const F &f, TooN::FixedVector< M, V2 > &newx, TooN::FixedMatrix< M, M, M2 > &newP, TooN::FixedMatrix< M, N, M3 > &cov)
 
template<int N, int M, class F , class V1 , class V2 , class M1 , class M2 >
void tag::sphericalUnscentedTransform (const TooN::FixedVector< N, V1 > &x, const TooN::FixedMatrix< N, N, M1 > &P, const F &f, TooN::FixedVector< M, V2 > &newx, TooN::FixedMatrix< M, M, M2 > &newP)
 
template<int N, int M, class F , class V1 , class V2 , class M1 , class M2 , class M3 >
void tag::sphericalUnscentedTransform (const TooN::FixedVector< N, V1 > &x, const TooN::FixedMatrix< N, N, M1 > &P, const F &f, TooN::FixedVector< M, V2 > &newx, TooN::FixedMatrix< M, M, M2 > &newP, TooN::FixedMatrix< M, N, M3 > &cov)
 

Detailed Description

Implementations of the unscented transform for different sigma point selections. The sphericalUnscentedTransform will use only N + 2 sigma points (N dimension of input), while the unscentedTransform uses 2N + 1 sigma points with a simpler algorithm for sigma points. The sphericalUnscentedTransform incurrs slight overhead in computing the sigma points, but for expensive functions the difference in number evaluated points can win.

Function Documentation

template<int N, int M, class F , class V1 , class V2 , class M1 , class M2 >
void tag::sphericalUnscentedTransform ( const TooN::FixedVector< N, V1 > &  x,
const TooN::FixedMatrix< N, N, M1 > &  P,
const F &  f,
TooN::FixedVector< M, V2 > &  newx,
TooN::FixedMatrix< M, M, M2 > &  newP 
)

computes the unscented transform of the distribution given by x and P through the function f using N + 2 sigma points distributed as a spherical simplex. Results are written into newx and newP.

Parameters
[in]xmean of the original distribution
[in]Pcovariance of the original distribution
[in]ffunction to apply
[out]newxmean of the result distribution
[out]newPcovariance of the result distribution

References tag::sphericalUnscentedTransformSqrt().

template<int N, int M, class F , class V1 , class V2 , class M1 , class M2 , class M3 >
void tag::sphericalUnscentedTransform ( const TooN::FixedVector< N, V1 > &  x,
const TooN::FixedMatrix< N, N, M1 > &  P,
const F &  f,
TooN::FixedVector< M, V2 > &  newx,
TooN::FixedMatrix< M, M, M2 > &  newP,
TooN::FixedMatrix< M, N, M3 > &  cov 
)

computes the unscented transform of the distribution given by x and P through the function f using N + 2 sigma points distributed as a spherical simplex. It also computes the covariance between the original and result distribution. Results are written into newx, newP and cov.

Parameters
[in]xmean of the original distribution
[in]Pcovariance of the original distribution
[in]ffunction to apply
[out]newxmean of the result distribution
[out]newPcovariance of the result distribution
[out]covcovariance between input and output

References tag::sphericalUnscentedTransformSqrt().

template<int N, int M, class F , class V1 , class V2 , class M1 , class M2 >
void tag::unscentedTransform ( const TooN::FixedVector< N, V1 > &  x,
const TooN::FixedMatrix< N, N, M1 > &  P,
const F &  f,
TooN::FixedVector< M, V2 > &  newx,
TooN::FixedMatrix< M, M, M2 > &  newP 
)

computes the unscented transform of the distribution given by x and P through the function f using 2*N + 1 sigma points distributed along the eigenvectors of the covariance matrix. Results are written into newx and newP.

Parameters
[in]xmean of the original distribution
[in]Pcovariance of the original distribution
[in]ffunction to apply
[out]newxmean of the result distribution
[out]newPcovariance of the result distribution

References tag::unscentedTransformSqrt().

Referenced by tag::unscentedKalmanUpdate().

template<int N, int M, class F , class V1 , class V2 , class M1 , class M2 , class M3 >
void tag::unscentedTransform ( const TooN::FixedVector< N, V1 > &  x,
const TooN::FixedMatrix< N, N, M1 > &  P,
const F &  f,
TooN::FixedVector< M, V2 > &  newx,
TooN::FixedMatrix< M, M, M2 > &  newP,
TooN::FixedMatrix< M, N, M3 > &  cov 
)

computes the unscented transform of the distribution given by x and P through the function f using 2*N + 1 sigma points distributed along the eigenvectors of the covariance matrix. It also computes the covariance between the original and result distribution. Results are written into newx, newP and cov.

Parameters
[in]xmean of the original distribution
[in]Pcovariance of the original distribution
[in]ffunction to apply
[out]newxmean of the result distribution
[out]newPcovariance of the result distribution
[out]covcovariance between input and output

References tag::unscentedTransformSqrt().