OpenKalman
Public Member Functions | List of all members
OpenKalman::RecursiveLeastSquaresTransform< Scalar > Struct Template Reference

Propagates a recursive least squares error distribution of parameters, with a forgetting factor λ. More...

#include <RecursiveLeastSquaresTransform.hpp>

Inheritance diagram for OpenKalman::RecursiveLeastSquaresTransform< Scalar >:
Inheritance graph
[legend]
Collaboration diagram for OpenKalman::RecursiveLeastSquaresTransform< Scalar >:
Collaboration graph
[legend]

Public Member Functions

 RecursiveLeastSquaresTransform (const Scalar lambda=0.9995)
 
template<typename InputDist , typename ... NoiseDists, std::enable_if_t<(distribution< InputDist > and ... and distribution< NoiseDists >) and(coordinates::compares_with< typename DistributionTraits< InputDist >::StaticDescriptor, typename DistributionTraits< NoiseDists >::StaticDescriptor >and ...), int > = 0>
auto operator() (const InputDist &x, const NoiseDists &...ns) const
 Apply the RLS transform on an input distribution. More...
 
template<typename InputDist , typename ... NoiseDists, std::enable_if_t<(distribution< InputDist > and ... and distribution< NoiseDists >) and(coordinates::compares_with< typename DistributionTraits< InputDist >::StaticDescriptor, typename DistributionTraits< NoiseDists >::StaticDescriptor > and ...), int > = 0>
auto transform_with_cross_covariance (const InputDist &x, const NoiseDists &...ns) const
 Perform RLS transform, also returning the cross-covariance. More...
 
- Public Member Functions inherited from OpenKalman::internal::TransformBase< RecursiveLeastSquaresTransform< Scalar > >
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 Scalar = double>
struct OpenKalman::RecursiveLeastSquaresTransform< Scalar >

Propagates a recursive least squares error distribution of parameters, with a forgetting factor λ.

Useful for parameter estimation, where the parameter is expected to possibly drift over time

Template Parameters
ScalarThe scalar type.

Member Function Documentation

◆ operator()()

template<typename Scalar = double>
template<typename InputDist , typename ... NoiseDists, std::enable_if_t<(distribution< InputDist > and ... and distribution< NoiseDists >) and(coordinates::compares_with< typename DistributionTraits< InputDist >::StaticDescriptor, typename DistributionTraits< NoiseDists >::StaticDescriptor >and ...), int > = 0>
auto OpenKalman::RecursiveLeastSquaresTransform< Scalar >::operator() ( const InputDist &  x,
const NoiseDists &...  ns 
) const
inline

Apply the RLS transform on an input distribution.

Any noise distributions are treated as additive.

Template Parameters
InputDistThe prior distribution.
NoiseDistsZero or more noise distribution.
Returns
The posterior distribution.

◆ transform_with_cross_covariance()

template<typename Scalar = double>
template<typename InputDist , typename ... NoiseDists, std::enable_if_t<(distribution< InputDist > and ... and distribution< NoiseDists >) and(coordinates::compares_with< typename DistributionTraits< InputDist >::StaticDescriptor, typename DistributionTraits< NoiseDists >::StaticDescriptor > and ...), int > = 0>
auto OpenKalman::RecursiveLeastSquaresTransform< Scalar >::transform_with_cross_covariance ( const InputDist &  x,
const NoiseDists &...  ns 
) const
inline

Perform RLS transform, also returning the cross-covariance.

Template Parameters
InputDistThe prior distribution.
NoiseDistsZero or more noise distribution.
Returns
A tuple comprising the posterior distribution and the cross-covariance.

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