OpenKalman
Public Member Functions | List of all members
OpenKalman::SamplePointsTransform< SamplePointsType > Struct Template Reference

Scaled points transform. More...

#include <SamplePointsTransform.hpp>

Inheritance diagram for OpenKalman::SamplePointsTransform< SamplePointsType >:
Inheritance graph
[legend]
Collaboration diagram for OpenKalman::SamplePointsTransform< SamplePointsType >:
Collaboration graph
[legend]

Public Member Functions

template<typename InputDist , typename... Ts>
auto operator() (InputDist &&x, Ts &&...ts) const
 Perform one or more consecutive sample points transforms. More...
 
template<typename InputDist , typename Trans , typename ... NoiseDists, std::enable_if_t<(gaussian_distribution< InputDist > and ... and gaussian_distribution< NoiseDists >) and std::is_invocable_v< Trans, typename DistributionTraits< InputDist >::Mean, typename DistributionTraits< NoiseDists >::Mean... >, int > = 0>
auto operator() (InputDist &&x, Trans &&g, NoiseDists &&...n) const
 Perform one sample points transform. More...
 
template<typename InputDist , typename... Ts>
auto transform_with_cross_covariance (InputDist &&x, Ts &&...ts) const
 Perform one or more consecutive sample points transforms, also returning the cross-covariance. More...
 
template<typename InputDist , typename Trans , typename ... NoiseDists, std::enable_if_t<(gaussian_distribution< InputDist > and ... and gaussian_distribution< NoiseDists >) and std::is_invocable_v< Trans, typename DistributionTraits< InputDist >::Mean, typename DistributionTraits< NoiseDists >::Mean... >, int > = 0>
auto transform_with_cross_covariance (InputDist &&x, Trans &&g, NoiseDists &&...n) const
 Perform one sample points transform, also returning the cross-covariance. More...
 
- Public Member Functions inherited from OpenKalman::internal::TransformBase< SamplePointsTransform< SamplePointsType > >
auto operator() (const InputDist &x, const T &t, const Ts &...ts) const
 Perform one or more consecutive transforms. More...
 
auto transform_with_cross_covariance (const InputDist &x, const T &t, const Ts &...ts) const
 Perform one or more consecutive transforms, also returning the cross-covariance. More...
 

Detailed Description

template<typename SamplePointsType>
struct OpenKalman::SamplePointsTransform< SamplePointsType >

Scaled points transform.

Compatible with unscented transform and cubature transform.

As implemented in, e.g., E. Wan & R. van der Merwe, "The unscented Kalman filter for nonlinear estimation," in Proc. of IEEE Symposium (AS-SPCC), pp. 153-158. See also R. van der Merwe & E. Wan, "The Square-Root Unscented Kalman Filter for State and Parameter-Estimation in Proc. Acoustics, Speech, and Signal Processing (ICASSP'01), 2001, pp. 3461-64.

Template Parameters
SamplePointsTypeThe type of sample points on which the transform is based (e.g., CubaturePoints).

Member Function Documentation

◆ operator()() [1/2]

template<typename SamplePointsType >
template<typename InputDist , typename... Ts>
auto OpenKalman::SamplePointsTransform< SamplePointsType >::operator() ( InputDist &&  x,
Ts &&...  ts 
) const
inline

Perform one or more consecutive sample points transforms.

Template Parameters
InputDistThe prior distribution.
TsA list of tuple-like structures, each containing arguments to a transform. These arguments each include a tests and zero or more noise distributions.
Returns
The posterior distribution.

◆ operator()() [2/2]

template<typename SamplePointsType >
template<typename InputDist , typename Trans , typename ... NoiseDists, std::enable_if_t<(gaussian_distribution< InputDist > and ... and gaussian_distribution< NoiseDists >) and std::is_invocable_v< Trans, typename DistributionTraits< InputDist >::Mean, typename DistributionTraits< NoiseDists >::Mean... >, int > = 0>
auto OpenKalman::SamplePointsTransform< SamplePointsType >::operator() ( InputDist &&  x,
Trans &&  g,
NoiseDists &&...  n 
) const
inline

Perform one sample points transform.

Template Parameters
InputDistThe prior distribution.
TransThe tests on which the transform is based.
NoiseDistZero or more noise distributions.
Returns
The posterior distribution.

◆ transform_with_cross_covariance() [1/2]

template<typename SamplePointsType >
template<typename InputDist , typename... Ts>
auto OpenKalman::SamplePointsTransform< SamplePointsType >::transform_with_cross_covariance ( InputDist &&  x,
Ts &&...  ts 
) const
inline

Perform one or more consecutive sample points transforms, also returning the cross-covariance.

Template Parameters
InputDistThe prior distribution.
TsA list of tuple-like structures, each containing arguments to a transform. These arguments each include a tests and zero or more noise distributions.
Returns
A tuple comprising the posterior distribution and the cross-covariance.

◆ transform_with_cross_covariance() [2/2]

template<typename SamplePointsType >
template<typename InputDist , typename Trans , typename ... NoiseDists, std::enable_if_t<(gaussian_distribution< InputDist > and ... and gaussian_distribution< NoiseDists >) and std::is_invocable_v< Trans, typename DistributionTraits< InputDist >::Mean, typename DistributionTraits< NoiseDists >::Mean... >, int > = 0>
auto OpenKalman::SamplePointsTransform< SamplePointsType >::transform_with_cross_covariance ( InputDist &&  x,
Trans &&  g,
NoiseDists &&...  n 
) const
inline

Perform one sample points transform, also returning the cross-covariance.

Template Parameters
InputDistThe prior distribution.
TransThe tests on which the transform is based.
NoiseDistZero or more noise distributions.
Returns
A tuple comprising the posterior distribution and the cross-covariance.

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