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

Consistency checks (decisions.md [composed-features]): NisMonitor, a windowed chi-squared test on the normalized innovation squared of a filter's updates, and nees() with NeesMonitor, the same test on the normalized estimation error squared against a true state, which a simulation knows (see simulate()). More...

#include <algorithm>
#include <array>
#include <cstddef>
#include <expected>
#include <limits>
#include <type_traits>
#include <utility>
#include <EmrysFilter/Core/Allocation.h>
#include <EmrysFilter/Core/ChiSquared.h>
#include <EmrysFilter/Core/Macros.h>
#include <EmrysFilter/Core/Math.h>
#include <EmrysFilter/Core/NumericError.h>
#include <EmrysFilter/Spaces/TagPath.h>
#include <EmrysFilter/Distributions/GaussianForm.h>
#include <EmrysFilter/Models/Measurement.h>

Go to the source code of this file.

Classes

class  Emrys::NisMonitor< Window, MaxWindow, Scalar, Allocator >
 A chi-squared consistency check over a window of updates. More...
class  Emrys::NeesMonitor< Window, MaxWindow, Scalar, Allocator >
 A chi-squared consistency check of a filter's estimates against the true states, over a window of them. More...

Enumerations

enum class  Emrys::Consistency { Consistency::Consistent , Consistency::Overconfident , Consistency::Underconfident }
 The verdict of a NisMonitor's or NeesMonitor's verdict(): where the sum of the window's statistics lies against the two-sided bounds() at a probability \( p \), which split \( 1 - p \) equally between the two tails. More...

Functions

template<GaussianForm Estimate, typename Derived>
std::expected< typename Estimate::Scalar, GaussianError > Emrys::nees (Eigen::MatrixBase< Derived > const &truth, Estimate const &estimate)
template<typename Path, GaussianForm Estimate, typename Derived>
requires requires(Estimate const & estimate) { estimate.template marginal<Path>(); }
std::expected< typename Estimate::Scalar, GaussianError > Emrys::nees (Eigen::MatrixBase< Derived > const &truth, Estimate const &estimate)

Variables

constexpr int Emrys::Cumulative = -2
 The window of a NisMonitor or NeesMonitor that drops nothing: its test runs over every statistic added since construction or reset(), and it keeps only their sum and their total degrees of freedom.

Detailed Description

Consistency checks (decisions.md [composed-features]): NisMonitor, a windowed chi-squared test on the normalized innovation squared of a filter's updates, and nees() with NeesMonitor, the same test on the normalized estimation error squared against a true state, which a simulation knows (see simulate()).

Both are fed by the caller. Read Filters next.