Noise added to a model's output, \( z = h(x) \boxplus v \), as additiveNoise() declares it (decisions.md [additive-noise], [model-policies]): the function is transformed once, and the noise only widens and shifts the result.
More...
#include <EmrysFilter/Models/Policies.h>
|
|
using | Distribution = std::remove_cvref_t<std::tuple_element_t<0, std::tuple<Parts...>>> |
| | The one unplaced distribution's type, unqualified, or the covariance's.
|
|
|
| AdditiveNoise (Parts... parts) |
| | The noise of parts.
|
| std::tuple< Parts... > const & | parts () const |
| Distribution const & | distribution () const & |
| std::tuple_element_t< 0, std::tuple< Parts... > > | distribution () && |
| template<typename Axis> |
| auto | byMode () const & |
|
template<typename Axis> |
| auto | byMode () && |
| | byMode() const &, moving the mixture out of a temporary noise.
|
|
|
static constexpr bool | Placed = (internal::isPlacedNoise<Parts> || ...) |
| | whether the parts are placed by tag path, and so become one Gaussian in the output space
|
|
static constexpr bool | ZeroMean = !Placed && internal::isNoiseCovariance<Distribution> |
| | whether the one unplaced part is a covariance alone, zero-mean noise with no space of its own
|
|
static constexpr bool | HasOwnSpace = !Placed && !ZeroMean |
| | whether the one unplaced part is a distribution, whose space a model's output may take
|
template<typename... Parts>
class Emrys::AdditiveNoise< Parts >
Noise added to a model's output, \( z = h(x) \boxplus v \), as additiveNoise() declares it (decisions.md [additive-noise], [model-policies]): the function is transformed once, and the noise only widens and shifts the result.
One unplaced part covers the whole output space: a covariance matrix \( R \) over the output's differences, zero-mean Gaussian noise, as additive noise nearly always is; a GaussianParams or a GaussianMixtureParams over them, such as a biased sensor's or a narrow inlier and a wide outlier component; or a const reference to one that outlives the model. Parts placed by tag path, on<Range>(r) and onEach<Offsets>(r), each a covariance or a GaussianParams, are independent Gaussians on blocks of the output, placed in its space instance when the model meets a state, as the factors of a Product are (decisions.md [product-factors]); a placed mixture is refused. A covariance has no space of its own, so a model whose output space would come from its noise measures in a Linear sized by its function's result instead.
- Template Parameters
-
- See also
- additiveNoise(), ContinuousNoise
◆ byMode()
template<typename... Parts>
template<typename Axis>
- Returns
- this noise, a mixture, with its components as the values of the mode axis named by the path Axis (a tag or a TagPath), in order (see ModeNoise)
◆ distribution() [1/2]
template<typename... Parts>
| std::tuple_element_t< 0, std::tuple< Parts... > > Emrys::AdditiveNoise< Parts >::distribution |
( |
| ) |
&& |
|
inlinenodiscard |
- Returns
- the one unplaced distribution of a temporary noise: moved out where it is held by copy, the reference where it is held by one, so that a reference bound to model.noise().distribution() lives as long as the result and never dangles
◆ distribution() [2/2]
template<typename... Parts>
- Returns
- the one unplaced distribution, or covariance, over the whole output space
◆ parts()
template<typename... Parts>
- Returns
- the parts, as given
The documentation for this class was generated from the following file: