|
OpenKalman
|
The namespace for features relating to patterns::pattern object. More...
Namespaces | |
| angle | |
| Namespace for definitions relating to specialized instances of Angle. | |
| inclination | |
| Namespace for definitions relating to specialized instances of Inclination. | |
| views | |
| The namespace for views for patterns::pattern object. | |
Classes | |
| struct | Angle |
| An angle or any other simple modular value. More... | |
| struct | Any |
| struct | common_descriptor_type |
| The common type within a pattern, if it exists. More... | |
| struct | common_descriptor_type< T, std::enable_if_t< descriptor< T > > > |
| struct | common_descriptor_type< T, std::enable_if_t< descriptor_collection< T > > > |
| struct | dimension_of |
| The size of a patterns::pattern. More... | |
| struct | dimension_of< T, std::void_t< decltype(get_dimension(std::declval< T >()))> > |
| struct | Dimensions |
| A structure representing the dimensions associated with of a particular index. More... | |
| struct | Dimensions< stdex::dynamic_extent > |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
| struct | dimensions_tuple_view |
| A view to the dimensions of a uniformly_gettable pattern_collection. More... | |
| struct | Distance |
| A non-negative real or integral number, [0,∞], representing a distance. More... | |
| struct | Inclination |
| A non-negative real number φ representing an inclination (angle from the positive z axis). More... | |
| struct | pattern_collection_element |
| The type of the element at a given index, if it can be determined at compile time. More... | |
| struct | pattern_collection_element< i, T, std::enable_if_t< pattern_collection< T > > > |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
| struct | Polar |
| An atomic patterns::descriptor reflecting polar coordinates. More... | |
| struct | Spherical |
| A patterns::descriptor reflecting spherical coordinates according to the ISO 80000-2:2019 convention. More... | |
| struct | stat_dimension_of |
| The dimension size of a set of patterns::pattern if it is transformed into Euclidean space. More... | |
| struct | stat_dimension_of< T, std::enable_if_t< values::index< decltype(patterns::get_stat_dimension(std::declval< T >()))> > > |
| struct | transpose_view |
| A view representing a transpose of a pattern_collection. More... | |
| struct | uniform_pattern_type |
If T is a uniform_pattern, type is an alias for the uniform component. More... | |
| struct | uniform_pattern_type< T, std::enable_if_t< pattern< T > and(euclidean_pattern< T > or detail::common_descriptor_dimension_is_1< T >::value)> > |
Typedefs | |
| using | Axis = Dimensions< 1 > |
| Alias for a 1D Euclidean patterns::pattern object. | |
| template<typename T > | |
| using | common_descriptor_type_t = typename common_descriptor_type< T >::type |
| Helper template for common_descriptor_type. | |
| template<std::size_t i, typename T > | |
| using | pattern_collection_element_t = typename pattern_collection_element< i, T >::type |
| Helper template for collection_element. | |
| template<typename T > | |
| using | uniform_pattern_type_t = typename uniform_pattern_type< T >::type |
| Helper template for uniform_pattern_type. | |
Functions | |
| template<typename D , std::enable_if_t< fixed_pattern< D > and euclidean_pattern< D >, int > = 0> | |
| Dimensions (D &&) -> Dimensions< dimension_of< D >::value > | |
| Dimensions (const std::size_t &) -> Dimensions< stdex::dynamic_extent > | |
| template<auto comp = &stdex::is_eq, typename A , typename B , std::enable_if_t< pattern< A > and pattern< B > and std::is_invocable_r_v< bool, decltype(comp), stdex::partial_ordering >, int > = 0> | |
| constexpr auto | compare (const A &a, const B &b) |
| Compare two patterns::pattern objects lexicographically. More... | |
| template<auto comp = &stdex::is_eq, std::size_t N = values::unbounded_size, typename T , typename D , std::enable_if_t<(N==values::unbounded_size or N > 0> | |
| constexpr auto | compare_collection_patterns_with_dimension (const T &t, const D &d) |
| Compares the dimensions of the first N elements of a pattern_collection with a particular value. More... | |
| template<std::size_t dim, auto comp = &stdex::is_eq, std::size_t N = values::unbounded_size, typename T , std::enable_if_t<(N==values::unbounded_size or N > 0> | |
| constexpr auto | compare_collection_patterns_with_dimension (const T &t) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<auto comp = &stdex::is_eq, typename A , typename B , std::enable_if_t< pattern_collection< A > and pattern_collection< B > and std::is_invocable_r_v< bool, decltype(comp), stdex::partial_ordering >, int > = 0> | |
| constexpr auto | compare_pattern_collections (const A &a, const B &b) |
| Compare each element of two pattern_collection objects lexicographically. More... | |
| template<typename A , typename B , typename Comparison = stdex::compare_three_way, std::enable_if_t< pattern< A > and pattern< B > and std::is_invocable_r< stdex::partial_ordering, Comparison, std::size_t, std::size_t >::value, int > = 0> | |
| constexpr auto | compare_three_way (A &&a, B &&b, const Comparison &c={}) |
| Compare two patterns::pattern objects lexicographically. More... | |
| template<typename T , typename R , std::enable_if_t< descriptor< T > and collections::collection< R >, int > = 0> | |
| decltype(auto) constexpr | from_stat_space (const T &t, R &&stat_data_view) |
| Maps a range in a vector space for directional-statistics back to a range reflecting vector-space data. More... | |
| template<std::size_t N = values::unbounded_size, typename T , std::enable_if_t<(N==values::unbounded_size or N > 0> | |
| constexpr auto | get_common_pattern_collection_dimension (const T &t) |
| Queries whether the first N elements of a pattern_collection have the same dimensions. More... | |
| template<typename Arg , std::enable_if_t< sized_pattern< Arg >, int > = 0> | |
| constexpr auto | get_dimension (const Arg &arg) |
| Get the vector dimension of patterns::pattern Arg. | |
| template<typename Arg , std::enable_if_t< pattern< Arg > and(descriptor< Arg > or collections::sized< Arg > or detail::is_unbound_fixed_range< Arg >::value), int > = 0> | |
| constexpr auto | get_is_euclidean (const Arg &arg) |
| Determine, whether patterns::pattern Arg is euclidean. | |
| template<typename P , typename I , std::enable_if_t< pattern_collection< P > and values::index< I >, int > = 0> | |
| decltype(auto) constexpr | get_pattern (P &&p, I i) |
| Get a pattern within a pattern_collection. More... | |
| template<std::size_t i, typename P , std::enable_if_t< pattern_collection< P >, int > = 0> | |
| decltype(auto) constexpr | get_pattern (P &&p) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<typename Arg , std::enable_if_t< descriptor< Arg > or(descriptor_collection< Arg > and(collections::sized< Arg > or detail::range_value_has_fixed_stat_dimension< Arg >::value)), int > = 0> | |
| constexpr auto | get_stat_dimension (const Arg &arg) |
| Get the vector dimension of patterns::pattern Arg when transformed into statistical space. More... | |
| template<typename T , std::enable_if_t< pattern< T >, int > = 0> | |
| constexpr auto | get_uniform_pattern_component (T &&t) |
| If the argument is a uniform pattern, return the 1D component that can be replicated to produce the argument. More... | |
| template<typename A , typename B , std::enable_if_t< pattern< A > and pattern< B >, int > = 0> | |
| constexpr auto | is_uniform_pattern_component_of (const A &a, const B &b) |
| template<typename... Args, std::enable_if_t<(... and descriptor< Args >), int > = 0> | |
| constexpr auto | make_descriptor_range (Args &&...args) |
| Make a descriptor_collection from a list of descriptors. More... | |
| template<std::size_t rank, typename P , std::enable_if_t< pattern_collection< P > and values::fixed_value_compares_with< collections::size_of< P >, stdex::dynamic_extent, &stdex::is_neq >, int > = 0> | |
| constexpr auto | to_extents (P &&p) |
| Convert a pattern_collection to std::extents. More... | |
| template<std::size_t rank, typename IndexType , std::size_t... Extents> | |
| decltype(auto) constexpr | to_extents (const stdex::extents< IndexType, Extents... > &p) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<std::size_t rank, typename IndexType , std::size_t... Extents> | |
| constexpr auto | to_extents (stdex::extents< IndexType, Extents... > &&p) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<typename P , std::enable_if_t< pattern_collection< P > and values::fixed_value_compares_with< collections::size_of< P >, stdex::dynamic_extent, &stdex::is_neq >, int > = 0> | |
| constexpr auto | to_extents (P &&p) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
| template<typename T , typename R , std::enable_if_t< descriptor< T > and collections::collection< R >, int > = 0> | |
| decltype(auto) constexpr | to_stat_space (const T &t, R &&data_view) |
| Maps a range reflecting vector-space data to a corresponding range in a vector space for directional statistics. More... | |
| template<typename T , typename R , std::enable_if_t< descriptor< T > and collections::collection< R >, int > = 0> | |
| decltype(auto) constexpr | wrap (const T &t, R &&data_view) |
| wraps a range reflecting vector-space data to its primary range. More... | |
| template<typename P > | |
| transpose_view (P &&) -> transpose_view< P > | |
| Deduction guides. | |
Variables | |
| template<typename T , typename U , auto comp = &stdex::is_eq, applicability a = applicability::guaranteed> | |
| constexpr bool | collection_compares_with |
| Compares two pattern_collection objects. More... | |
| template<typename T , std::size_t dim, auto comp = &stdex::is_eq, std::size_t N = values::unbounded_size, applicability b = applicability::guaranteed> | |
| constexpr bool | collection_patterns_compare_with_dimension |
| Specifies that each element of a pattern_collection T has dimension dim for the first N indices. More... | |
| template<typename T , std::size_t N = values::unbounded_size, applicability b = applicability::guaranteed> | |
| constexpr bool | collection_patterns_have_same_dimension |
| Specifies that the first N elements of a pattern_collection have the same dimensions. More... | |
| template<typename T , typename U , auto comp = &stdex::is_eq, applicability a = applicability::guaranteed> | |
| constexpr bool | compares_with |
| Compares two patterns::pattern objects. More... | |
| template<typename T > | |
| constexpr bool | descriptor |
| T is an atomic (non-separable or non-composite) grouping of patterns::pattern objects. More... | |
| template<typename T > | |
| constexpr bool | descriptor_collection |
| An object describing a collection of /ref patterns::descriptor objects. More... | |
| template<typename T > | |
| constexpr bool | dynamic_pattern |
| A patterns::pattern for which the size is defined at runtime. More... | |
| template<typename T > | |
| constexpr bool | euclidean_pattern = detail::euclidean_pattern_impl<T>::value |
| A patterns::pattern for a normal Euclidean vector. | |
| template<typename T > | |
| constexpr bool | euclidean_pattern_collection |
| An object describing a collection of /ref euclidean_pattern objects. More... | |
| template<typename T > | |
| constexpr bool | fixed_pattern |
| A patterns::pattern for which the dimension is fixed at compile time. More... | |
| template<typename T > | |
| constexpr bool | fixed_pattern_collection |
| An object describing a fixed-size collection of /ref fixed_pattern objects. More... | |
| template<typename T > | |
| constexpr bool | pattern |
| An object describing the characteristics (e.g., dimensions, wrapping structure) of an index. More... | |
| template<typename T > | |
| constexpr bool | pattern_collection |
| An object describing a sized collection of /ref sized_pattern objects. More... | |
| template<typename T > | |
| constexpr bool | sized_pattern |
| An object describing the set of coordinates associated with a tensor index. More... | |
| template<typename T , applicability a = applicability::guaranteed> | |
| constexpr bool | uniform_pattern |
| T is a patterns::pattern that is either empty or can be decomposed into a uniform set of 1D patterns::pattern. More... | |
| template<typename T > | |
| constexpr auto | dimension_of_v = dimension_of<T>::value |
| Helper template for patterns::dimension_of. | |
| template<typename T > | |
| constexpr auto | stat_dimension_of_v = stat_dimension_of<T>::value |
| Helper template for patterns::stat_dimension_of. | |
The namespace for features relating to patterns::pattern object.
| constexpr auto OpenKalman::patterns::compare | ( | const A & | a, |
| const B & | b | ||
| ) |
Compare two patterns::pattern objects lexicographically.
Consecutive euclidean_pattern arguments are consolidated before the comparison occurs.
| comp | A callable object taking the comparison result (e.g., std::partial_ordering) and returning a bool value |
| constexpr auto OpenKalman::patterns::compare_collection_patterns_with_dimension | ( | const T & | t, |
| const D & | d | ||
| ) |
Compares the dimensions of the first N elements of a pattern_collection with a particular value.
If N exceeds the size of T, T will effectively be padded with Dimensions<1>. If N == values::unbounded_size, all elements will be compared.
| N | Either values::unbounded_size or an integer greater than 0. |
| constexpr auto OpenKalman::patterns::compare_pattern_collections | ( | const A & | a, |
| const B & | b | ||
| ) |
Compare each element of two pattern_collection objects lexicographically.
Performs a compare operation on each element of the collection. If the patterns are different sizes, trailing Dimensions<1> patterns are added to the smaller one before the comparison.
| comp | A callable object taking the comparison result (e.g., std::partial_ordering) and returning a bool value |
| constexpr auto OpenKalman::patterns::compare_three_way | ( | A && | a, |
| B && | b, | ||
| const Comparison & | c = {} |
||
| ) |
Compare two patterns::pattern objects lexicographically.
Consecutive euclidean_pattern arguments are consolidated before the comparison occurs.
| Comparison | A callable comparison function compatible with std::partial_ordering, such as std::compare_three_way |
| decltype(auto) constexpr OpenKalman::patterns::from_stat_space | ( | const T & | t, |
| R && | stat_data_view | ||
| ) |
Maps a range in a vector space for directional-statistics back to a range reflecting vector-space data.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is the inverse of to_stat_space.
| t | A descriptor. |
| stat_data_view | A range within a data object corresponding to descriptor t. |
Maps a range in a vector space for directional-statistics back to a range reflecting vector-space data.
This is the inverse of to_stat_space.
| t | A descriptor_collection. |
| stat_data_view | A range within a data object corresponding to patterns::descriptor_collection "descriptor_collection" t |
| constexpr auto OpenKalman::patterns::get_common_pattern_collection_dimension | ( | const T & | t | ) |
Queries whether the first N elements of a pattern_collection have the same dimensions.
If N exceeds the size of T, T will be padded with Dimensions<1>. If N == values::unbounded_size, all elements will be compared. Note that the result will always be true if the number of compared elements is 1.
| N | Either values::unbounded_size or an integer greater than 0. |
| decltype(auto) constexpr OpenKalman::patterns::get_pattern | ( | P && | p, |
| I | i | ||
| ) |
Get a pattern within a pattern_collection.
If index i is greater than the size of argument p, the function will return Dimensions<1> or 1.
| constexpr auto OpenKalman::patterns::get_stat_dimension | ( | const Arg & | arg | ) |
Get the vector dimension of patterns::pattern Arg when transformed into statistical space.
This is the dimension of a vector corresponding to Arg that has been transformed to Euclidan space for directional statistics.
| constexpr auto OpenKalman::patterns::get_uniform_pattern_component | ( | T && | t | ) |
If the argument is a uniform pattern, return the 1D component that can be replicated to produce the argument.
The result will equal the argument if replicated some number of times (including zero times).
| constexpr auto OpenKalman::patterns::make_descriptor_range | ( | Args &&... | args | ) |
Make a descriptor_collection from a list of descriptors.
The result will be a std::ranges::random_access_range<T>. To create a tuple-like structure instead, you should construct a std::tuple.
| constexpr auto OpenKalman::patterns::to_extents | ( | P && | p | ) |
Convert a pattern_collection to std::extents.
| rank | The rank of the result. The rank must be large enough to hold all non-unitary extents. If necessary, the template parameters of the result will be padded with sufficient trailing 1 values to meet this rank. |
| constexpr auto OpenKalman::patterns::to_extents | ( | P && | p | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Derive the rank from the argument. The number of extents will be minimized.
| decltype(auto) constexpr OpenKalman::patterns::to_stat_space | ( | const T & | t, |
| R && | data_view | ||
| ) |
Maps a range reflecting vector-space data to a corresponding range in a vector space for directional statistics.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is the inverse of from_stat_space.
| t | A descriptor. |
| data_view | A range within a data object corresponding to descriptor t. |
Maps a range reflecting vector-space data to a corresponding range in a vector space for directional statistics.
This is the inverse of from_stat_space.
| t | A descriptor_collection. |
| data_view | A range within a data object corresponding to descriptor_collection t |
| decltype(auto) constexpr OpenKalman::patterns::wrap | ( | const T & | t, |
| R && | data_view | ||
| ) |
wraps a range reflecting vector-space data to its primary range.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
The wrapping operation is equivalent to mapping from modular space to Euclidean space and then back again, or in other words, performing to_stat_space followed by from_stat_space.
| t | A descriptor. |
| data_view | A range within a data object corresponding to descriptor t. |
wraps a range reflecting vector-space data to its primary range.
The wrapping operation is equivalent to mapping from modular space to Euclidean space and then back again, or in other words, performing to_stat_space followed by from_stat_space.
| t | A descriptor_collection. |
| data_view | A range within a data object corresponding to descriptor_collection t. |
| constexpr bool OpenKalman::patterns::collection_compares_with |
Compares two pattern_collection objects.
Corresponding patterns in each argument are compared. Trailing 1D patterns are ignored.
| comp | A consteval-callable object taking the comparison result (e.g., std::partial_ordering) and returning a bool value |
|
inline |
Specifies that each element of a pattern_collection T has dimension dim for the first N indices.
If N is greater than the size of T, T will effectively be padded with Dimensions<1>.
| N | Either values::unbounded_size or an integer greater than 0. |
|
inline |
Specifies that the first N elements of a pattern_collection have the same dimensions.
If N exceeds the size of T, T will be padded with Dimensions<1>. If N == values::unbounded_size, all elements will be compared. Note that the result will always be true if the number of compared elements is 1.
| N | Either values::unbounded_size or an integer greater than 0. |
| constexpr bool OpenKalman::patterns::compares_with |
Compares two patterns::pattern objects.
Every pattern in the set must be potentially comparable to every other respective pattern in the set. Sets of patterns are equivalent if they are treated functionally the same.
compares_with<std::tuple<Axis, Direction>, std::tuple<Axis, Direction>> compares_with<std::tuple<Axis, Direction>, std::tuple<Axis, Direction, angle::Radians>, less_than<>, applicability::guaranteed> compares_with<std::tuple<Axis, Direction>, std::tuple<Dimensions<>, Direction, angle::Radians>, less_than<>, applicability::permitted> | comp | A callable object taking the comparison result (e.g., std::partial_ordering) and returning a bool value |
| constexpr bool OpenKalman::patterns::descriptor |
T is an atomic (non-separable or non-composite) grouping of patterns::pattern objects.
| constexpr bool OpenKalman::patterns::descriptor_collection |
An object describing a collection of /ref patterns::descriptor objects.
This can be either a uniformly_gettable structure or a sized std::ranges::random_access_range.
|
inline |
A patterns::pattern for which the size is defined at runtime.
| constexpr bool OpenKalman::patterns::euclidean_pattern_collection |
An object describing a collection of /ref euclidean_pattern objects.
| constexpr bool OpenKalman::patterns::fixed_pattern |
A patterns::pattern for which the dimension is fixed at compile time.
| constexpr bool OpenKalman::patterns::fixed_pattern_collection |
An object describing a fixed-size collection of /ref fixed_pattern objects.
|
inline |
An object describing the characteristics (e.g., dimensions, wrapping structure) of an index.
| constexpr bool OpenKalman::patterns::pattern_collection |
An object describing a sized collection of /ref sized_pattern objects.
|
inline |
An object describing the set of coordinates associated with a tensor index.
| constexpr bool OpenKalman::patterns::uniform_pattern |
T is a patterns::pattern that is either empty or can be decomposed into a uniform set of 1D patterns::pattern.
If T is a uniform pattern, uniform_pattern_type<T>::type will exist and will be one-dimensional.
1.8.13