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

NumericError, the reasons a factorization or a normalization can fail, and its two names, GaussianError and WeightError (decisions.md [update-outcomes]). More...

#include <expected>

Go to the source code of this file.

Typedefs

using Emrys::GaussianError = NumericError
 Reasons a Gaussian, in any of its forms (decisions.md [gaussian-forms]), can fail to give a density, a mean, or one of its matrices, and a root of a covariance can fail to be taken: NotPositiveDefinite, Singular, or NonFinite of NumericError.
using Emrys::WeightError = NumericError
 Reasons a collection of log-weights cannot be normalized: Empty, ZeroSum, or NonFinite of NumericError.

Enumerations

enum class  Emrys::NumericError {
  NumericError::NotPositiveDefinite , NumericError::Singular , NumericError::NonFinite , NumericError::Empty ,
  NumericError::ZeroSum
}
 Reasons a computation from parameters the caller gave can fail: a matrix that does not factorize or a set of log-weights that does not normalize. More...

Detailed Description

NumericError, the reasons a factorization or a normalization can fail, and its two names, GaussianError and WeightError (decisions.md [update-outcomes]).

It is one enumeration so that a step that can fail both ways, as a mixture filter's update fails on a component's innovation covariance or on the mixture's weights, returns one error type that every comparison of either name reads; and internal::isExpected, which tells a std::expected from a value, for code that calls a function that may fail and one that may not alike. Read Weights.h next.