EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
 CEmrys::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
 CEmrys::AdditiveNoise< Part >
  CEmrys::ModeNoise< Axis, Part >Additive mixture noise whose components are the values of a mode axis, as additiveNoise(mixture).byMode<Axis>() declares it (decisions.md [imm]): the Markov outlier model, in which a sensor's outlier state is a mode of the target that persists as the mode chain says
 CEmrys::AffineIn< Names >The input names a model's function is affine in, given the rest, as affineIn() declares them (decisions.md [model-policies], [affine-coordinates]): a sigma-point method factors those coordinates out and spreads its points over the others alone
 CEmrys::internal::AllocatorTypeOf< ComponentType >
  CEmrys::MixtureParams< Component_, Allocator_ >::EntryOne weighted component
 CEmrys::roots::Along< Vector >Axes along a direction: a root whose first column is parallel to \( d \), so that a sigma-point rule puts its first pair of points on the line through the mean along \( d \), as a split or a probe of the nonlinearity along \( d \) needs (decisions.md [splitting-hooks])
 CEmrys::AxisIndex< Path, N >An index in each leaf axis of the axis named by the path Path (a tag or a TagPath), as at() makes it, for valueOf()
 CEmrys::Batched< F, Mark >A function that takes every point at once, as batched() marks it (decisions.md [batched-functions]): it receives the points as the columns of a matrix X and writes into one output Y, a BatchedOutput the library provides, last
 CEmrys::BatchedOutput< In, Out, Scalar_, Mark >The output of a batched function (decisions.md [batched-functions]): its values, a column per point, and the Jacobians the library uses, by block of the function's input, in storage the library provides and sizes once before the call
 CEmrys::BlockRowsRows of a contiguous block of a space
 CEmrys::CapacityThe most elements a container will hold, reserved once: a mixture's components or a particle set's particles
 CEmrys::Categorical< Space_, Scalar_ >The probabilities of a CategoricalParams whose weights define a distribution: a read-only view
 CEmrys::CategoricalHistory< Space_, Scalar_, Allocator_ >The record of a HiddenMarkovFilter's forward pass that a smoother runs backward over: one CategoricalPredictedJoint per prediction, each with room for its smoothed distribution
 CEmrys::CategoricalParams< Space_, Scalar_ >The parameters of a probability distribution over a discrete space: one weight per value
 CEmrys::CategoricalPredictedJoint< Space, Scalar >One prediction of a HiddenMarkovFilter as a smoother needs it: the distribution the step started from, the prediction, and the matrix that moved one to the other
 CEmrys::CategoricalUpdate< Space, Scalar >The result of updating a CategoricalParams by an emission model: the posterior, whose weights sum to one, and the log-evidence of the measurement
 Cinternal::ChiSquaredWindowFor
  CEmrys::NeesMonitor< Window, MaxWindow, Scalar, Allocator >A chi-squared consistency check of a filter's estimates against the true states, over a window of them
  CEmrys::NisMonitor< Window, MaxWindow, Scalar, Allocator >A chi-squared consistency check over a window of updates
 CEmrys::roots::CholeskyCholesky axes: the lower Cholesky factor \( L \), \( L L^T = P \), by Eigen's LLT, which fails on a covariance that is not positive definite
 CEmrys::roots::ClampReportThe report of Pivoted, Principal, and Symmetric: how many pivots or eigenvalues were below zero and taken as zero, which only rounding should give a covariance
 CEmrys::reductions::CollapseReduction policy that moment-matches an update's branches into one Gaussian: soft outlier rejection, as in the probabilistic data association of Bar-Shalom and Tse (1975)
 CEmrys::CollapseBounds< Scalar >The bracket \( \max(B - H(\hat w), 0) \le \mathrm{KL}(p \parallel q) \le B \) on the divergence of a distribution from its collapse, which kullbackLeiblerCollapseBounds() returns
 CEmrys::Columns< Placed >The matrix \( H \) of a linear measurement model by its columns: a matrix per block of the state read, each placed by tag path with on() or onEach() (decisions.md [linear-sensors])
 CEmrys::ComponentErrorA mixture component that could not be factorized
 CEmrys::ComponentTraits< C >What a container does with a component beyond the component's own members (decisions.md [component-first]): logDensity(component, x), the log-density read from the component's factorization without a check of its own, for a container's density view that already holds one [execution-policies]; collapse(count, componentAt, logWeightAt), the collapse of several components into one by moment matching; moments(component), its mean and covariance, read without a check, for a container's density view that has checked it, as a hybrid's needs no member for them; and MarginalType, the view of a subset of one component's coordinates that a marginal of the container gives per component [element-marginals]
 CEmrys::ComponentTraits< GaussianParams< Space_, Scalar_ > >ComponentTraits of a Gaussian in covariance form
 CEmrys::ComponentTraits< HybridParams< Component_, ModeSpace_, Allocator_ > >ComponentTraits of a hybrid state, which make it a component (decisions.md [component-first])
 CEmrys::ComponentTraits< SqrtGaussianParams< Space_, Scalar_ > >ComponentTraits of a Gaussian in square-root form (decisions.md [component-first], [gaussian-forms])
 CEmrys::Composition< Models >Process models side by side, as compose() puts them (decisions.md [model-policies], [model-placement]): one model whose reads are the union of the parts', gathered once, whose writes are the parts' together, which must write every block of the state once, whose noise is block-diagonal, and whose affine set is the names every part reading them declares affine
 CEmrys::Conditioned< Space, OutputSpace, Scalar >The result of condition(): the posterior, and the innovation, from which the log-likelihood of the observation follows when asked for
 CEmrys::Consider< Paths >The blocks of the state that a Kalman update considers rather than estimates, as consider() names them (decisions.md [consider-states]): the Schmidt-Kalman update of Schmidt (1966)
 CEmrys::ContinuousNoise< Parts >A process model's white-noise spectral density, as continuousNoise() declares it, placed by tag path on blocks of the output and discretized over the step by the model (decisions.md [continuous-time-noise], [model-policies]): \( Q_c \, \Delta t \) on each block's differences
 CEmrys::ContinuousTimeMarkovChain< Space_, Scalar_ >A continuous-time Markov chain on a discrete space: the rate of moving from each value to each other value
 CEmrys::CountFrom< Path, MeasurementSpace >The measurement space function of a model whose measurement has a block of MeasurementSpace per repetition of the state's block Path, given to outputSpace() (decisions.md [measurement-space-functions])
 CEmrys::CrossMarked< Input >An uncertain input marked by withCross()
 CEmrys::methods::CubatureCubature method: the \( 2L \) points \( \mu \boxplus \pm \sqrt{L} \, S_j \) over the joint input space of dimension \( L \), for each column \( S_j \) of a root of the joint covariance, equally weighted by \( 1 / (2L) \), with no center point and no parameter
 CEmrys::DensityEmission< Observation, DistributionOf >The emission model of an observation drawn from a distribution chosen by the value: the log-density of the observation under the value's distribution
 CEmrys::DensityOf< P >The density of the parameters P, as its member DensityType: what its toDensity() returns
 CEmrys::EachRepetition< F, BlockSpace >One factor on every repetition of a repeated block: the product of independent copies of a density, one per repetition, as a density over the whole block (decisions.md [product-factors])
 CEmrys::MixtureMarginal< Source, Selection, SubSpace >::ElementOne component's log-weight, as in the source, and its marginal
 CEmrys::ParticleSetMarginal< Source, Selection, SubSpace >::ElementOne particle's log-weight, as in the source, and the selected entries of its state
 CEmrys::UniformGrid< Space_, Scalar_ >::ElementOne component: its log-weight and its mean and covariance
 CEmrys::EmissionTable< Space_, ObservationSpace_, Scalar_ >An emission table: the probability of each observed value given each value of the state
 CEmrys::Factors< Placed >The factors of a product, each placed by tag path with on() or onEach(), in no space yet: a Product once placed in one (decisions.md [product-factors])
 CEmrys::FilterBranch< MeasurementSpace, Scalar >One branch of a filter's update (see FilterUpdate): its weight, its innovation, and its labels, without the posterior, which the filter reduced into its state (decisions.md [innovation-statistics])
 CEmrys::FilterUpdate< MeasurementSpace, Count, Scalar_, Allocator >What a filter's update did: the branches of the update before reduction, with their weights and innovations but not their posteriors (decisions.md [innovation-statistics]), and whether the reduction policy accepted the measurement
 CEmrys::FilterUpdate< MeasurementSpace, std::dynamic_extent, double, DefaultAllocator >
  CEmrys::ReusableFilterUpdate< Space, MeasurementSpace, Scalar, Allocator >A FilterUpdate of a run-time number of branches that keeps the MeasurementUpdate it was last filled from, posteriors included, as the scratch of its next fill
 CEmrys::internal::FiniteExtent< Cardinality_, Cardinality_ >
  CEmrys::Finite< Eigen::Dynamic >
   CEmrys::GridAxis< Block, I >The axis of a regular grid of points (see regularGrid()) along coordinate I of the block Block: a run-time number of cells
   CEmrys::PointCells< Path >The cells of a grid of given points (see pointGrid()) for the block named by the path Path: one value per point, under a tag of its own
  CEmrys::Finite< Cardinality_, MaxCardinality_ >Cardinality_ unnamed values, 0 to Cardinality_ - 1, such as the cells of a grid; or a number set at run time, at most MaxCardinality_, if Cardinality_ is Eigen::Dynamic
 CEmrys::FitOptions< Scalar >Options for fitMixture()
 CEmrys::FixedStepModel< Space_, Model_, Method_, Scalar_ >A process model over one fixed time step, with the work that depends only on the step done once
 CEmrys::upkeep::FloorModes< Scalar_ >Action that raises every mode less probable than probability to it, scaling the others down to keep the sum one, so that no mode is ruled out for good
 Cstd::formatter
  Cstd::formatter< T, char >Formats any type the library describes (Emrys::internal::Printable) as its operator<< prints it
 CEmrys::FormGaussian< Params_ >The density of a Gaussian in a square-root or information form: a read-only view
 CEmrys::methods::FourthMomentUnscentedUnscented method with \( \alpha = 1 \), \( \beta = 0 \), and \( \kappa = 3 - L \) over \( L \) coordinates, so that \( L + \lambda = 3 \): the points sit at \( \sqrt 3 \) standard deviations along each column of the root whatever \( L \) is, and their fourth moment along each column is a Gaussian's, 3
 CEmrys::Gamma< Space_, Scalar_ >Independent Gamma distributions on the coordinates, for positive quantities such as ranges, speeds, and rates
 CEmrys::reductions::Gate< Inner, Scalar_ >Reduction policy that rejects branches by a chi-squared test on their normalized innovation squared, then reduces the rest with Inner
 CEmrys::methods::GaussHermite< Order >Gauss-Hermite method: the product rule of Order points per coordinate over the joint input space of dimension \( L \), \( \mathrm{Order}^L \) points in the coordinates of a root of the joint covariance
 CEmrys::Gaussian< Space_, Scalar_ >The density of a Gaussian whose covariance has been factorized: a read-only view
 CEmrys::GaussianConditional< Space_, Scalar_ >The result of GaussianParams::conditionalWithEvidence(): the conditional distribution and the log-evidence of the given values
 CEmrys::GaussianHistory< Space_, Scalar_, Allocator_ >The record of a Kalman filter's forward pass that a smoother runs backward over: one PredictedJoint per prediction, each with room for its smoothed Gaussian
 CEmrys::GaussianMarginal< Source, Selection, SubSpace >Read-only view of a subset of the entries of a GaussianParams or Gaussian
 CEmrys::GaussianMixtureHistory< Space_, Scalar_, Allocator_ >The record of a Gaussian mixture filter's forward pass that its smoother runs backward over: one GaussianMixturePredictedJoint per prediction, each with room for its smoothed mixture
 CEmrys::GaussianMixturePredictedJoint< Space_, Scalar_, Allocator_ >One prediction of a mixture of Gaussians as its smoother needs it: the weights the step started from, each component's prediction as a PredictedJoint, and how the components descend from those of the record before
 CEmrys::GaussianParams< Space_, Scalar_ >A Gaussian distribution: a mean and covariance in a space
 CEmrys::GivenBlock< Space, P, Value >A block of a state given from outside the Gaussian being updated, as given() makes it, for update(prior, measurement, given): the block named by the path P of a state in Space, given as Value
 CEmrys::GridCells< Path >The cells of a regular grid over the block named by the path Path: the DiscreteProduct of its GridAxis axes, the last varying fastest, under a tag of its own
 CEmrys::GridGaussian< Grid_, Covariance_, Component_ >The density of a Rao-Blackwellized point-mass filter's state, a checked view of its GridGaussianParams (decisions.md [params-and-density], [view-stamp]): \( p(x) = \sum_c P(c) \, \delta(x_p - p_c) \, \mathcal{N}(x_r; \mu_c, \Sigma_c) \) over the live cells, or the hybrid of Gaussians in each cell
 CEmrys::GridGaussianParams< Grid_, Covariance_, Component_ >The parameters of a Rao-Blackwellized point-mass filter's state: the cells of a grid still alive, their probabilities, and for each a Gaussian, or a hybrid of Gaussians, over the rest of the state
 CEmrys::GroundMetric< Space_, Scalar_ >A weighting of a space's differences, built by tag path: the ground metric of wasserstein()
 CEmrys::internal::HeldUpkeep< Derived, Upkeep_ >The upkeep a filter holds, and the members that give it out and run it on the filter's state (decisions.md [upkeep])
  CEmrys::ImmFilter< Component_, Model_, Method_, Allocator_, Upkeep_ >
  CEmrys::KalmanFilter< InfoGaussian< Space_, Scalar_ >, Model_, Method_, KalmanRecursion< InfoGaussian< Space_, Scalar_ >, Model_, Method_ >, Upkeep_ >
  CEmrys::KalmanFilter< SqrtInfoGaussian< Space_, Scalar_ >, Model_, Method_, KalmanRecursion< SqrtInfoGaussian< Space_, Scalar_ >, Model_, Method_ >, Upkeep_ >
  CEmrys::KalmanFilter< SqrtGaussian< Space_, Scalar_ >, Model_, Method_, KalmanRecursion< SqrtGaussian< Space_, Scalar_ >, Model_, Method_ >, Upkeep_ >
  CEmrys::RbPointMassFilter< Grid_, NoProcessModel, Covariance_, methods::Linearized, Upkeep_ >
  CEmrys::HiddenMarkovFilter< Space_, Chain_, Scalar_, Upkeep_ >A hidden Markov model filter: a CategoricalParams state, the chain that moves it, and the log-evidence of the measurements so far
  CEmrys::ImmFilter< Component_, Model_, Method_, Allocator_, Upkeep_ >An interacting multiple model (IMM) filter: a hybrid state with one component per mode, and the ImmRecursion that mixes it through a switching process model and updates it per mode
   CEmrys::AmmFilter< Component_, Model_, Method_, Allocator_, Upkeep_ >The autonomous multiple model (AMM) estimator: a bank of filters, one per mode, each running on its own, and the probability that each mode is the one in force, by Bayes' rule over their measurement likelihoods
  CEmrys::MixtureFilter< Component_, Model_, Method_, Allocator_, Recursion_, Upkeep_ >A mixture filter: a Mixture state, a process model, and the method that predicts through it, each component run by the recursion its type names, or by the one given
   CEmrys::GaussianMixtureFilter< Space_, Model_, Method_, Scalar_, Allocator_, Upkeep_ >The MixtureFilter over a GaussianMixtureParams, the spelling for the common case (decisions.md [filters-and-recursions]): each component a KalmanFilter's step, reweighted by its likelihood
  CEmrys::RbParticleFilter< Space_, Path_, Model_, Covariance_, Method_, Scalar_, Allocator_, Upkeep_ >A Rao-Blackwellized particle filter: particles for one block of the state, each carrying a Kalman filter over the rest
  CEmrys::RbPointMassFilter< Grid_, Model_, Covariance_, Method_, Upkeep_ >A Rao-Blackwellized point-mass filter: fixed points for one block of the state, such as a coarse position, each carrying a Kalman filter over the rest
 CEmrys::internal::HeldUpkeep< ImmFilter< Component_, Model_, DefaultMethodFor< Model_ >, DefaultAllocator, upkeep::None >, upkeep::None >
  CEmrys::ImmFilter< Component_, Model_, DefaultMethodFor< Model_ >, DefaultAllocator, upkeep::None >
 Cinternal::HeldUpkeep< KalmanFilter< Component_, Model_, DefaultMethodFor< Model_ >, KalmanRecursion< Component_, Model_, DefaultMethodFor< Model_ > >, upkeep::None >, upkeep::None >
  CEmrys::KalmanFilter< Component_, Model_, Method_, Recursion_, Upkeep_ >A Kalman filter: a Gaussian state and the KalmanRecursion that predicts it through a process model and conditions it on measurements
   CEmrys::InfoFilter< Space_, Model_, Method_, Scalar_, Upkeep_ >The information filter: a KalmanFilter whose state is an InfoGaussianParams, the precision and information vector about a reference (decisions.md [gaussian-forms])
   CEmrys::SqrtInfoFilter< Space_, Model_, Method_, Scalar_, Upkeep_ >The square-root information filter: a KalmanFilter whose state is a SqrtInfoGaussianParams, the data array \( [\,R \;\; r\,] \) about a reference (decisions.md [gaussian-forms])
   CEmrys::SqrtKalmanFilter< Space_, Model_, Method_, Scalar_, Upkeep_ >The square-root Kalman filter: a KalmanFilter whose state is a SqrtGaussianParams, a mean and a lower-triangular factor of the covariance (decisions.md [gaussian-forms])
 CEmrys::internal::HeldUpkeep< KalmanFilter< Component_, Model_, DefaultMethodFor< Model_ >, Recursion_, upkeep::None >, upkeep::None >
  CEmrys::KalmanFilter< InfoGaussian< Space_, double >, Model_, DefaultMethodFor< Model_ >, KalmanRecursion< InfoGaussian< Space_, double >, Model_, DefaultMethodFor< Model_ > >, upkeep::None >
  CEmrys::KalmanFilter< SqrtInfoGaussian< Space_, double >, Model_, DefaultMethodFor< Model_ >, KalmanRecursion< SqrtInfoGaussian< Space_, double >, Model_, DefaultMethodFor< Model_ > >, upkeep::None >
  CEmrys::KalmanFilter< SqrtGaussian< Space_, double >, Model_, DefaultMethodFor< Model_ >, KalmanRecursion< SqrtGaussian< Space_, double >, Model_, DefaultMethodFor< Model_ > >, upkeep::None >
 CEmrys::internal::HeldUpkeep< ParticleFilter< Space_, Model_, double, DefaultAllocator, upkeep::None >, upkeep::None >
  CEmrys::ParticleFilter< Space_, Model_, Scalar_, Allocator_, Upkeep_ >A particle filter: a weighted set of state points, moved by sampling the process model and weighted by the measurement likelihood
 CEmrys::HiddenMarkovFilterUpdate< Scalar >What a hidden Markov filter's update did: the measurement's log-evidence under the prior, and whether it was accepted
 CEmrys::Hybrid< Component_, ModeSpace_, Allocator_ >The density of a hybrid state, a checked view of its HybridParams (decisions.md [params-and-density], [view-stamp]): \( p(x, m) = P(m) \, p_m(x) \), with \( P(m) = w_m / \sum_n w_n \)
 CEmrys::HybridGaussianHistory< Space_, ModeSpace_, Scalar_, Allocator_ >The record of an IMM filter's forward pass that its smoother runs backward over: one HybridPredictedJoint per prediction, each with room for its smoothed HybridGaussian
 CEmrys::HybridParams< Component_, ModeSpace_, Allocator_ >The parameters of a hybrid state: a discrete mode, and a component conditioned on each mode
 CEmrys::HybridPredictedJoint< Space_, ModeSpace_, Scalar_, Allocator_ >One IMM prediction as its smoother needs it: the mode probabilities the step started from, each mode's Gaussian predicted through its own model as a PredictedJoint, and the chain's transition matrix
 CEmrys::ImmFilterUpdate< ModeUpdate, Scalar_, Allocator >What an IMM filter's update did: each mode's update before reduction, the observation's log-likelihood over every mode, and whether any mode accepted the measurement
 CEmrys::ImmRecursion< Component_, Model_, Method_, Allocator_ >The interacting multiple model (IMM) filter's steps over a hybrid state, without the state: a switching process model, the method that predicts the modes whose models carry none of their own, and the scratch the modes are mixed and updated into, acting on a Hybrid passed in (decisions.md [filters-and-recursions])
 CEmrys::InfoGaussianParams< Space_, Scalar_ >A Gaussian kept as its precision and information vector, about a reference value
 CEmrys::Innovation< Space, Scalar >The innovation of an update: the residual \( r \) of the observation from the predicted output, normalized in the output space, and its covariance \( S \), from which the update's statistics follow (decisions.md [innovation-statistics])
 CEmrys::methods::Iterated< Method, Scalar >Iterated method, for a measurement update: the update of Method relinearized with respect to its own posterior, with the prior held fixed, until the mean stops moving
 CEmrys::IteratedOptions< Scalar >The run-time settings of an Iterated method, given to methods::iterated() as iterated(method, {.tolerance = 1e-6}): what stops the iteration, in the scalar the method holds (decisions.md [policy-factories])
 CEmrys::JacobianFormThe Jacobian form of a linearization (decisions.md [linearization-forms]), which methods::linearized() and a Jacobian returned with the value compute (decisions.md [returned-jacobians]): the Jacobian \( H \) of the output in the marked input at its mean, and the cross-covariance \( \Sigma_{xy} = P H^T \)
 CEmrys::updates::JosephThe Joseph covariance update: \( (I - K H) P (I - K H)^T + K R K^T \), with \( H \) and \( R \) from the statistical linearization of the output in the input (see statisticalLinearization())
 CEmrys::KalmanRecursion< Component_, Model_, Method_ >The Kalman filter's steps over one component, without the state: a process model and a prediction method, acting on a component passed in (decisions.md [filters-and-recursions])
 CEmrys::reductions::KeepReduction policy that keeps every branch, each added to the filter's output with its own posterior probability (see ReductionPolicy)
 CEmrys::KernelDensity< Space_, Scalar_, Allocator_ >Gaussian kernel density estimate over a ParticleSet
 CEmrys::LagThe number of steps a fixed-lag history keeps
 CEmrys::internal::LeafExtent< Dimension, MaxDimension >The value dimension of a coordinate type: a compile-time constant when fixed, which takes no storage
  CEmrys::Linear< Matrix::RowsAtCompileTime, Matrix::MaxRowsAtCompileTime >
  CEmrys::Linear< Columns< Placed... >::Rows >
  CEmrys::Periodic< PeriodicInterval{.lower=-std::numbers::pi,.upper=std::numbers::pi}, Dimension, MaxDimension >
  CEmrys::Periodic< PeriodicInterval{.lower=0.0,.upper=2 *std::numbers::pi}, Dimension, MaxDimension >
  CEmrys::Periodic< PeriodicInterval{.lower=-180.0,.upper=180.0}, Dimension, MaxDimension >
  CEmrys::Periodic< PeriodicInterval{.lower=0.0,.upper=360.0}, Dimension, MaxDimension >
 CEmrys::internal::LeafExtent< 1, 1 >
  CEmrys::Linear< Dimension_, MaxDimension_ >Dimension_ plain coordinates, or a resizable run of at most MaxDimension_ of them if Dimension_ is Eigen::Dynamic
  CEmrys::Periodic< Interval, Dimension_, MaxDimension_ >Dimension_ coordinates that wrap with a common period, such as angles or DFT bins
 CEmrys::methods::LinearizedLinearized method: \( \bar y = f(\mu) \) and \( \Sigma_{yy} = \sum_i J_i \Sigma_i J_i^T \), with the Jacobians \( J_i \) of f at the input means
 CEmrys::LinearizedAbout< Reference >Where a step linearizes its input: a point, or a distribution, in place of the input's own mean and spread (decisions.md [linearization-reference])
 CEmrys::LogLikelihood< G >A measurement model's own \( \log p(z \mid x) \) at a state point, as logLikelihood() declares it, for the filters that weight points (decisions.md [likelihood-measurements], [model-policies]): a function g(in, x, z) of the model's input space instance, its input vector, and the observation
 CEmrys::LogSumExp< Scalar >Streaming log-sum-exp: accumulates \( \log \sum_i e^{x_i} \) without overflow
 CEmrys::MarkovChain< Space_, Scalar_ >A Markov chain on a discrete space: the probability of moving from each value to each value in one step
 CEmrys::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])
 CEmrys::MeasurementUpdate< Space, MeasurementSpace, Count, Scalar_, Allocator >The result of update(): weighted branches, one per noise component, and the observation's log-likelihood
 CEmrys::Mixture< Component_, Allocator_ >The density of a Mixture whose components have been factorized: a read-only view
 CEmrys::MixtureFilterUpdate< ComponentUpdate, Scalar, Allocator >What a mixture filter's update did: each prior component's update before reduction, the observation's log-likelihood under the whole mixture, and whether any component accepted the measurement
 CEmrys::MixtureFit< Space, Scalar, Allocator >Result of fitMixture(), in Space, with the source's allocator
 CEmrys::MixtureLineage< Scalar_, Allocator_ >How each component of a Mixture descends from the components it had at its last startLineage(): each component's share from each of those parents
 CEmrys::MixtureMarginal< Source, Selection, SubSpace >Read-only view of a subset of the coordinates of every component of a mixture or a hybrid, which iterates the components and gives each one's marginal in turn (decisions.md [element-marginals])
 CEmrys::MixtureParams< Component_, Allocator_ >A weighted sum of components of one type, all in one space
 CEmrys::ModelsMethodWhat a filter with a fixed-step model takes in place of a prediction method: nothing, since the model carries its own
 CEmrys::ModelWithMethod< Model_, Method_ >A process model and the prediction method that one mode of a SwitchingModel predicts it by, in place of the filter's [switching-models]
 CEmrys::Moments< Space_, Scalar_ >First and second moments (mean and covariance) of a distribution
 CEmrys::MonteCarloMethod that estimates a divergence from count draws
 CEmrys::MonteCarloEstimate< Scalar >An estimate from MonteCarlo draws, with its standard error
 CEmrys::resamplers::MultinomialDraws each ancestor independently
 CEmrys::MixtureParams< Component_, Allocator_ >::MutableEntryWritable access to one entry during forEach()
 CEmrys::ParticleSet< Space_, Scalar_, Allocator_ >::MutableParticleWritable access to one particle during forEach()
 CEmrys::Named< Values >Values named by the tag types Values, in order: struct Maneuver : Named<Cruise, Turn> {};
 CEmrys::NisThreshold< Scalar >A Gate's threshold given directly as a normalized innovation squared, rather than as a probability, in the scalar it is written in (NisThreshold{9.21f} is a float)
 CEmrys::upkeep::NoneThe upkeep a filter holds when it is given none: it takes any state, changes nothing, and returns false, so that maintain() can be called on every filter (decisions.md [upkeep])
 CEmrys::NoProcessModelThe process model of a state with nothing to move: what a PointMassFilter, whose grid covers the whole state, holds in place of one
 CEmrys::roots::NoReportThe report of axes or a repair with nothing to say, as Cholesky's: it either took the root or failed
 CEmrys::EmissionTable< Space_, ObservationSpace_, Scalar_ >::ObservationThe emission model of one observed value: the column of the table it selects
 CEmrys::Observed< Method, Model, Observation, Args >An observation of a measurement model: the observed value, the model, the method that pushes the state through it, and the inputs of the call, as observe() makes it (decisions.md [templated-measurements], [method-per-measurement], [model-policies])
 CEmrys::OutputSpace< X >A model's output space given by its instance, or computed from the state's space, as outputSpace() declares it (decisions.md [measurement-space-functions], [model-policies]): for an output with a resizable block, whose size the type does not fix
 CEmrys::OutputWithCross< InputSpace, OutputSpace, Form, Scalar >The result of transform() with an input marked by withCross(): the output's Gaussian and its linearization in that input, in the Form the method computes it, JacobianForm or RootForm (decisions.md [linearization-forms])
 CEmrys::ParamsOf< D >The parameters of the density D, as its member ParamsType: the type it borrows from, or what a marginal's copy() returns
 CEmrys::ParticleFilterUpdate< Scalar >What a particle filter's update did: the observation's log-likelihood under the particles, and whether it was accepted
 CEmrys::ParticleGaussian< Space_, Path_, Covariance_, Scalar_, Allocator_, Component_ >The density of a Rao-Blackwellized particle filter's state, a checked view of its ParticleGaussianParams (decisions.md [params-and-density], [view-stamp]): \( p(x) = \sum_i w_i \, \delta(x_p - p_i) \, \mathcal{N}(x_r; \mu_i, \Sigma_i) \), or with a hybrid per particle, a mixture over its modes in place of each Gaussian
 CEmrys::ParticleGaussianParams< Space_, Path_, Covariance_, Scalar_, Allocator_, Component_ >The parameters of a Rao-Blackwellized particle filter's state: weighted particles for one block of the state, each carrying a Gaussian, or a hybrid of Gaussians, over the rest
 CEmrys::ParticleHistory< Space_, Scalar_, Allocator_ >The record of a particle filter's forward pass that ancestor tracing runs backward over: the particles at each step, how each descends from the step before, and room for the step's smoothed particles
 CEmrys::ParticleSet< Space_, Scalar_, Allocator_ >A set of weighted samples: the empirical distribution
 CEmrys::ParticleSetMarginal< Source, Selection, SubSpace >Read-only view of a subset of the state entries of a ParticleSet
 CEmrys::jacobians::PerColumnThe mark that a batched function writes one Jacobian per column, by block of its input: Y.jacobian<Name>(j), made by perColumn()
 CEmrys::PeriodicIntervalWhere a Periodic coordinate's values lie: the half-open interval [lower, upper), whose width is the period
 CEmrys::PerPointCovarianceA covariance per point
 CEmrys::roots::PivotedPivoted axes: \( \Pi^T L D^{1/2} \) from Eigen's pivoted LDL decomposition \( P = \Pi^T L D L^T \Pi \), with a negative pivot, which rounding can give a singular matrix, taken as zero
 CEmrys::PointGrid< Space_, Path_, Cells_, CellCovariance_, Scalar_, Allocator_ >Fixed points for the block named by the path Path_ of a state in Space_, one per value of the discrete space Cells_, such as the cells of a grid of positions
 CEmrys::PosteriorCramerRaoBound< Space_, Scalar_ >The posterior Cramér-Rao bound along true trajectories: the Fisher information \( J_k \) of the state, whose inverse bounds the mean squared error of any estimator of \( x_k \)
 CEmrys::PredictedJoint< Space_, Scalar_ >One prediction step as a joint: the Gaussian the step started from, the Gaussian it predicted, and the cross-covariance between them
 CEmrys::roots::PrincipalPrincipal axes: \( U \Lambda^{1/2} \), the eigenvectors of \( P = U \Lambda U^T \) scaled by the roots of their eigenvalues, largest first, with a negative eigenvalue taken as zero, so that it never fails
 CEmrys::ProcessFunction< F, Policies >A process model: a function \( f \) of its input and the step, with the policies that say what it reads, what it writes, and what it is affine in, and its noise (decisions.md [model-policies], [continuous-time-noise])
 CEmrys::ProcessFunction< internal::IdentityStep, internal::ReadsOne< Path >, internal::WritesOf< Path >, AffineIn< internal::PathTag< Path > > >
  CEmrys::Constant< Path >The block named by Path does not change, and has no process noise, such as a fixed calibration parameter
 CEmrys::ProcessFunction< internal::IdentityStep, internal::ReadsOne< Path >, internal::WritesOf< Path >, AffineIn< internal::PathTag< Path > >, internal::DiscreteNoise< internal::RandomWalkNoise< internal::DifferenceSpaceOf< internal::PathTag< Path > >::type::FixedValueDimension, double > > >
  CEmrys::RandomWalk< Path, Scalar_ >A model driven by white noise alone: \( x' = x \), with noise \( Q_c \, \Delta t \) on its differences
 CEmrys::ProcessFunction< internal::KinematicStep< internal::PathTag< std::tuple_element_t< 0, std::tuple< Paths... > > >::FixedValueDimension, internal::PathTag< Paths >... >, internal::ReadsOf< Paths... >, internal::WritesOf< Paths... >, AffineIn< internal::PathTag< Paths >... >, internal::DiscreteNoise< internal::KinematicNoise< internal::PathTag< std::tuple_element_t< 0, std::tuple< Paths... > > >::FixedValueDimension, Scalar_, internal::PathTag< Paths >... > > >
  CEmrys::Kinematic< Scalar, Position, Velocity >
  CEmrys::Kinematic< Scalar, Position, Velocity, Acceleration >
  CEmrys::Kinematic< Scalar_, Paths >A chain of two or more derivatives whose last one is driven by white noise: constant velocity and constant acceleration
 CEmrys::ProcessFunction< internal::OrnsteinUhlenbeckStep< double >, internal::ReadsOne< Path >, internal::WritesOf< Path >, AffineIn< internal::PathTag< Path > >, internal::DiscreteNoise< internal::OrnsteinUhlenbeckNoise< double > > >
  CEmrys::OrnsteinUhlenbeck< Path, Scalar_ >A zero-mean Ornstein-Uhlenbeck (first-order Gauss-Markov) process on each coordinate of the block named by Path, such as a slowly varying sensor bias
 CEmrys::Product< Space_, Scalar_, Factors_ >The product of independent densities, each on its own coordinates of a space
 CEmrys::upkeep::PruneBelow< Scalar_ >Action that removes every point whose normalized probability is below probability, renormalizing the rest; the most probable point is always kept
 CEmrys::upkeep::PruneTail< Scalar_ >Action that removes the least probable points, as many as can be while their combined probability stays below fraction, renormalizing the rest
 CEmrys::upkeep::PruneToSizeAction that removes the least probable points until at most maxSize remain, renormalizing the rest
 CEmrys::RbParticleFilterUpdate< Scalar, Allocator >What a Rao-Blackwellized particle filter's update did, per particle and in total
 CEmrys::RbPointMassFilterUpdate< Scalar, Allocator >What a Rao-Blackwellized point-mass filter's update did, per live cell and in total
 CEmrys::Reads< Items >What a model reads, as reads() declares it: the items, each a path into the state or the tag of an input of the call, under a name (decisions.md [model-policies])
 CEmrys::upkeep::RepairCovariance< Repair_ >Action that repairs every covariance of the state that is not positive definite, by the Repair Repair_ (roots::Ridge by default), so that its density can be read
 CEmrys::Repeated< Block, MaxCount_ >A fixed-size Block repeated count() times, up to MaxCount_, such as one block per vehicle
 CEmrys::upkeep::Resample< G, Resampler_, Policy_ >Action that resamples a set in proportion to its weights, drawing from the generator G with the resampler Resampler_ (systematic by default) under the execution policy Policy_ (sequential by default), to a given size if one is given and to the set's size otherwise
 CEmrys::resamplers::Residual< Inner >Chooses index i floor( \( M w_i / \sum w \)) times deterministically, then draws the remainder with Inner from the fractional parts
 CEmrys::roots::Ridge< Relative, Absolute >The ridge repair: the Gershgorin ridge of decisions.md [covariance-repair], added to the diagonal of a covariance whose root failed so that the root can be retried
 CEmrys::roots::RidgeReport< Scalar >The report of a Ridge: the ridge \( \delta \) it added to the diagonal
 CEmrys::roots::RootFailure< Report >Why squareRootWithReport() failed, and what each entry tried did
 CEmrys::RootFormThe root form of a linearization (decisions.md [linearization-forms]), which every sigma-point method computes: the root \( S \) of the marked input's covariance that spread the points, \( S S^T = P \), and the whitened cross-covariance \( \Psi = S^{-1} \Sigma_{xy} = (H S)^T \), the weighted sum \( \sum_i w_i \xi_i \Delta y_i^T \) over the unit points \( \xi_i \) and the output deviations \( \Delta y_i \)
 CEmrys::roots::RootWithReport< Matrix, Report >A root and the report of the axes that took it, from squareRootWithReport()
 CEmrys::upkeep::Roughen< G, Scalar_, Policy_ >Action that moves each particle by an independent draw from a Gaussian kernel, to restore the diversity resampling removes: the regularized particle filter
 CEmrys::Sample< G >A draw of the observation that a measurement model known by its likelihood alone makes of a state, as sample() declares it, for simulate() (decisions.md [likelihood-measurements], [model-policies]): a function g(in, x, rng) of the model's input space instance, its input vector, and the caller's generator, returning the observation
 CEmrys::SamplesWithLogDensity< Space, Scalar >Samples in Space together with the log of the density they were drawn from, evaluated at each
 CEmrys::SampleWithLogDensity< Space, Scalar >One sample in Space, in a vector sized by the space, together with the log of the density it was drawn from, evaluated at it: what drawSampleWithLogDensity() returns, so that a bounded space allocates nothing [allocation]
 CEmrys::reductions::SelectReduction policy that keeps the most probable branch: hard rejection by comparing the noise components with each other
 CEmrys::execution::SequentialThe type of execution::sequential, the default execution policy: plain loops on the calling thread, in index order
 CEmrys::jacobians::SharedThe mark that a batched function writes one Jacobian for every column, by block of its input: Y.jacobian<Name>(), for a function linear in its input, made by shared()
 CEmrys::SharedCovarianceOne covariance for every point
 CEmrys::methods::SphericalSimplex< CenterWeight >Spherical simplex method: \( L + 2 \) points over the joint input space of dimension \( L \), the mean with weight centerWeight \( W_0 \) and \( L + 1 \) points of weight \( (1 - W_0) / (L + 1) \) on a sphere of radius \( \sqrt{L / (1 - W_0)} \) about it, in the coordinates of a root of the joint covariance
 CEmrys::methods::Spread< Rule, A >A sigma-point rule spread by axes of its own (decisions.md [sigma-point-axes]): Rule's unit points and weights, an UnscentedRule or a PointSet, carried into the input by the root A takes (Axes), in place of the default, roots::cholesky(roots::pivoted())
 CEmrys::SqrtGaussianParams< Space_, Scalar_ >A Gaussian kept as a mean and a lower-triangular root of its covariance
 CEmrys::SqrtGaussianParams< SubSpace, Source::Scalar >
 CEmrys::SqrtInfoGaussianParams< Space_, Scalar_ >A Gaussian kept as an upper-triangular root of its precision and a whitened offset, about a reference value
 CEmrys::updates::StandardThe standard covariance update of condition(): \( P - K \Sigma_{xy}^T \), which is \( (I - K H) P \) written without \( H \)
 CEmrys::StationaryVariance< Scalar >The stationary variance \( \sigma^2 \) of an OrnsteinUhlenbeck model, named so that it cannot be given in the place of its time constant
 CEmrys::StatisticalLinearization< InputSpace, OutputSpace, Scalar >The statistical linearization of an output in an input, from statisticalLinearization(): the affine function of the input that best predicts the output in mean square, \( y \approx \bar y \boxplus H (x \boxminus \mu) \), and the covariance \( \Omega \) of what it leaves unexplained
 CEmrys::CategoricalHistory< Space_, Scalar_, Allocator_ >::StepOne recorded prediction and its smoothed distribution
 CEmrys::GaussianHistory< Space_, Scalar_, Allocator_ >::StepOne recorded prediction and its smoothed Gaussian
 CEmrys::GaussianMixtureHistory< Space_, Scalar_, Allocator_ >::StepOne recorded prediction and its smoothed mixture, built from the history's allocator
 CEmrys::HybridGaussianHistory< Space_, ModeSpace_, Scalar_, Allocator_ >::StepOne recorded prediction and its smoothed hybrid state, built from the history's allocator
 CEmrys::ParticleHistory< Space_, Scalar_, Allocator_ >::StepOne recorded set of particles, its descent from the step before, and its smoothed set, built from the history's allocator
 CEmrys::StepsA count of a fixed-step model's steps, for predict(Steps{n})
 CEmrys::internal::StoredParts< decltype(std::tuple_cat(std::declval< StoredPart< Parts > >()...))>
  CEmrys::internal::PartStorage< Blocks... >
   CEmrys::Composite< typename Items::NameType... >
   CEmrys::Composite< Blocks >The concatenation of Blocks, any number of them resizable
  CEmrys::internal::PartStorage< Axes... >
   CEmrys::DiscreteProduct< Axes >The product of the discrete spaces Axes: a value has one value in each axis
 CEmrys::resamplers::StratifiedDraws one uniform in each of M equal strata of [0, 1)
 CEmrys::StudentT< Space_, Scalar_ >The multivariate Student-t distribution: a Gaussian with heavier tails
 CEmrys::upkeep::SubdivideAction that splits every point into factor points along each axis, sharing its probability equally
 CEmrys::Sure< S, Vector >A sure input of predict() or observe(): a known value in the tagged space S, as sure() marks it (decisions.md [prediction-inputs], [tag-addressing])
 CEmrys::SwitchingMeasurement< Path_, Measurements >A measurement that switches between modes: one Measurement per value of a mode axis, so that a filter over a Hybrid updates each mode by the measurement that its value in that axis names [imm]
 CEmrys::SwitchingModel< ModeSpace_, Scalar_, Path_, Models >A process model that switches between modes: a Markov chain on a discrete mode space, and the process model each mode follows [switching-models]
 CEmrys::roots::SymmetricSymmetric axes: the principal square root \( P^{1/2} = U \Lambda^{1/2} U^T \), the one symmetric positive semidefinite root, with a negative eigenvalue taken as zero, so that it never fails
 CEmrys::updates::SymmetricThe symmetric covariance update: \( P - K \Sigma_{yy} K^T \), equal to the standard form when \( K \) is the optimal gain, and made exactly symmetric
 CEmrys::resamplers::SystematicUses one uniform offset for M evenly spaced positions in [0, 1)
 CEmrys::TagPath< Tags >A path of tags, each naming a block inside the one before: TagPath<Ownship, Position> is the Position block of Ownship
 CEmrys::TagPaths< Paths >A list of tag paths, each a tag or a TagPath, such as the blocks a measurement reads (TagPaths<Position, TagPath<Sensor, Bias>>)
 CEmrys::TimeConstant< Scalar >The time constant \( \tau \) of an OrnsteinUhlenbeck model, named so that it cannot be given in the place of its variance
 CEmrys::TimeTraits< Time >How a time type converts to a scalar, as a static member template toScalar<Scalar>(t) returning Scalar, in the unit of the parameters of the models it steps
 CEmrys::TimeTraits< std::chrono::duration< Rep, Period > >A std::chrono::duration, converted to seconds in the scalar by its period
 CEmrys::TimeTraits< Time >A floating-point number, taken as it is and converted to the scalar
 CEmrys::UnboundFixedStep< Model_, Method_, Time_ >A process model taken over one fixed time step, not yet bound to a state space: what fixedStep() returns
 CEmrys::Uniform< Space_, Scalar_ >The uniform distribution over a box in a space
 CEmrys::UniformGrid< Space_, Scalar_ >The equal-weight components of a grid over some coordinates of a space, made one at a time when read: what uniformComponents() returns
 CEmrys::UnitQuaternionAn attitude: a unit quaternion of four coordinates whose differences are three-coordinate rotation vectors in the body frame
 CEmrys::methods::Unscented< Alpha, Beta, Kappa >Unscented method: \( 2L + 1 \) sigma points over the joint input space of dimension \( L \), spread by \( \lambda = \alpha^2 (L + \kappa) - L \)
 CEmrys::UnscentedParams< Scalar >The parameters of the scaled unscented transform over a number of coordinates, in Scalar, as an UnscentedRule gives them: \( \lambda = \alpha^2 (L + \kappa) - L \)
 CEmrys::UpdateBranch< Space, MeasurementSpace, Scalar >One outcome of an update: a posterior, how probable it is, and its innovation, from which the observation's likelihood under it and its NIS follow (decisions.md [innovation-statistics])
 CEmrys::ImmRecursion< Component_, Model_, Method_, Allocator_ >::UpdateTypeOf< M >UpdateType<M>, named without being formed (see internal::UnlessGivenBlock)
 CEmrys::internal::ValueRates< Space, double >
  CEmrys::ArrivalInterval< Space, Scalar_ >The observation of a Markov-modulated Poisson process over an interval: no event inside it, and an event at its end unless it closes the record
  CEmrys::ExponentialEmission< Space, Scalar_ >The emission model of the time from one event to the next, from a Poisson process whose rate is a function of the value
  CEmrys::PoissonEmission< Space, Scalar_ >The emission model of a count of events over an interval, from a Poisson process whose rate is a function of the value
 CEmrys::ValueSequence< Space, Scalar, Allocator >The most probable sequence of values over a CategoricalHistory, and its posterior probability, from mostProbableSequence()
 CEmrys::upkeep::When< Predicate, Actions >Trigger that runs its actions when its predicate holds for the state: the general trigger, of which WhenEss and WhenSize are two
 CEmrys::roots::WithFallbacks< Head, Fallbacks >Axes that can fail, followed by their fallbacks, tried in order (decisions.md [sigma-point-axes]): a repair, which retries Head on the covariance it repairs, or other axes, which take the root themselves
 CEmrys::WithJacobian< Value, Jacobian >What a function returns when it knows its Jacobian: its value, and the Jacobian of its output differences in its uncertain inputs' differences, at the same point (decisions.md [returned-jacobians])
 CEmrys::Writes< Paths >What a model writes, as writes() declares it: the blocks its function's result fills (decisions.md [model-policies])
 CRecursion_