EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Emrys::MeasurementFunction< F, Policies > Class Template Reference

A measurement model: a function \( h \) of its input, with the policies that say what it reads, what it writes, and what it is affine in, and its noise (decisions.md [model-policies]). More...

#include <EmrysFilter/Models/MeasurementModel.h>

Public Types

using FunctionType = F
 the function
template<internal::PolicyKind K>
using Policy = typename Set::template Type<K>
 The policy of kind K, or internal::NoPolicy.

Public Member Functions

 MeasurementFunction (F function, Policies... policies)
 The model of function with policies.
F const & function () const
template<internal::PolicyKind K>
Policy< K > const & policy () const
std::tuple< Policies... > const & policies () const

Static Public Attributes

static constexpr bool IsModel = true
 a model, for internal::isModel
static constexpr bool HasFunction = !std::is_same_v<F, internal::NoFunction>
 whether the model has a function; a model known by its likelihood alone has none
template<internal::PolicyKind K>
static constexpr bool has = Set::template has<K>
 Whether the policy of kind K was given.

Detailed Description

template<typename F, typename... Policies>
class Emrys::MeasurementFunction< F, Policies >

A measurement model: a function \( h \) of its input, with the policies that say what it reads, what it writes, and what it is affine in, and its noise (decisions.md [model-policies]).

measurementModel() builds one; a user never spells the type. The function is called as h(in, out, x), h(in, x), or h(x), whichever it takes, with in the instance of the input space that reads() defines, or the state's space without reads(), out the instance of the output space, and x a vector in in, which it reads with block<Name>(in, x); it returns a vector in out, which it may fill block by block from zeros<T>(out), either generic in its scalar or with its Jacobian beside it (withJacobian(), decisions.md [returned-jacobians]). A function generic in its scalar may take it as its one template parameter, []<typename T>(auto const & in, auto const & out, auto const & x), which the call supplies (decisions.md [function-scalars]). A model with a likelihood alone (logLikelihood()) and no function serves the filters that weight points.

Template Parameters
Fthe function, or internal::NoFunction
Policiesthe policies, each at most once
See also
measurementModel(), observe(), MeasurementModel

Member Function Documentation

◆ function()

template<typename F, typename... Policies>
F const & Emrys::MeasurementFunction< F, Policies >::function ( ) const
inlinenodiscard
Returns
the function

◆ policies()

template<typename F, typename... Policies>
std::tuple< Policies... > const & Emrys::MeasurementFunction< F, Policies >::policies ( ) const
inlinenodiscard
Returns
every policy, as given

◆ policy()

template<typename F, typename... Policies>
template<internal::PolicyKind K>
Policy< K > const & Emrys::MeasurementFunction< F, Policies >::policy ( ) const
inlinenodiscard
Returns
the policy of kind K, which the model must have

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