EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
 NEmrys
  NexecutionThe library's execution policies: the constant execution::sequential and its type
   CSequentialThe type of execution::sequential, the default execution policy: plain loops on the calling thread, in index order
  NjacobiansThe marks of the Jacobians a batched function writes beside its values (decisions.md [batched-functions], [policy-factories]): perColumn() and shared(), given as batched(f, mark)
   CPerColumnThe mark that a batched function writes one Jacobian per column, by block of its input: Y.jacobian<Name>(j), made by perColumn()
   CSharedThe 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()
  NmethodsThe transform methods and the sigma-point rules, each made by its factory (decisions.md [policy-factories], [method-per-measurement]): linearized(), unscented(), cubature(), sphericalSimplex(), gaussHermite(), and iterated()
   CLinearizedLinearized 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
   CUnscentedUnscented method: \( 2L + 1 \) sigma points over the joint input space of dimension \( L \), spread by \( \lambda = \alpha^2 (L + \kappa) - L \)
   CFourthMomentUnscentedUnscented 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
   CCubatureCubature 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
   CSphericalSimplexSpherical 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
   CGaussHermiteGauss-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
   CSpreadA 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())
   CIteratedIterated 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
  NreductionsThe reduction policies, each made by its factory (decisions.md [policy-factories], [reduction-policies]): collapse(), select(), keep(), and gate()
   CCollapseReduction 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)
   CSelectReduction policy that keeps the most probable branch: hard rejection by comparing the noise components with each other
   CKeepReduction policy that keeps every branch, each added to the filter's output with its own posterior probability (see ReductionPolicy)
   CGateReduction policy that rejects branches by a chi-squared test on their normalized innovation squared, then reduces the rest with Inner
  NresamplersThe resamplers, each made by its factory (decisions.md [policy-factories]): multinomial(), stratified(), systematic(), and residual()
   CMultinomialDraws each ancestor independently
   CStratifiedDraws one uniform in each of M equal strata of [0, 1)
   CSystematicUses one uniform offset for M evenly spaced positions in [0, 1)
   CResidualChooses index i floor( \( M w_i / \sum w \)) times deterministically, then draws the remainder with Inner from the fractional parts
  NrootsThe axes and repairs, each made by its factory (decisions.md [policy-factories]), and the roots taken by them: cholesky(), pivoted(), principal(), symmetric(), along(), ridge(), squareRoot(), and squareRootWithReport()
   CNoReportThe report of axes or a repair with nothing to say, as Cholesky's: it either took the root or failed
   CClampReportThe 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
   CRidgeReportThe report of a Ridge: the ridge \( \delta \) it added to the diagonal
   CCholeskyCholesky axes: the lower Cholesky factor \( L \), \( L L^T = P \), by Eigen's LLT, which fails on a covariance that is not positive definite
   CPivotedPivoted 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
   CPrincipalPrincipal 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
   CSymmetricSymmetric 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
   CAlongAxes 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])
   CRidgeThe 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
   CWithFallbacksAxes 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
   CRootWithReportA root and the report of the axes that took it, from squareRootWithReport()
   CRootFailureWhy squareRootWithReport() failed, and what each entry tried did
  NupdatesThe covariance update forms, each made by its factory (decisions.md [policy-factories], [covariance-update-forms]): standard(), symmetric(), and joseph()
   CStandardThe standard covariance update of condition(): \( P - K \Sigma_{xy}^T \), which is \( (I - K H) P \) written without \( H \)
   CSymmetricThe symmetric covariance update: \( P - K \Sigma_{yy} K^T \), equal to the standard form when \( K \) is the optimal gain, and made exactly symmetric
   CJosephThe 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())
  NupkeepThe upkeep operations, each made by its factory (decisions.md [policy-factories], [upkeep]): the actions resample(), roughen(), pruneBelow(), pruneTail(), pruneToSize(), subdivide(), floorModes(), and repairCovariance(), the triggers when(), whenEss(), and whenSize(), sequence(), and none()
   CResampleAction 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
   CRoughenAction that moves each particle by an independent draw from a Gaussian kernel, to restore the diversity resampling removes: the regularized particle filter
   CWhenTrigger that runs its actions when its predicate holds for the state: the general trigger, of which WhenEss and WhenSize are two
   CNoneThe 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])
   CPruneBelowAction that removes every point whose normalized probability is below probability, renormalizing the rest; the most probable point is always kept
   CPruneTailAction that removes the least probable points, as many as can be while their combined probability stays below fraction, renormalizing the rest
   CPruneToSizeAction that removes the least probable points until at most maxSize remain, renormalizing the rest
   CSubdivideAction that splits every point into factor points along each axis, sharing its probability equally
   CFloorModesAction 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
   CRepairCovarianceAction 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
  CAdditiveNoiseNoise 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
  CAffineInThe 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
  CAmmFilterThe 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
  CArrivalIntervalThe 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
  CAxisIndexAn index in each leaf axis of the axis named by the path Path (a tag or a TagPath), as at() makes it, for valueOf()
  CBatchedA 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
  CBatchedOutputThe 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
  CBlockRowsRows of a contiguous block of a space
  CCapacityThe most elements a container will hold, reserved once: a mixture's components or a particle set's particles
  CCategoricalThe probabilities of a CategoricalParams whose weights define a distribution: a read-only view
  CCategoricalHistoryThe record of a HiddenMarkovFilter's forward pass that a smoother runs backward over: one CategoricalPredictedJoint per prediction, each with room for its smoothed distribution
   CStepOne recorded prediction and its smoothed distribution
  CCategoricalParamsThe parameters of a probability distribution over a discrete space: one weight per value
  CCategoricalPredictedJointOne 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
  CCategoricalUpdateThe result of updating a CategoricalParams by an emission model: the posterior, whose weights sum to one, and the log-evidence of the measurement
  CCollapseBoundsThe 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
  CColumnsThe 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])
  CComponentErrorA mixture component that could not be factorized
  CComponentTraitsWhat 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]
  CComponentTraits< GaussianParams< Space_, Scalar_ > >ComponentTraits of a Gaussian in covariance form
  CComponentTraits< HybridParams< Component_, ModeSpace_, Allocator_ > >ComponentTraits of a hybrid state, which make it a component (decisions.md [component-first])
  CComponentTraits< SqrtGaussianParams< Space_, Scalar_ > >ComponentTraits of a Gaussian in square-root form (decisions.md [component-first], [gaussian-forms])
  CCompositeThe concatenation of Blocks, any number of them resizable
  CCompositionProcess 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
  CConditionedThe result of condition(): the posterior, and the innovation, from which the log-likelihood of the observation follows when asked for
  CConsiderThe 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)
  CConstantThe block named by Path does not change, and has no process noise, such as a fixed calibration parameter
  CContinuousNoiseA 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
  CContinuousTimeMarkovChainA continuous-time Markov chain on a discrete space: the rate of moving from each value to each other value
  CCountFromThe 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])
  CCrossMarkedAn uncertain input marked by withCross()
  CDensityEmissionThe emission model of an observation drawn from a distribution chosen by the value: the log-density of the observation under the value's distribution
  CDensityOfThe density of the parameters P, as its member DensityType: what its toDensity() returns
  CDiscreteProductThe product of the discrete spaces Axes: a value has one value in each axis
  CEachRepetitionOne 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])
  CEmissionTableAn emission table: the probability of each observed value given each value of the state
   CObservationThe emission model of one observed value: the column of the table it selects
  CExponentialEmissionThe emission model of the time from one event to the next, from a Poisson process whose rate is a function of the value
  CFactorsThe 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])
  CFilterBranchOne 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])
  CFilterUpdateWhat 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
  CFiniteCardinality_ 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
  CFitOptionsOptions for fitMixture()
  CFixedStepModelA process model over one fixed time step, with the work that depends only on the step done once
  CFormGaussianThe density of a Gaussian in a square-root or information form: a read-only view
  CGammaIndependent Gamma distributions on the coordinates, for positive quantities such as ranges, speeds, and rates
  CGaussianThe density of a Gaussian whose covariance has been factorized: a read-only view
  CGaussianConditionalThe result of GaussianParams::conditionalWithEvidence(): the conditional distribution and the log-evidence of the given values
  CGaussianHistoryThe 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
   CStepOne recorded prediction and its smoothed Gaussian
  CGaussianMarginalRead-only view of a subset of the entries of a GaussianParams or Gaussian
  CGaussianMixtureFilterThe 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
  CGaussianMixtureHistoryThe 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
   CStepOne recorded prediction and its smoothed mixture, built from the history's allocator
  CGaussianMixturePredictedJointOne 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
  CGaussianParamsA Gaussian distribution: a mean and covariance in a space
  CGivenBlockA 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
  CGridAxisThe axis of a regular grid of points (see regularGrid()) along coordinate I of the block Block: a run-time number of cells
  CGridCellsThe 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
  CGridGaussianThe 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
  CGridGaussianParamsThe 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
  CGroundMetricA weighting of a space's differences, built by tag path: the ground metric of wasserstein()
  CHiddenMarkovFilterA hidden Markov model filter: a CategoricalParams state, the chain that moves it, and the log-evidence of the measurements so far
  CHiddenMarkovFilterUpdateWhat a hidden Markov filter's update did: the measurement's log-evidence under the prior, and whether it was accepted
  CHybridThe 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 \)
  CHybridGaussianHistoryThe 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
   CStepOne recorded prediction and its smoothed hybrid state, built from the history's allocator
  CHybridParamsThe parameters of a hybrid state: a discrete mode, and a component conditioned on each mode
  CHybridPredictedJointOne 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
  CImmFilterAn 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
  CImmFilterUpdateWhat 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
  CImmRecursionThe 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])
   CUpdateTypeOfUpdateType<M>, named without being formed (see internal::UnlessGivenBlock)
  CInfoFilterThe information filter: a KalmanFilter whose state is an InfoGaussianParams, the precision and information vector about a reference (decisions.md [gaussian-forms])
  CInfoGaussianParamsA Gaussian kept as its precision and information vector, about a reference value
  CInnovationThe 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])
  CIteratedOptionsThe 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])
  CJacobianFormThe 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 \)
  CKalmanFilterA Kalman filter: a Gaussian state and the KalmanRecursion that predicts it through a process model and conditions it on measurements
  CKalmanRecursionThe 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])
  CKernelDensityGaussian kernel density estimate over a ParticleSet
  CKinematicA chain of two or more derivatives whose last one is driven by white noise: constant velocity and constant acceleration
  CLagThe number of steps a fixed-lag history keeps
  CLinearDimension_ plain coordinates, or a resizable run of at most MaxDimension_ of them if Dimension_ is Eigen::Dynamic
  CLinearizedAboutWhere a step linearizes its input: a point, or a distribution, in place of the input's own mean and spread (decisions.md [linearization-reference])
  CLogLikelihoodA 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
  CLogSumExpStreaming log-sum-exp: accumulates \( \log \sum_i e^{x_i} \) without overflow
  CMarkovChainA Markov chain on a discrete space: the probability of moving from each value to each value in one step
  CMeasurementFunctionA 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])
  CMeasurementUpdateThe result of update(): weighted branches, one per noise component, and the observation's log-likelihood
  CMixtureThe density of a Mixture whose components have been factorized: a read-only view
  CMixtureFilterA 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
  CMixtureFilterUpdateWhat 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
  CMixtureFitResult of fitMixture(), in Space, with the source's allocator
  CMixtureLineageHow each component of a Mixture descends from the components it had at its last startLineage(): each component's share from each of those parents
  CMixtureMarginalRead-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])
   CElementOne component's log-weight, as in the source, and its marginal
  CMixtureParamsA weighted sum of components of one type, all in one space
   CEntryOne weighted component
   CMutableEntryWritable access to one entry during forEach()
  CModelsMethodWhat a filter with a fixed-step model takes in place of a prediction method: nothing, since the model carries its own
  CModelWithMethodA process model and the prediction method that one mode of a SwitchingModel predicts it by, in place of the filter's [switching-models]
  CModeNoiseAdditive 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
  CMomentsFirst and second moments (mean and covariance) of a distribution
  CMonteCarloMethod that estimates a divergence from count draws
  CMonteCarloEstimateAn estimate from MonteCarlo draws, with its standard error
  CNamedValues named by the tag types Values, in order: struct Maneuver : Named<Cruise, Turn> {};
  CNeesMonitorA chi-squared consistency check of a filter's estimates against the true states, over a window of them
  CNisMonitorA chi-squared consistency check over a window of updates
  CNisThresholdA 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)
  CNoProcessModelThe process model of a state with nothing to move: what a PointMassFilter, whose grid covers the whole state, holds in place of one
  CObservedAn 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])
  COrnsteinUhlenbeckA 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
  COutputSpaceA 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
  COutputWithCrossThe 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])
  CParamsOfThe parameters of the density D, as its member ParamsType: the type it borrows from, or what a marginal's copy() returns
  CParticleFilterA particle filter: a weighted set of state points, moved by sampling the process model and weighted by the measurement likelihood
  CParticleFilterUpdateWhat a particle filter's update did: the observation's log-likelihood under the particles, and whether it was accepted
  CParticleGaussianThe 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
  CParticleGaussianParamsThe 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
  CParticleHistoryThe 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
   CStepOne recorded set of particles, its descent from the step before, and its smoothed set, built from the history's allocator
  CParticleSetA set of weighted samples: the empirical distribution
   CMutableParticleWritable access to one particle during forEach()
  CParticleSetMarginalRead-only view of a subset of the state entries of a ParticleSet
   CElementOne particle's log-weight, as in the source, and the selected entries of its state
  CPeriodicDimension_ coordinates that wrap with a common period, such as angles or DFT bins
  CPeriodicIntervalWhere a Periodic coordinate's values lie: the half-open interval [lower, upper), whose width is the period
  CPerPointCovarianceA covariance per point
  CPointCellsThe 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
  CPointGridFixed 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
  CPoissonEmissionThe emission model of a count of events over an interval, from a Poisson process whose rate is a function of the value
  CPosteriorCramerRaoBoundThe 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 \)
  CPredictedJointOne prediction step as a joint: the Gaussian the step started from, the Gaussian it predicted, and the cross-covariance between them
  CProcessFunctionA 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])
  CProductThe product of independent densities, each on its own coordinates of a space
  CRandomWalkA model driven by white noise alone: \( x' = x \), with noise \( Q_c \, \Delta t \) on its differences
  CRbParticleFilterA Rao-Blackwellized particle filter: particles for one block of the state, each carrying a Kalman filter over the rest
  CRbParticleFilterUpdateWhat a Rao-Blackwellized particle filter's update did, per particle and in total
  CRbPointMassFilterA 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
  CRbPointMassFilterUpdateWhat a Rao-Blackwellized point-mass filter's update did, per live cell and in total
  CReadsWhat 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])
  CRepeatedA fixed-size Block repeated count() times, up to MaxCount_, such as one block per vehicle
  CReusableFilterUpdateA 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
  CRootFormThe 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 \)
  CSampleA 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
  CSamplesWithLogDensitySamples in Space together with the log of the density they were drawn from, evaluated at each
  CSampleWithLogDensityOne 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]
  CSharedCovarianceOne covariance for every point
  CSqrtGaussianParamsA Gaussian kept as a mean and a lower-triangular root of its covariance
  CSqrtInfoFilterThe square-root information filter: a KalmanFilter whose state is a SqrtInfoGaussianParams, the data array \( [\,R \;\; r\,] \) about a reference (decisions.md [gaussian-forms])
  CSqrtInfoGaussianParamsA Gaussian kept as an upper-triangular root of its precision and a whitened offset, about a reference value
  CSqrtKalmanFilterThe 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])
  CStationaryVarianceThe stationary variance \( \sigma^2 \) of an OrnsteinUhlenbeck model, named so that it cannot be given in the place of its time constant
  CStatisticalLinearizationThe 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
  CStepsA count of a fixed-step model's steps, for predict(Steps{n})
  CStudentTThe multivariate Student-t distribution: a Gaussian with heavier tails
  CSureA sure input of predict() or observe(): a known value in the tagged space S, as sure() marks it (decisions.md [prediction-inputs], [tag-addressing])
  CSwitchingMeasurementA 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]
  CSwitchingModelA process model that switches between modes: a Markov chain on a discrete mode space, and the process model each mode follows [switching-models]
  CTagPathA path of tags, each naming a block inside the one before: TagPath<Ownship, Position> is the Position block of Ownship
  CTagPathsA list of tag paths, each a tag or a TagPath, such as the blocks a measurement reads (TagPaths<Position, TagPath<Sensor, Bias>>)
  CTimeConstantThe time constant \( \tau \) of an OrnsteinUhlenbeck model, named so that it cannot be given in the place of its variance
  CTimeTraitsHow 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
  CTimeTraits< std::chrono::duration< Rep, Period > >A std::chrono::duration, converted to seconds in the scalar by its period
  CTimeTraits< Time >A floating-point number, taken as it is and converted to the scalar
  CUnboundFixedStepA process model taken over one fixed time step, not yet bound to a state space: what fixedStep() returns
  CUniformThe uniform distribution over a box in a space
  CUniformGridThe equal-weight components of a grid over some coordinates of a space, made one at a time when read: what uniformComponents() returns
   CElementOne component: its log-weight and its mean and covariance
  CUnitQuaternionAn attitude: a unit quaternion of four coordinates whose differences are three-coordinate rotation vectors in the body frame
  CUnscentedParamsThe parameters of the scaled unscented transform over a number of coordinates, in Scalar, as an UnscentedRule gives them: \( \lambda = \alpha^2 (L + \kappa) - L \)
  CUpdateBranchOne 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])
  CValueSequenceThe most probable sequence of values over a CategoricalHistory, and its posterior probability, from mostProbableSequence()
  CWithJacobianWhat 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])
  CWritesWhat a model writes, as writes() declares it: the blocks its function's result fills (decisions.md [model-policies])
 NstdSTL namespace
  Cformatter< T, char >Formats any type the library describes (Emrys::internal::Printable) as its operator<< prints it