EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Placement.h File Reference

Models placed in a larger state and measurement models side by side (decisions.md [model-placement], [model-policies]): on<Path>(model), which places a process or a measurement model on the block that a path names, prefixing every path into the state it reads and writes; onEach<Path>(model), which places one copy of a process model on every repetition of a repeated block; and compose() of measurement models, whose output is their outputs side by side. More...

#include <array>
#include <cstddef>
#include <optional>
#include <tuple>
#include <type_traits>
#include <utility>
#include <EmrysFilter/Core/Macros.h>
#include <EmrysFilter/Distributions/Moments.h>
#include <EmrysFilter/Models/MeasurementModel.h>
#include <EmrysFilter/Models/Methods.h>
#include <EmrysFilter/Models/Policies.h>
#include <EmrysFilter/Models/ProcessModel.h>
#include <EmrysFilter/Models/ResolvedReads.h>
#include <EmrysFilter/Spaces/Composite.h>
#include <EmrysFilter/Spaces/Indexing.h>
#include <EmrysFilter/Spaces/Space.h>
#include <EmrysFilter/Spaces/Subspace.h>
#include <EmrysFilter/Spaces/TagPath.h>

Go to the source code of this file.

Functions

template<typename Path, ProcessModel Model, typename... Renames>
auto Emrys::on (Model const &model, Renames const &...)
template<typename Path, MeasurementModel Model, typename... Renames>
auto Emrys::on (Model const &model, Renames const &...)
template<typename Path, ProcessModel Model, typename... Renames>
auto Emrys::onEach (Model const &model, Renames const &...)
template<MeasurementModel... Models>
requires (sizeof...(Models) > 0)
auto Emrys::compose (Models &&... models)

Detailed Description

Models placed in a larger state and measurement models side by side (decisions.md [model-placement], [model-policies]): on<Path>(model), which places a process or a measurement model on the block that a path names, prefixing every path into the state it reads and writes; onEach<Path>(model), which places one copy of a process model on every repetition of a repeated block; and compose() of measurement models, whose output is their outputs side by side.

compose() of process models is in ProcessModel.h. Read Measurement.h next.

Function Documentation

◆ on()

template<typename Path, MeasurementModel Model, typename... Renames>
auto Emrys::on ( Model const & model,
Renames const & ... )
nodiscard
Returns
the measurement model model placed on the block of the state that Path (a tag or a TagPath) names (decisions.md [model-placement]): every path into the state it reads is prefixed by Path, and an input of the call keeps its tag unless renames rename it, as on() of a process model does. Its output is its own, since a measurement is not part of the state.