|
vir-simd 0.4.189
Parallelism TS 2 extensions and simd fallback implementation
|
Provides a type transformation for turning scalar user-defined types into a simd types. More...
#include "struct_reflect.h"#include "constexpr_wrapper.h"#include <tuple>#include <iterator>#include "simd.h"#include "detail.h"#include "simd_concepts.h"#include "simd_permute.h"Go to the source code of this file.
Classes | |
| struct | vir::simdize_size< T > |
| class | vir::simd_tuple< T, N > |
simd-like interface for tuples of vectorized data members of T. More... | |
| class | vir::vectorized_struct< T, N > |
| struct | std::tuple_size< vir::simd_tuple< T, N > > |
| struct | std::tuple_element< I, vir::simd_tuple< T, N > > |
| struct | std::tuple_size< vir::vectorized_struct< T, N > > |
Namespaces | |
| namespace | vir |
| This namespace collects libraries and tools authored by Matthias Kretz. | |
Concepts | |
| concept | vir::vectorizable_struct_template |
A type T is a vectorizable struct template if all of its data members can be vectorized via template argument simdization. | |
| concept | vir::vectorizable_struct |
Typedefs | |
| template<typename T, int N = 0> | |
| using | vir::simdize = typename detail::simdize_impl<T, N>::type |
| Apply a type transformation to a scalar type to produce a data-parallel type. | |
Functions | |
| template<std::size_t I, reflectable_struct T, int N> requires (not vectorizable_struct_template<T>) | |
| constexpr decltype(auto) | vir::get (const simd_tuple< T, N > &tup) |
| template<std::size_t I, vectorizable_struct_template T, int N> | |
| constexpr decltype(auto) | vir::get (const vectorized_struct< T, N > &tup) |
Variables | |
| template<typename T> | |
| vir::simdize_size vir::constexpr_wrapper int constexpr int | vir::simdize_size_v = simdize_size<T>::value |
| Inline variable for the simdize_size trait. | |
Provides a type transformation for turning scalar user-defined types into a simd types.