|
|
using | Scalar = Scalar_ |
| | The scalar type.
|
|
using | SpaceType = Space_ |
| | The whole state space.
|
|
using | CellsType = Cells_ |
| | The discrete space of cells.
|
|
using | PathType = Path_ |
| | The path naming the fixed block.
|
|
using | CellCovarianceType = CellCovariance_ |
| | SharedCovariance or PerPointCovariance.
|
|
using | allocator_type = Allocator_ |
| | The allocator, re-bound per buffer.
|
|
using | PinnedSpace = typename internal::BlockSplit<Space_, Path_>::PinnedSpace |
| | The space of the fixed block.
|
|
using | RestSpace = typename internal::BlockSplit<Space_, Path_>::RestSpace |
| | The space of the rest of the state, in order.
|
|
using | CentersType = SampleSet<PinnedSpace, Scalar_> |
| | A plain matrix of centers, one per column, laid out as centers() is.
|
|
using | PinnedVector = typename Moments<PinnedSpace, Scalar_>::VectorType |
| | A value of the block, such as a center.
|
|
using | PinnedMatrix = typename Moments<PinnedSpace, Scalar_>::MatrixType |
| | A covariance over the block.
|
|
template<typename CentersDerived>
requires (Shared && !Regular) |
| | PointGrid (Space_ space, Cells_ cells, Eigen::MatrixBase< CentersDerived > const ¢ers, std::optional< PinnedMatrix > cellCovariance={}, Allocator_ const &allocator={}) |
| | Points in space with centers, one column per value of cells in flat-index order, and cellCovariance, every cell's covariance about its center (none by default).
|
template<typename CentersDerived>
requires (!Shared && !Regular) |
| | PointGrid (Space_ space, Cells_ cells, Eigen::MatrixBase< CentersDerived > const ¢ers, std::span< PinnedMatrix const > cellCovariances, Allocator_ const &allocator={}) |
| | Points in space with centers, one column per value of cells in flat-index order, and cellCovariances, each cell's covariance about its center, in the same order, from any contiguous storage.
|
|
| PointGrid (Space_ space, Cells_ cells, PinnedVector first, PinnedVector spacing, std::optional< PinnedMatrix > cellCovariance={}, Allocator_ const &allocator={}) |
| | A regular grid in space over cells, whose cell with coordinates \( c \) (see DiscreteProduct::coordinates()) has its center at \( \mathit{first} + c \, \mathit{spacing} \), each coordinate scaling its axis's spacing, and cellCovariance, every cell's covariance about its center (none by default).
|
|
| PointGrid (Space_ space, Cells_ cells, PinnedVector first, PinnedVector spacing, std::span< PinnedMatrix const > cellCovariances, Allocator_ const &allocator={}) |
| | A regular grid as above, with cellCovariances, each cell's covariance about its center in flat-index order.
|
| allocator_type | get_allocator () const |
| Space_ const & | space () const |
| Cells_ const & | cells () const |
| PinnedSpace const & | pinnedSpace () const |
| RestSpace const & | restSpace () const |
| Eigen::Index | size () const |
| PinnedVector | center (Eigen::Index cell) const |
| ConstSampleSetMap< PinnedSpace, Scalar_ > | centers () const |
| PinnedVector const & | first () const |
| PinnedVector const & | spacing () const |
| bool | hasCellCovariance () const |
| PinnedMatrix const & | cellCovariance (Eigen::Index cell) const |
| BlockRows | pinnedRows () const |
| auto const & | restIndices () const |
| BlockRows | pinnedDifferenceRows () const |
| auto const & | restDifferenceIndices () const |
| PointGrid | subdivided (Eigen::Index factor) const |
template<Space Space_, typename Path_, DiscreteSpace Cells_, typename CellCovariance_ = SharedCovariance, RealScalar Scalar_ = double, typename Allocator_ = DefaultAllocator>
class Emrys::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.
The grid of the point-mass filter of Bucy and Senne (1971), here for one block of the state only, with the rest Gaussian [rb-point-mass].
Each point is the center of its cell. With Cells_ GridCells, the grid is regular: the centers are computed from the first one and the spacing, and the grid can be subdivided (see subdivided()). Otherwise the centers are given and stored.
A cell may also have a covariance about its center: by default none, making each cell a point mass. With CellCovariance_ SharedCovariance there is at most one, the same for every cell, such as \( \mathrm{diag}(s^2 / 12) \) for a grid with spacing \( s \). With PerPointCovariance, each cell has its own, as cells of different sizes do (an irregular set of points, or a latitude-longitude grid). See RbPointMassFilter for what a cell covariance does and doesn't account for.
- Template Parameters
-
- See also
- regularGrid(), pointGrid(), GridGaussian, RbPointMassFilter
template<Space Space_, typename Path_, DiscreteSpace Cells_, typename CellCovariance_ = SharedCovariance, RealScalar Scalar_ = double, typename Allocator_ = DefaultAllocator>
template<typename CentersDerived>
requires (Shared && !
Regular)
| Emrys::PointGrid< Space_, Path_, Cells_, CellCovariance_, Scalar_, Allocator_ >::PointGrid |
( |
Space_ | space, |
|
|
Cells_ | cells, |
|
|
Eigen::MatrixBase< CentersDerived > const & | centers, |
|
|
std::optional< PinnedMatrix > | cellCovariance = {}, |
|
|
Allocator_ const & | allocator = {} ) |
|
inline |
Points in space with centers, one column per value of cells in flat-index order, and cellCovariance, every cell's covariance about its center (none by default).
The centers are copied into the grid's storage, so a map over a buffer of one's own passes them without allocating.