EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Discrete.h File Reference

Discrete spaces (decisions.md [discrete-spaces]): the DiscreteSpace concept; Finite, Named, and DiscreteProduct; and valueOf(), the flat index of a value named by tags. More...

#include <array>
#include <concepts>
#include <cstddef>
#include <tuple>
#include <type_traits>
#include <utility>
#include <EmrysFilter/Core/Macros.h>
#include <EmrysFilter/Spaces/Composite.h>
#include <EmrysFilter/Spaces/Space.h>
#include <EmrysFilter/Spaces/TagPath.h>

Go to the source code of this file.

Classes

struct  Emrys::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. More...
struct  Emrys::Named< Values >
 Values named by the tag types Values, in order: struct Maneuver : Named<Cruise, Turn> {};. More...
class  Emrys::DiscreteProduct< Axes >
 The product of the discrete spaces Axes: a value has one value in each axis. More...
struct  Emrys::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(). More...

Concepts

concept  Emrys::DiscreteSpace
 A type usable as a discrete space: a finite set of values.

Functions

template<typename Path, std::integral... I>
constexpr AxisIndex< Path, sizeof...(I)> Emrys::at (I... indices)
template<typename... Values, DiscreteSpace S, typename... Paths, std::size_t... N>
constexpr Eigen::Index Emrys::valueOf (S const &space, AxisIndex< Paths, N > const &... indices)
template<DiscreteSpace S, typename... Values, typename... Paths, std::size_t... N>
requires FixedSizeSpace<S>
constexpr Eigen::Index Emrys::valueOf (AxisIndex< Paths, N > const &... indices)
 valueOf(space, indices...) in the FixedSizeSpace S, named as the first template argument: valueOf<Mode, Turn, Outlier>() (decisions.md [space-storage]).

Detailed Description

Discrete spaces (decisions.md [discrete-spaces]): the DiscreteSpace concept; Finite, Named, and DiscreteProduct; and valueOf(), the flat index of a value named by tags.

The internal namespace locates axes and named values by tag path and builds the complement of an axis. Categorical.h is the distribution over them. Read Distributions next.