EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Emrys::DiscreteSpace Concept Reference

A type usable as a discrete space: a finite set of values. More...

#include <EmrysFilter/Spaces/Discrete.h>

Concept definition

template<typename S>
concept DiscreteSpace =
requires {
typename std::integral_constant<int, S::Cardinality>;
typename std::integral_constant<int, S::MaxCardinality>;
} && (S::Cardinality == Eigen::Dynamic || (S::Cardinality >= 1 && S::MaxCardinality == S::Cardinality))
&& std::regular<S> && requires(S const & space) {
{ space.cardinality() } -> std::convertible_to<Eigen::Index>;
}
A type usable as a discrete space: a finite set of values.
Definition Discrete.h:72

Detailed Description

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

Finite, Named, DiscreteProduct, and tags derived from them satisfy it. A discrete space provides Cardinality, its number of values or Eigen::Dynamic if that is known only at run time, MaxCardinality, a bound on it or Eigen::Dynamic, cardinality(), and value semantics (std::regular).