Type traits for SIMD related types and functions.
Using EVE types and functions may require informations about some properties of the processed types that are accessible through the following traits.
Convenience header:
Modules | |
Structured Types Management | |
Traits and functions to handle user defined types in SIMD registers. | |
Classes | |
struct | eve::abi< Type, Lanes > |
Find proper ABI for Type/Lanes pair. More... | |
struct | eve::as< T > |
Lightweight type-wrapper. More... | |
struct | eve::cardinal< Type > |
Computes the cardinal of a given type. More... | |
struct | eve::common_compatible< Ts > |
Computes the type compatible with a list of values. More... | |
struct | eve::common_type< Ts > |
Computes a type that can represent all values in a list of types. More... | |
struct | eve::element_type< T > |
Extracts the scalar part of a type. More... | |
Typedefs | |
template<typename T > | |
using | eve::iterator_cardinal_t = decltype(detail::iterator_cardinal_impl< T >()) |
A meta-function that returns a cardinal for a relaxed iterator/range. If T defines a nested static function iterator_cardinal() (which should return eve::fixed) More... | |
template<typename T > | |
using | eve::value_type_t = typename decltype(detail::value_type_impl< T >())::type |
A meta function for getting an associated value_type for a relaxed iterator/range. More... | |
template<typename T > | |
using | eve::wide_value_type_t = as_wide_t< value_type_t< T >, iterator_cardinal_t< T > > |
Variables | |
template<typename T > | |
constexpr std::size_t | eve::max_scalar_size_v = kumi::max_flat(T{}, [](auto m) { return sizeof(m); }) |
A meta function for getting a maximum size of scalar. More... | |