|
EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
|
Files | |
| Allocation.h | |
| The allocator conventions of decisions.md [allocation]: DefaultAllocator, Capacity, and the internal rebinding alias and buffer type every type with a run-time number of elements uses. | |
| ChiSquared.h | |
| The chi-squared distribution's CDF and quantile, with no dependency outside Eigen, for the gates and consistency checks of Consistency.h and the confidence regions of Gaussian.h. | |
| Execution.h | |
| Execution policies (decisions.md [execution-policies]): execution::sequential, the ExecutionPolicy concept, and the internal primitives that every loop over a run-time count of elements runs through, a for-each over indices or over chunks, a reduction, a scan, a gather, a compaction, and a fill, with the iterators they run over, one over indices and one over elements a view makes when read. | |
| Forwarding.h | |
| How a function that stores a matrix argument takes it (decisions.md [forwarded-matrices]): the concept MatrixExpression, which constrains its forwarding reference so that an rvalue is moved, and internal::castScalar(), which forwards a matrix that already has the scalar rather than copying it; and internal::forwardLike(), std::forward_like for every standard library. | |
| Macros.h | |
| The macros every header includes first. | |
| Math.h | |
| Mathematical constants and scalar functions that work in every scalar type the library accepts, where the standard library and Eigen serve only some of them. | |
| Multiply.h | |
| Products of fixed-size matrices by Eigen's fixed-size product at every size: multiply() is \( A B \) by Eigen's coefficient-based product wherever both operands have a fixed size, which Eigen itself chooses only while no dimension reaches eight, and asTriangular() is a triangular factor as a dense matrix to multiply by, which a triangular view never is. | |
| NumericError.h | |
| NumericError, the reasons a factorization or a normalization can fail, and its two names, GaussianError and WeightError (decisions.md [update-outcomes]). | |
| Print.h | |
Printing: operator<< and std::formatter for every distribution, every filter (which prints its name and nests its state under it), and the library's error codes, so that std::cout << filter and std::println("{}", filter.state()) work. | |
| Resampling.h | |
| The resamplers: function objects that draw ancestors in proportion to weights, which ParticleSet::resample() and the Resample upkeep action call. | |
| Solve.h | |
| Solving by a factorization of a small matrix: transposedSolve() gives \( (A^{-1} B)^T \), the shape of a Kalman gain and of a statistical linearization, from an Eigen factorization of \( A \), and solveInPlace() overwrites \( B \) with \( A^{-1} B \), and inverseFrom() gives \( A^{-1} \), all one column of \( B \) at a time where \( A \) has a small fixed size, which Eigen's solve with a matrix right-hand side does not do. | |
| Stamp.h | |
| What parameters and their views share (decisions.md [view-stamp], [params-and-density]): Stamp, the modification stamp that parameters keep; ValuesCheck and ShapeCheck, by which a view checks that its parameters have not changed under it; ViewHolder, by which a marginal of a view keeps that view; and CallbackGuard, which checks that a callback leaves its parameters alone. | |
| Time.h | |
| Time steps (decisions.md [time-steps]): TimeTraits, which converts a time type to a scalar, the TimeStep concept that a filter's predict() takes its step through, and Steps, a count of a fixed-step model's steps. | |
| Triangularization.h | |
| Triangularization: the triangular factor of a stacked matrix by Householder reflections, in place and without forming the orthogonal factor. | |
| Version.h | |
| The library's version, the same numbers as the CMake project's, and the Eigen version it requires. | |
| Weights.h | |
| Log-weights: the WeightError a normalization can fail with (NumericError.h), and the streaming log-sum-exp that totals them without overflow, sequentially or in chunks under an execution policy: LogSumExp and logSumExp(), which are public, so that a user's code normalizes weights or sums likelihoods as the library does. | |