OpenKalman
Static Public Attributes | List of all members
OpenKalman::interface::coordinate_descriptor_traits< T, typename > Struct Template Reference

Traits for coordinates::pattern objects. More...

#include <coordinate_descriptor_traits.hpp>

Static Public Attributes

static constexpr bool is_specialized = false
 
static constexpr auto dimension
 A callable object returning the number of dimensions at compile time (as a values::index). More...
 
static constexpr auto stat_dimension
 A callable object returning the number of dimensions after transforming to Euclidean space (as a values::index). More...
 
static constexpr auto is_euclidean
 A callable object returning a bool reflecting whether the coordinates::pattern object describes Euclidean coordinates. More...
 
static constexpr auto hash_code = [](const T&) noexcept -> std::size_t { return typeid(T).hash_code(); }
 A callable object returning a unique hash code for type T, of type std::size_t. More...
 
static constexpr auto to_stat_space
 A callable object mapping a range reflecting vector-space data to a corresponding range in a vector space for directional statistics. More...
 
static constexpr auto from_stat_space
 A callable object mapping a range in a vector space for directional statistics back to a range corresponding to the original vector space. More...
 
static constexpr auto wrap
 A callable object that maps a range reflecting vector-space data to a wrapped range. More...
 

Detailed Description

template<typename T, typename = void>
struct OpenKalman::interface::coordinate_descriptor_traits< T, typename >

Traits for coordinates::pattern objects.

Member Data Documentation

◆ dimension

template<typename T, typename = void>
constexpr auto OpenKalman::interface::coordinate_descriptor_traits< T, typename >::dimension
static
Initial value:
=
[](const T&) noexcept
{ return std::integral_constant<std::size_t, 0_uz>{}; }

A callable object returning the number of dimensions at compile time (as a values::index).

◆ from_stat_space

template<typename T, typename = void>
constexpr auto OpenKalman::interface::coordinate_descriptor_traits< T, typename >::from_stat_space
static
Initial value:
=
[](const T& t, auto&& data_view) noexcept
{
return std::forward<decltype(data_view)>(data_view);
}

A callable object mapping a range in a vector space for directional statistics back to a range corresponding to the original vector space.

This is the inverse of to_stat_space.

Note
Disregarded if T is a coordinates::euclidean_pattern. In this case, this will be treated as an identity function.
Parameters
data_viewA collection of elements within a data object in directional-statistics space corresponding to the descriptor

◆ hash_code

template<typename T, typename = void>
constexpr auto OpenKalman::interface::coordinate_descriptor_traits< T, typename >::hash_code = [](const T&) noexcept -> std::size_t { return typeid(T).hash_code(); }
static

A callable object returning a unique hash code for type T, of type std::size_t.

Two coordinates will be equivalent if they have the same hash code. Generally, this can be obtained through calling typeid(t).hash_code().

◆ is_euclidean

template<typename T, typename = void>
constexpr auto OpenKalman::interface::coordinate_descriptor_traits< T, typename >::is_euclidean
static
Initial value:
=
[](const T&) noexcept
{ return std::false_type {}; }

A callable object returning a bool reflecting whether the coordinates::pattern object describes Euclidean coordinates.

In this case, dimension() == stat_dimension().

◆ stat_dimension

template<typename T, typename = void>
constexpr auto OpenKalman::interface::coordinate_descriptor_traits< T, typename >::stat_dimension
static
Initial value:
= [](const T&) noexcept -> values::index auto
{ return std::integral_constant<std::size_t, 0_uz>{}; }

A callable object returning the number of dimensions after transforming to Euclidean space (as a values::index).

◆ to_stat_space

template<typename T, typename = void>
constexpr auto OpenKalman::interface::coordinate_descriptor_traits< T, typename >::to_stat_space
static
Initial value:
=
[](const T& t, auto&& data_view) noexcept
{
return std::forward<decltype(data_view)>(data_view);
}

A callable object mapping 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.

Note
Disregarded if T is a coordinates::euclidean_pattern. In this case, this will be treated as an identity function.
Parameters
data_viewA range within a data object corresponding to the descriptor

◆ wrap

template<typename T, typename = void>
constexpr auto OpenKalman::interface::coordinate_descriptor_traits< T, typename >::wrap
static
Initial value:
=
[](const T& t, auto&& data_view) noexcept
{
return std::forward<decltype(data_view)>(data_view);
}

A callable object that maps a range reflecting vector-space data to a wrapped range.

The wrapped range is equivalent to from_stat_space(t, to_stat_space(t, data_view)). If data_view is an std::ranges::output_range, the update should be performed in place.

Note
Optional. This will be disregarded if T is a coordinates::euclidean_pattern. Otherwise, if not provided, the library will use from_stat_space(t, to_stat_space(t, data_view)).
Parameters
data_viewA collection of elements within a data object corresponding to the descriptor


The documentation for this struct was generated from the following file: